motofan logo
       
> 

BackgroundManager, менеджер приложений свёрнутых в фон

om2804
сообщение 31.12.2010, 12:22


МотоКодер
******

Группа: Разработчики
Сообщений: 786
Регистрация: 14.8.2006
Из: Архангельск
Пользователь №: 95 055
Модель телефона: E398
Прошивка: DaR
Победитель конкурса 2008

Рейтинг: 1650



BackgroundManager скачать

Менеджер фоновых приложений. Облегчает выход из фона приложений.
Все приложения, использующие BgManager и находящиеля в фоне можно вызвать из фона через GUI (джой в центр). Первая версия поддерживает максимум 10 приложений (Но у нас пока больше и нет: MRA, mJabber, masya).Навигация по приложения осуществляется джоем влево или вправо.
Вызов GUI осуществляется нажатием * + Red.
Эльф не выгружается!
Может выводить иконки из папки зарегестрированного эльфа. (имя эльфа.gif)

Прошу всех кто разрабатывает приложения, которые могут уходить в фон использовать этот менеджер.
Это позволит избавиться от горячих клавиш, причём определённых для каждого эльфа.

Для работы с BgManager используем bgmanager_api.h скачать
Приложение должно ловить ивент BGMANAGER_EVENT_COMMAND (0xFF15) в любом состоянии

Код

static EVENT_HANDLER_ENTRY_T any_state_handlers[] =
{  
    { BGMANAGER_EVENT_COMMAND,    HandleBgManager },

    // Список всегда должен заканчиватся такой записью
    { STATE_HANDLERS_END,                                   NULL },
};


По нему мы узнаем, что наше приложение пытаются развернуть через BgManager

Код

UINT32 HandleBgManager( EVENT_STACK_T *ev_st,  void *app )
{
    BM_COMMAND_T attach;
    memcpy(&attach, (AFW_GetEv( ev_st ))->attachment, sizeof(BM_COMMAND_T));
    
    if (attach.command == BM_APP_SHOW)
    {
    APP_ConsumeEv( ev_st, app );
    appShow(ev_st, app); // разворачиваем (выходим из фона)
    }

    return RESULT_OK;
}


Первым делом нужно зарегестрировать свое приложение в BgManager.

Код

UINT32 Register( char* file_uri,  char* param,  UINT32 reserve )
{
    WCHAR   elf_uri[FILEURI_MAX_LEN+1];

    u_atou(file_uri, elf_uri);              
    BgManager_RegApp(app_name, elf_uri, false); // регистрируем приложение в BgManager
}


И удалить из списка BgManager при выходе из приложения

Код

/* Функция выхода из приложения */
UINT32 destroyApp( EVENT_STACK_T *ev_st,  void *app )
{
    UINT32  status, i;
    APPLICATION_T           *papp = (APPLICATION_T*) app;

    BgManager_UnregApp(app_name); // удаляем из списка BgManager

    APP_UtilUISDialogDelete(  &papp->dialog ); // удаляем созданный диалог
    /* Завершаем работу приложения */
    status = APP_Exit( ev_st, app, NULL );

    /* Выгружаем эльф */
    LdrUnloadELF(&Lib); // &Lib указывает на начало эльфа

    return status;
}


Так же необходимо при уходе в фон приложения сообщить об этом BgManager
Код

  UINT32 AppHide( APPLICATION_T * app )
{
    UINT32 status = AppChangeState(app, APP_STATE_BG, FALSE);
    BgManager_HideApp(app_name); // сообщить об уходе в фон BgManager
    return status;
}
Прикрепленный файл BackgroundManager.zip   ( 6.18 килобайт ) Кол-во скачиваний: 3
Прикрепленный файл BackgroundManager_EP1.zip   ( 24.66 килобайт ) Кол-во скачиваний: 3
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
om2804
сообщение 22.1.2011, 20:52


МотоКодер
******

Группа: Разработчики
Сообщений: 786
Регистрация: 14.8.2006
Из: Архангельск
Пользователь №: 95 055
Модель телефона: E398
Прошивка: DaR
Победитель конкурса 2008

Рейтинг: 1650



Мася переделанная под BgManager

Сообщение отредактировал om2804 - 30.1.2011, 0:01
Прикрепленный файл masya_BM.zip   ( 57.02 килобайт ) Кол-во скачиваний: 161
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
om2804
сообщение 29.1.2011, 23:51


МотоКодер
******

Группа: Разработчики
Сообщений: 786
Регистрация: 14.8.2006
Из: Архангельск
Пользователь №: 95 055
Модель телефона: E398
Прошивка: DaR
Победитель конкурса 2008

Рейтинг: 1650



mJabber v0.5 переделанный для BgManager

кстати, у кого не запускается - попробуйте выгрузить все эльфы. Не хватает памяти. У меня, например, заработал только после выгрузки информера

Сообщение отредактировал om2804 - 29.1.2011, 23:57
Прикрепленный файл mJabber_0.5_BM.zip   ( 182.86 килобайт ) Кол-во скачиваний: 135
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
NivlaFX
сообщение 13.2.2011, 6:32


Интересующийся
**

Группа: Пользователи
Сообщений: 42
Регистрация: 14.9.2010
Из: Antigua
Пользователь №: 220 005
Модель телефона: SLVR L7, iPod Touch 4
Прошивка: NivlaFX 0.1 ACR_RB


Настроение:
Innovative/Motivative Feeling



Рейтинг: 0



How do I get this to work on L7 ACR_RB
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
om2804
сообщение 15.2.2011, 13:47


МотоКодер
******

Группа: Разработчики
Сообщений: 786
Регистрация: 14.8.2006
Из: Архангельск
Пользователь №: 95 055
Модель телефона: E398
Прошивка: DaR
Победитель конкурса 2008

Рейтинг: 1650



NivlaFX, give me your log
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
BackgroundManager, менеджер приложений свёрнутых в фон · Эльфы, их разработка и портирование · Forum
 

Ответ в темуСоздание новой темы
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 23.5.2024, 7:38

Форум живёт: