События

Назначение

Информационные сообщения с назначенными на него «событиями» используются телефоном для передачи информации из одной книги в другую.
Сообщения могут как содержать дополнительную информацию (приложение), так и могут быть отправлены без неё.

Методы приёма информации

Обработка событий книгой

Рассмотрим данный метод.

#pragma swi_number=0x12B
__swi __arm  int CreateBook(void * mem, void (* onClose)(BOOK*), const PAGE_DESC * bp, const char * name, int __0xFFFFFFFF,int __0);

Как мы видим, третьим параметром при создании книги является PAGE_DESC. Это описание главной страницы книги. Данная страница будет добавлена в список активных страниц прямо при создании книги.

Пример описания страницы

const PAGE_MSG bk_msglst_base[] @ "DYN_PAGE"  =
{
  ELF_TERMINATE_EVENT,     TerminateElf,
  ELF_SHOW_INFO_EVENT,     ShowAuthorInfo,
  NIL_EVENT_TAG,           NULL
};
 
const PAGE_DESC bk_base = {"MyElf_Base_Page",0,bk_msglst_base};

Как мы видим, в массиве bk_msglst_base записаны номера событий и соответствующие им процедуры.
Обратите внимание, что фиксированные события из эльфпака (ELF_TERMINATE_EVENT, ELF_SHOW_INFO_EVENT, SBY_REDRAW_EVENT, 993 и т.д.) не требуют суффикса _TAG, а события, входящие в DYN_CONST, должны быть обязательно записаны с ним.
Также следует отметить, что данным способом не все события могут быть получены в некоторых случаях.

Обработка событий с использованием ловушек

int onTimeReceived(UI_MESSAGE *message)
{
   void *msg=message->data; //Дополнительная информация
   //...
};
ModifyUIHook(UI_MEDIAPLAYER_AUDIO_PLAYING_TIME_EVENT, onTimeReceived, 1);

Функции передачи информации

ui_event, ui_event_tobookid, ui_event_tobookidwdata, ui_event_tosid, ui_event_wdata, где:

  • toBookID - событие передаётся книге с определённым ID
  • toSID - событие передаётся активной книге выбранной сессии
  • wData - событие содержит дополнительные данные
You: Guest
You permissions: Read
elfs/elfmaking/events.txt · Последние изменения: 30/03/2015 00:00 (внешнее изменение)
Total pages: 365
RSS on Mobilefree Wiki www.chimeric.de Creative Commons License Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Valid XHTML 1.0
© 2005-2018 supertrubka.org