motofan logo
2 страниц V  1 2 >        
> 

Паттерны и описания функций, новые функции, которых нет в SDK

om2804
сообщение 6.12.2007, 22:02


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

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

Рейтинг: 1650



Делимся со всеми найденными функциями.

Сразу хочу определить формат:
1) Название
2) Паттерна
3) Описание функции

Например:

1) Регулировка яркости дисплея
2) HAPI_LP393X_disp_backlight_intensity T 495DB508784A2302439A704A2800D001431A704A221302124310AB0080187848
3) void HAPI_LP393X_disp_backlight_intensity(int light);
ligth: от 0 до 100 (в десятичной системе)

Небольшой мануал по добавлению функций

1. Качаем PortKit:
Elfpack v1.0
Смотрим мануал как им пользоваться:
Портация Elfpack v1.0

2. в папке PortKit/libgen/ находятся файлы: functions.pat, LTE.pat, LTE2.pat, LTE2_IROM.sym. Это списки паттерн функций.
В какой-то из файлов добавляем паттерну, в зависимости из условия:
functions.pat - функция подходит для всех моделей
LTE.pat - только для LTE
LTE2.pat - только для LTE2

3. Собираем дальше всё по мануалу (см. пн 1)

Сообщение отредактировал om2804 - 20.12.2007, 8:16
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
om2804
сообщение 20.12.2007, 8:12


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

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

Рейтинг: 1650



1) Вкл/Выкл подсветки клавиатуры
2) HAPI_PCAP_transceive T B5F01C04684068A6B08DA90891092100AB087319210473592101403046847399
3) В SDK:
Код

typedef struct {
    unsigned int *addr;
    unsigned int  data;
    unsigned int  mask;
    UINT8          rw;
    UINT8             reg;
} HAPI_CAP_ACCESS;

void HAPI_PCAP_transceive(HAPI_CAP_ACCESS*);


В самом исходнике эльфа:
Код

#define create_mask(mask, sbit, len)\
    (mask = 0xFFFFFFFFL,\
     mask >>= sbit,\
     mask <<= (sizeof(mask) * 8) - len,\
     mask >>= (sizeof(mask) * 8) - (sbit + len))

#define set_data(dest, sbit, data) (dest = ((unsigned int)data) << sbit)
#define get_data(data, sbit) (data >>= sbit)

void hPCAPwrite(UINT8  port, UINT8 pin, UINT8 len, UINT8 write_data)
{
    HAPI_CAP_ACCESS hapi_cap_params;
    UINT8 num_bits = len;
    UINT8 bit_specifier = pin;

    create_mask(hapi_cap_params.mask, bit_specifier, num_bits);
    set_data(hapi_cap_params.data, bit_specifier, write_data);
    hapi_cap_params.rw = 1;
    hapi_cap_params.reg = port;
    hapi_cap_params.addr = 0;
    HAPI_PCAP_transceive(&hapi_cap_params);
}

unsigned int hPCAPread(UINT8  port, UINT8 pin, UINT8 len)
{
    unsigned int data_buffer;
    HAPI_CAP_ACCESS hapi_cap_params;
    UINT8 num_bits = len;
    UINT8 bit_specifier = pin;

    create_mask(hapi_cap_params.mask, bit_specifier, num_bits);
    set_data(hapi_cap_params.data, bit_specifier, 0);
    hapi_cap_params.rw = 0;
    hapi_cap_params.reg = port;
    hapi_cap_params.addr = &hapi_cap_params.data;
    HAPI_PCAP_transceive(&hapi_cap_params);
    data_buffer = get_data(hapi_cap_params.data, bit_specifier);
    return(data_buffer);
}


Чтобы включить подсветку клавы:
hPCAPwrite(0x15,0,3, 1); // включить клаву
чтобы выключить:
hPCAPwrite(0x15,0,3, 0); // выключить клаву
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
om2804
сообщение 3.1.2008, 19:14


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

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

Рейтинг: 1650



1) Определение состояния клавиатуры (чтение из базы)
2) DL_DbFeatureGetCurrentState T B58CAB0080184A??9101466948??3A0D
3)
Код

#define ID_KEYPAD_LOCK_79              0x86A // 79r
#define ID_KEYPAD_LOCK_49              0x7F3 // 49r

BOOL DL_DbFeatureGetCurrentState( UINT16 fstate_ID, UINT8 *result );
//   fstate_ID офсет в базе (ID_KEYPAD_LOCK)
// result=1 заблокирована; result=0 разблокирована



1) Запись в базу
2) DL_DbFeatureStoreState T B583B0??AB008018A80330??4A??900148
3) UINT32 DL_DbFeatureStoreState(UINT16 fstate_ID, UINT8 state);
// fstate_ID офсет в базе
// state записываемое значение

Сообщение отредактировал om2804 - 12.1.2008, 23:45
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
G-XaD
сообщение 6.1.2008, 6:57


Мастер
****

Группа: Разработчики
Сообщений: 171
Регистрация: 6.11.2007
Из: Donetsk City / Ukraine
Пользователь №: 153 083
Модель телефона: E1, k810
Прошивка: r373_g_0e.30.79r

Рейтинг: 323



Цитата(om2804 @ 3.1.2008, 21:14) *

// fstate_ID офсет в базе (ID_KEYPAD_LOCK)

Офсет в базе db_feature_state я писал вроде... Хотя скорее всеже не офсет.


1) Сенсор освещения.
2) HAPI_ATOD_convert_ambient_light_sensor T b51024002101203e????????2100205a????????21012086
(у меня есть дураная привычка - не проверять патерну на других прошивках :Р)
3) UINT8 HAPI_ATOD_convert_ambient_light_sensor( void );


-----------------------------------------------------------------------------------------------------------------


1) Создает Internal (внутренний) ивент. Не ловится APP_HandleEvent*. Реакцией на ивент будет старт приложения.
Код
status = APP_Register( &evcode_base,    // На какое событие должно запускаться приложение
        // AFW_CreateInternalQueuedEvAux и есть генератор этих событий
    1,    // Кол-во событий, на которое должно запускаться приложение

Про коды событий можно посмотреть в теме ProcedureScaner или на сайте электро http://elektro255.ovh.org/Jsynerj.php

2) Паттерна должна быть в либе с начала эльфпака 1.0.
3) UINT32 AFW_CreateInternalQueuedEvAux( UINT32 ev_id, FREE_BUF_FLAG_T free_buf, UINT32 att_size, void* att_data );

К примеру открываем идой fbrowser (не стесняемя wink.gif), ищем *_event_reg_table - это и есть коды событий на которые он стартует. Теперь при выполнении кода
AFW_CreateInternalQueuedEvAux( 0x3DC, FBF_FREE, NULL, NULL );
Будет стартовать fbrowser.

Сообщение отредактировал G-XaD - 16.1.2008, 17:25
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Мачо
сообщение 10.1.2008, 20:31


Ветеран
*****

Группа: Легенды MotoFan.Ru
Сообщений: 456
Регистрация: 26.7.2004
Из: Киров
Пользователь №: 8 569
Модель телефона: Е398 (умер), E6
Прошивка: Dream A Reality 2.0
Финалист Конкурса 2010

Рейтинг: 1410



Некторорые полнзные функции
Выключить тел
pu_main_powerdown T B5B01C04F???F???1C20F???F???200?F???F???4D??782806000F00280?D103210?201?F???F???F???F???F???F?

Выключить с анимацией? (не проверено)
pu_powerkey_hold_test T B580F???F???280?D10820F?30??F???F???280?D105200?F???F???BC80BC084718200?F???F???E?

Обновить иконку стиля в сс. ( стиль в 4а А)
AlertStatusStart T B50E466948??F???F???280?D001200?E???200?280?D11CAB007818280?D210A3015C1B005B449F0C08020


Сохранить значение в сим 4а
DL_DbFeatureStoreState T B583B0??AB008018A80330??4A??900148??46693A08F???F???B0??BC80BC0806000E004718

Запустить фанлайт
DL_AudStartFunlight T B5F81C0E1C05240?2A0?D003F???F???280?D109AB00701D4A??705C709E466948??3214F???F???BCF8BC084718
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
om2804
сообщение 12.1.2008, 23:41


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

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

Рейтинг: 1650



1) Выключение телефона
2) Для LTE:
pu_main_powerdown T 34012C0BD3F920C3????????21002027????????????????BC10BC084718B5B01C04+0x1E
Для LTE2:
pu_main_powerdown T B5B01C04????????1C20????????2000
3) pu_main_powerdown(UINT32 r0);
// r0 от 0 до 5
//0 = normal_powerdown
//1 = reboot
//3 = Boot

Сообщение отредактировал om2804 - 15.3.2008, 18:18
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
om2804
сообщение 14.1.2008, 13:52


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

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

Рейтинг: 1650



1) Чтение из сима
2) SEEM_ELEMENT_DATA_read T B5F7B0??1C04250088202306435849??18407940


1) Запись в сим
2) SEEM_ELEMENT_DATA_write T B5F3B0931C042500AE0C

3)
Код

typedef UINT16 SEEM_ELEMENT_TYPE; // номер сима

typedef struct {
  SEEM_ELEMENT_TYPE   seem_element_id; // seem
  UINT16   seem_record_number; // record
  UINT32  seem_offset; // offset
  UINT32  seem_size;
} SEEM_ELEMENT_DATA_CONTROL;

// чтение из сима
UINT16   SEEM_ELEMENT_DATA_read     (     SEEM_ELEMENT_DATA_CONTROL  *data_ctrl_ptr,
                                UINT8  *data_buf,
                                BOOL read_zero_byte_allowed
                            );

// *data_ctrl_ptr - указатель на структуру данных, содержащую информацию о запросе
// *data_buf - указатель на буфер, куда прочитаются данные
// read_zero_byte_allowed - если true, то можно читать маленькие симы, длина которых меньше 255                                                                    
//  запись в сим                                                
UINT16  SEEM_ELEMENT_DATA_write    (      SEEM_ELEMENT_DATA_CONTROL  *data_ctrl_ptr,
                            UINT8  *seem_data_ptr
                        );        
// *seem_data_ptr - указатель на буфер, где хранятся записываемые данные    
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
om2804
сообщение 25.1.2008, 12:12


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

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

Рейтинг: 1650



Из-за отсутствия времени нарушу собственное правило добавления новых функций в эту тему


1) Функции MME (для воспроизведения аудиофайлов)
Код

// ПЛЕЕР //
typedef   void*    MME_GC_MEDIA_FILE;

// Открывает файл uri для воспроизведения, и возвращает указатель на открытый файл, unk1 = 0
MME_GC_MEDIA_FILE  MME_GC_playback_create(SU_PORT_T * port, WCHAR * uri, UINT32 unk1, UINT32 unk2, UINT32 unk3, UINT32 unk4, UINT32 unk5, UINT32 unk6);

// Закрывает файл
UINT32 MME_GC_playback_delete(MME_GC_MEDIA_FILE  media_file);

// Начать воспроизведение файла
UINT32 MME_GC_playback_start(MME_GC_MEDIA_FILE  media_file, UINT32 unk1, UINT32 unk2);

// Остановить воспроизведение файла
UINT32 MME_GC_playback_stop(MME_GC_MEDIA_FILE  media_file);

// Пауза
UINT32 MME_GC_playback_pause(MME_GC_MEDIA_FILE  media_file);

// Установить на ms мс. от начала файла
UINT32 MME_GC_playback_seek(MME_GC_MEDIA_FILE  media_file, UINT32 ms);

// Получение аттрибутов
typedef enum
{
DURATION=1,  
DURATION_MS, // общее время аудиофайла в мс
POSITION=73,  
POSITION_MS  // текущая позиция, почему-то в сек.
}ATTRIBUTE_NAME;

UINT32 MME_GC_playback_get_attribute ( MME_GC_MEDIA_FILE        handle,
                                ATTRIBUTE_NAME   attribute_name,
                                void              *attribute_value   // UINT32
                               );

Паттерны:
MME_GC_playback_start T B5F7B08A27001C04AA07214CF7FF
MME_GC_playback_create T B5FFB08D9E191C0F24002000900B250
MME_GC_playback_delete T B5F0B0852400900421009103
MME_GC_playback_seek T B5FE1C051C0F24001C28
MME_GC_playback_get_attribute T B5F01C0F1C061C14B0??25001C30F7FF
Для LTE:
MME_GC_playback_stop T 9400220131026800F7??????1C20E5??B5BC+0x10
MME_GC_playback_pause T D102??01E000??011C??BCBCBC084718B5BC+0x10
Для V3i:
MME_GC_playback_stop T B5BC1C0425001C21A08D????????214C1C20466A
MME_GC_playback_pause T B5BC1C0524001C29A073????????214C1C28466A

2) Изменение громкости
Код

// ГРОМКОСТЬ//
#define AUDIO_VOLUME_TYPE_MULTIMEDIA   4
#define PLAYER_VOLUME_TYPE_MULTIMEDIA   2 // 49R

// Установить громкость
void DL_AudSetVolumeSetting(UINT8 volume_type, UINT8 volume);

// Прочитать громкость
void DL_AudGetVolumeSetting(UINT8 volume_type, UINT8 *volume);
// volume_type - тип громкости (громкость клавиатуры, громкость в мультимедиа...)

Паттерны:
Для LTE:
DL_AudSetVolumeSetting T B508AB00701848??70592202380C4669
DL_AudGetVolumeSetting T B51CAB00701848291C0C91012208380B4669F7
Для V3i:
DL_AudSetVolumeSetting T B508AB0070184852466A210D????????2800D102
DL_AudGetVolumeSetting T B5F01C051C0CB085A801210022002300C00EC008AB00

3) Для определения входящих звонков
Код

// ВХОДЯЩИЙ ЗВОНОК//
#define MAX_CALLS                   7

typedef UINT8 CALL_OVERALL;
typedef UINT8 CALL_STATE;
typedef UINT16  CALL_ID;

typedef struct
{      
    CALL_ID                call_id;  
   CALL_STATE             call_state;
} CALL_ID_;

typedef struct
{
    UINT8  number_of_calls;
    CALL_OVERALL overall_call_state;
    CALL_ID_ call_state_info[MAX_CALLS];
} CALL_STATES;


// если number_of_calls == 0, то вызовов нет
void DL_SigCallGetCallStates(CALL_STATES *call_states);

BOOL APP_MMC_Util_IsVoiceCall(void); // если FALSE, то вызовов нет

Паттерны:
APP_MMC_Util_IsVoiceCall T B5B0B0FFB09FA8962500????????AB907E582800D0172400E01100A0A9961840
Для LTE:
DL_SigCallGetCallStates T B5084A889000488846693A0AF0
Для V3i:
DL_SigCallGetCallStates T B5084A889000488846693A0A????????B001BC084718

4) Изменение, чтение элементов рабочего стола
Код

// ВЫВОД СТРОКИ В ПОЛЕ ДАТЫ//
#define ICONS_STATUS     0x0  // для изменения иконок
#define AUDIO_STATUS     0x69 // появляются иконки плеера, чтобы их убрать нужно послать инвент
#define GPRS_STATUS        0x1D // только строка даты
#define NETWORK_STATUS     0x27 // строка оператора

typedef UINT8 STATUS_ID;

typedef union
{
    INT32                              integer; // номер иконки
    BOOL                               boolean;
    WCHAR                            *currency;
    WCHAR                            *quoted_name;
    WCHAR                            *quoted_phone_number;
    WCHAR                            *quoted_string; // строка для поля даты
    UINT32                           phone_type;
} STATUS;

// изменить элемент
//Чтобы вернуть обратно дату, нужно послать NULL
UINT32 UIS_SetStatus(STATUS_ID status_id, STATUS value);
  
// прочитать значение элемента
UINT32 UIS_GetCurrentStatusValue(STATUS_ID status_id,  STATUS *value);

Паттерны:
UIS_SetStatus A E350007D13500007E3A0300001A00003012FFF1EE92D4008E1A03002
UIS_GetCurrentStatusValue A E350007D1350000703A0000005810000

5) Получение системного времени
Код

// ВРЕМЯ //
typedef struct
{
    UINT8  hour;
    UINT8  minute;
    UINT8  seconds;
} TIME;

UINT32 DL_ClkGetTime( TIME *time );

Паттерна:
DL_ClkGetTime T B5084ADB900048DB466932

Сообщение отредактировал om2804 - 15.3.2008, 18:20
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Andy51
сообщение 25.1.2008, 13:56


0xFFFF
******

Группа: Разработчики
Сообщений: 832
Регистрация: 28.3.2006
Из: Нижний Новгород
Пользователь №: 76 255
Модель телефона: E398, Milestone 2
Прошивка: 49R w/ElfPack2


Настроение:
^^,



Рейтинг: 1224



Цитата(om2804 @ Сегодня, 15:12)

Получение системного времени
*

Ты говорил, что использовал эту функцию как seed рандомайза. А ведь есть ещё эти две функции
Код
/* Получить системное время в тиках */
UINT64 suPalReadTime( void );
/* Перевести время из тиков в миллисекунды  */
UINT64 suPalTicksToMsec( UINT64 ticks );

Обе функции уже есть в libgen
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
G-XaD
сообщение 27.1.2008, 12:26


Мастер
****

Группа: Разработчики
Сообщений: 171
Регистрация: 6.11.2007
Из: Donetsk City / Ukraine
Пользователь №: 153 083
Модель телефона: E1, k810
Прошивка: r373_g_0e.30.79r

Рейтинг: 323



Цитата
5) Получение системного времени

Раз уж на то пошло...
15 декабря добавил в SDK файл time.h (назване не подходит... ну ладно)

Код
#ifndef TIME_H
#define TIME_H

typedef struct
{
    UINT8     day;
    UINT8     month;
    UINT16    year;
} CLK_DATE_T;

typedef struct
{
    UINT8     h;
    UINT8     m;
    UINT8     s;
} CLK_TIME_T;

BOOL DL_ClkGetDate( CLK_DATE_T* );
BOOL DL_ClkGetTime( CLK_TIME_T* );


#endif
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
chinawrc
сообщение 7.2.2008, 1:52


Новичок
*

Группа: Пользователи
Сообщений: 9
Регистрация: 25.8.2005
Пользователь №: 49 616
Модель телефона: e398

Рейтинг: 19



1。self-motion press

2。DL_KeyInjectKeyPress T B58CAB00711A71587199220092002300

3。
Код
void DL_KeyInjectKeyPress(UINT8 KEY,UINT8 states,UINT8 p3);
// p1=key;
// p2=0 Press;p2=1 Release;
// P3=0

void Autopress(UINT8 key)  
{
DL_KeyInjectKeyPress(key,0,0);
DL_KeyInjectKeyPress(key,1,0);
}


(7.2.2008, 5:04):
1.SetWallpaper

2.UIS_SetWallpaper A E92D4008E1A01000E5??????E3A02001????????E3500008908FF100

3.
Код

typedef struct
{
    WCHAR            *url;          
    UINT32           unk;    
} UIS_SETWALLPAPER_SETTINGS_T;  

UINT32 UIS_SetWallpaper(UIS_SETWALLPAPER_SETTINGS_T * );  // thanks G-XaD

1.DL_FsGetIDFromURI(URL,ID); //get pic ID from url

2.DL_DbFeatureStoreBlock(0xAAD,ID,8); // store pic id to DB

3.
Код

      wset->url=URL;
      wset->unk=0;
      
       UIS_SetWallpaper(wset);  //setwallpaper



Сообщение отредактировал Andy51 - 7.2.2008, 13:59
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
G-XaD
сообщение 19.2.2008, 10:42


Мастер
****

Группа: Разработчики
Сообщений: 171
Регистрация: 6.11.2007
Из: Donetsk City / Ukraine
Пользователь №: 153 083
Модель телефона: E1, k810
Прошивка: r373_g_0e.30.79r

Рейтинг: 323



1) UINT32 UIS_GetActiveDialogType(UINT8* res);

2) UIS_GetActiveDialogType A e92d4010e1a04000????????e350000003a0000105c400000a000006e5901000e28fe008e5912060e0821001

3) Возвращает "тип" верхнего диалога. В приложениях прошивки часто используется для определения нахождения на рабочем столе. Если в res значение 0xE, значит на рабочем столе. Для обычного списка в res значение 0x10. Поэксперементируйте если вам это нужно.

Сообщение отредактировал G-XaD - 19.2.2008, 10:43
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
om2804
сообщение 22.2.2008, 21:37


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

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

Рейтинг: 1650



1) инвент входящего звонка
2) CALL_ALERT D 0008????5265636569766500
3)
Код

extern const UINT32 *CALL_ALERT;
UINT32 event = *CALL_ALERT;


1) инвент срабатывания будильника
2) ALMCLK_REMINDER_START D 0D??416C6D52656D00
3)
Код

extern const UINT16 *ALMCLK_REMINDER_START;
UINT32 event = *ALMCLK_REMINDER_START;


1) инвент срабатывания события календаря
2) DATEBOOK_REMINDER D FFFFFFFF00000000000007??10??????00000D??10??????00000D??+0x8
3)
Код

extern const UINT32 *DATEBOOK_REMINDER;
UINT32 event = *DATEBOOK_REMINDER;


1) оффсет в базе, по которому лежит IMEI
2) SEEM_IMEI D 0000????566F6461666F6E652F
3)
Код

extern const UINT32 *SEEM_IMEI;
WCHAR IMEI[15];
DL_DbFeatureGetValueString(*SEEM_IMEI, IMEI );


1) оффсет в базе, по которому можно узнать о состоянии клавиатуры (блок/разблок)
2) KEYPAD_STATE D 48616E646C65417564696F506C617965723A2045786974203D20-0x10
3)
Код

extern const UINT32 *KEYPAD_STATE;
BOOL bLock;
DL_DbFeatureGetCurrentState( *KEYPAD_STATE, &bLock  );


1) инвент отправки по Bluetooth
2) EVENT_BT D 67204F4245582066656174757265202564000000-0x30
3)
Код

extern const UINT32 *EVENT_BT;
UINT32 event = *EVENT_BT;


Сообщение отредактировал om2804 - 8.4.2008, 17:34
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
chinawrc
сообщение 25.2.2008, 3:09


Новичок
*

Группа: Пользователи
Сообщений: 9
Регистрация: 25.8.2005
Пользователь №: 49 616
Модель телефона: e398

Рейтинг: 19



1。GetCurrentLanguageID
2。DRM_GetCurrentLanguage T 1 4A??230056D21C0120012A00D10047702900D0FC48??68007800
3。UINT8 DRM_GetCurrentLanguage(UINT8 * LGID);

LGID:
04 Chinese Complex
05 Chinese Simple
03 British English
01 English

=========================================================
1.GetSecurityCode
2。DL_DbSigNamGetSecurityCode T B51024021C014875????????2800D1002400
3。UINT32 DL_DbSigNamGetSecurityCode(WCHAR *);

===========================================================
1。GetUnlockCode
2。DL_DbSigNamGetUnlockCode T 1C014869B51024023801????????2800
3。UINT32 DL_DbSigNamGetUnlockCode(WCHAR *);

Сообщение отредактировал chinawrc - 28.2.2008, 11:47
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
om2804
сообщение 6.3.2008, 21:09


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

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

Рейтинг: 1650



1) Чтение строки из базы
2) DL_DbFeatureGetValueString T B58CAB0080184A??9101466948??3A0A????????BC8CBC0806000E004718
3) UINT8 DL_DbFeatureGetValueString(UINT32 feature_id, WCHAR *feature_string );
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
mr.Voland
сообщение 12.3.2008, 23:28


Мастер
****

Группа: Пользователи
Сообщений: 262
Регистрация: 30.6.2006
Из: Краснодар
Пользователь №: 89 811
Модель телефона: iPhone3G16Gb
Прошивка: iOS4GM

Рейтинг: 71.5



om2804, исправь это пожайлуста
1) инвент срабатывания события календаря
2) DATEBOOK_REMINDER D FFFFFFFF00000000000007??10??????00000D??10??????00000D??+8
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
om2804
сообщение 15.3.2008, 18:21


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

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

Рейтинг: 1650



Паттерна для функции AFW_InquireRoutingStackByRegId

AFW_InquireRoutingStackByRegId T B580F001FF??BC80BC084718
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
om2804
сообщение 26.3.2008, 20:30


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

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

Рейтинг: 1650



Описание Canvas + паттерны + тестовый эльф

Сообщение отредактировал om2804 - 26.3.2008, 20:31
Прикрепленный файл canvas.zip   ( 16.29 килобайт ) Кол-во скачиваний: 278
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Alesha_Pl
сообщение 27.3.2008, 8:58


Гуру
******

Группа: Почётные мотофаны
Сообщений: 986
Регистрация: 19.5.2005
Из: Россия, г.Петрозаводск
Пользователь №: 42 716
Модель телефона: e398
Прошивка: 49R+EP1+EP2

Рейтинг: 681



om2804, проверил тестовый эльф все прокатило. Паттерны добавил в function.pat. Теперь будем ждать эльфов (новых и обновления старых) с графическими элементами. И, как я понимаю, теперь можно выводить надписи (и не только) на экран телефона не трогая полей даты и оператора?

Сообщение отредактировал Alesha_Pl - 27.3.2008, 8:59
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
GALL
сообщение 29.3.2008, 6:51


Гуру
******

Группа: Почётные мотофаны
Сообщений: 706
Регистрация: 25.12.2004
Из: Барнаул
Пользователь №: 29 674
Модель телефона: Iphone 4s
Прошивка: IOS 7.1.1
Победитель конкурса 2008

Рейтинг: 274



очень удобно новые паттерны добавлять с помощью LibraryEditor от Кадука. Там сразу и показываются не найденные функции. У себя я нашел 2 ненайденных из Canvas. Сейчас всё нормально работает.
P.S. кстати om2804 запостил неправильные паттерны для V3i функции DL_AudSetVolumeSetting. Потому и громкость не менялась на Tunce.elf.

Добавлено позже (29.3.2008, 7:18):
Во так должно быть для V3i:
DL_AudSetVolumeSetting T B5F01C041C0DB0C1A83B2118
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Last1Left
сообщение 1.4.2008, 10:24


Опытный
***

Группа: Пользователи
Сообщений: 103
Регистрация: 30.1.2008
Из: Romania
Пользователь №: 161 862
Модель телефона: v360 ACR / Nokia N82
Прошивка: FallenAngel

Рейтинг: 97



from edy:

1.button/keypad lights
2.
LTE
DL_KeyUpdateKeypadBacklight T B59148414A3DA90078043201
LTE2
DL_KeyUpdateKeypadBacklight T B59148434A3FA90078043201

3.void DL_KeyUpdateKeypadBacklight( UINT8 P1 ); / / P1 = 1 lighting; P2 = 0

=================================================================

1. button/background lights
2.
LTE
UIS_SetBacklightWithIntensity A E92D4010E59F47B4E3510000
LTE2
UIS_SetBacklightWithIntensity A E92D4010E59F46C4E3510000

3. UINT32 UIS_SetBacklightWithIntensity(UINT8 P1, UINT8 P2);
/ / P1 = 255
/ / P2 = 0:00, closing the background lights
/ / P2 = 1:00, open background lights

=================================================================

UIS_GetActiveDialogType

/* Access to the current dialog box type */

#define DialogType_Dialling 0x05 //dial-up window
#define DialogType_EnterName 0x08 //input names. . .
#define DialogType_SetDate 0x0B //Set Date
#define DialogType_SetTime 0x0D //set-up time
#define DialogType_Homescreen 0x0E //desktop standby
#define DialogType_list 0x10 //Item List
#define DialogType_SelectionList 0x13 //options
#define DialogType_BatteryandMemory 0x15 //power, memory usage information, such as window howed that the grid
#define DialogType_JumpOut 0x17 //pop-up window, such as "keyboard is locked, unlocked by XX", "please wait" category
#define DialogType_MessageBox 0x1B //information inbox
#define DialogType_GameAni 0x1D //games and applications when they enter the animation
#define DialogType_WapMenu 0x1E //Wap browser-related menu
#define DialogType_VideoCamera 0x25 //Camera viewfinder window
#define DialogType_Password 0x26 //Password window
#define DialogType_PB_SC_Other 0x28 //phone book, Shortcuts like, a lot of this state
#define DialogType_Menu 0x2D //Main Menu
#define DialogType_SecondLevelMenu 0x2E //2 of the three menu and the menu
#define DialogType_WriteText 0x32 //input text
#define DialogType_Brightness 0x37 //Settings - brightness - highlighted regulation
#define DialogType_Picture 0x39 //Multimedia - picture

Сообщение отредактировал Last1Left - 1.4.2008, 10:27
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Andy51
сообщение 1.4.2008, 19:01


0xFFFF
******

Группа: Разработчики
Сообщений: 832
Регистрация: 28.3.2006
Из: Нижний Новгород
Пользователь №: 76 255
Модель телефона: E398, Milestone 2
Прошивка: 49R w/ElfPack2


Настроение:
^^,



Рейтинг: 1224



Воть, выкладываю немного пофиксенные паттерны функций Canvas-а, эти - должны для обоих LTE 1,2 работать

Сообщение отредактировал Andy51 - 1.4.2008, 19:01
Прикрепленный файл canvas.pat   ( 2.79 килобайт ) Кол-во скачиваний: 658
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
om2804
сообщение 8.4.2008, 16:37


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

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

Рейтинг: 1650



1) Устанавливает новый список действий для List
2) UIS_SetActionList A E92D4038E1A05001E3A04001????????E35000000A000006E5901000
3) UINT32 UIS_SetActionList(UIS_DIALOG_T dialog, ACTIONS_T *action_list);


1) устанавливает ивент на джойстик в центр
2) UIS_SetCenterSelectAction A E92D4010E1A04001EB??????E350000015804358E8BD401003A0000113A00000
3) UINT32 UIS_SetCenterSelectAction (UIS_DIALOG_T dialog, EVENT_CODE_T center_select_action);


1) Преобразование из UTF-8 в Unicode и обратно
2) DL_Char_convUCS2toUTF8String T B5FFB0811C06240028009D03D024
DL_Char_convUTF8toUCS2String T B5FF1C051840B0849001380190039801

3)
UINT16
DL_Char_convUCS2toUTF8String( const WCHAR * source_ptr,
UINT16 source_len,
UINT8 * target_ptr,
UINT16 target_buf_len);

UINT16
DL_Char_convUTF8toUCS2String(const UINT8 * source_ptr,
UINT16 source_len,
WCHAR * target_ptr,
UINT16 target_buf_len);

Сообщение отредактировал Andy51 - 8.4.2008, 17:12
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Last1Left
сообщение 8.4.2008, 17:26


Опытный
***

Группа: Пользователи
Сообщений: 103
Регистрация: 30.1.2008
Из: Romania
Пользователь №: 161 862
Модель телефона: v360 ACR / Nokia N82
Прошивка: FallenAngel

Рейтинг: 97



from edy:
1)Painting point
2.UIS_CanvasDrawPixel A E92D41F3E24DD018E28D0014E1A04001EB
3.void UIS_CanvasDrawPixel(GRAPHIC_POINT_T point,UIS_DIALOG_T handle);
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Last1Left
сообщение 25.4.2008, 11:57


Опытный
***

Группа: Пользователи
Сообщений: 103
Регистрация: 30.1.2008
Из: Romania
Пользователь №: 161 862
Модель телефона: v360 ACR / Nokia N82
Прошивка: FallenAngel

Рейтинг: 97



1. battery voltage address
2.SBCM_ATOD_vltg D 3100312F31+0xA
3.
extern const UINT32 *SBCM_ATOD_vltg;
//UINT32 vltg = *SBCM_ATOD_vltg;
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
DmT
сообщение 11.5.2008, 15:38


Мото-Портной
******

Группа: Разработчики
Сообщений: 1 175
Регистрация: 31.3.2007
Пользователь №: 129 181
Модель телефона: LG GW620, L7e и др.
Победитель конкурса 2008

Рейтинг: 680



Задержка Sleep
suSleep T B5101C0C210?280?D0041C0117C0F???F???3101
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Osta
сообщение 4.6.2008, 15:29


Freestyler
********

Группа: Легенды MotoFan.Ru
Сообщений: 10 329
Регистрация: 20.7.2004
Пользователь №: 8 235
Модель телефона: Moto
Прошивка: *#9999#


Настроение:
Все невыспавшиеся в следующей жизни будут котами



Рейтинг: 4362



ARM функция
UIS_CreateSplashScreen(&app_env, № картинки из DRM "1200хххх" , время DURATION);
для L7e адрес 0х1027B65C


+-------------------------------
предложение ввести понятие нулевого байта в seem004a и чтобы
только от него отталкивались разработчики при считывании/записи байт в этом симе
на 4xR это DATA 0x582
на 79R это DATA 0x5d9
на L7e это DATA 0x612
...... внести его в либу и к примеру чтобы прочитать/записать в байт
SEEM 004A_0001, Смещ-е 000Ah/10d (Абс.бит 80):ACTIVE_ALERT_TYPE
разработчик будет писать Nullbyte4a+0xA ... ну вообщем что-то в этом роде,
а то байты у нас одни , а разработчики "явно" указывают под Е398 = 58C,
что не подходит для L7e/Z3....
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
DmT
сообщение 12.6.2008, 11:04


Мото-Портной
******

Группа: Разработчики
Сообщений: 1 175
Регистрация: 31.3.2007
Пользователь №: 129 181
Модель телефона: LG GW620, L7e и др.
Победитель конкурса 2008

Рейтинг: 680



Помогите разобраться с функцией Nsscanf
B40FB5F0B085A80C9A0A0885781000AD2800D10543C0B005BCF0BC08B00447182100910491039202E0D22900D11C2E25D10778022A25D0012101E0C93001900B
Это вероятно аналог
int sscanf(const char *buffer, const char *format [, arguments,]);
вводит данные из buffer в список аргументов arguments по формату format
Но я не разберусь никак с исользованием sad.gif
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
tim apple
сообщение 22.6.2008, 12:49


Мастер
****

Группа: Разработчики
Сообщений: 260
Регистрация: 13.7.2007
Из: РФ, Башкирия, Стерлитамак
Пользователь №: 141 375
Модель телефона: ---
Прошивка: ---

Рейтинг: 435



DmT,
из справки по функции sscanf :

char name[20];
int age;
long salary;

sscanf("Peter 34 245000","%s %d %ld", &name, &age, &salary);


Добавлено позже (22.6.2008, 19:08):
в либе от мачо появились такие функции:
DL_ClkStartTimer
DL_ClkStartCyclicalTimer
DL_ClkStopTimer
с их помощью можно управлять несколькими таймерами независимо. аналогичные функции APP_UtilStartTimer APP_UtilStartCyclicalTimer APP_UtilStopTimer позволяют управлять только одним таймером единовременно.

Код

typedef struct
{
    UINT32    period;
    UINT32    id;
} DL_TIMER_INIT_T;

typedef struct
{
    SU_PORT_T     port;
    UINT32         handle;
} IFACE_DATA_T;

UINT32 DL_ClkStartTimer( IFACE_DATA_T* iface, UINT32 period, UINT32 id );
UINT32 DL_ClkStartCyclicalTimer( IFACE_DATA_T* iface, UINT32 period, UINT32 id );
UINT32 DL_ClkStopTimer( IFACE_DATA_T* iface );

/* How2Use:
IFACE_DATA_T  iface;
UINT32              timer_handle;

iface.port = papp->port;
DL_ClkStartTimer( &iface, 1000, 0x51 );
timer_handle = iface.handle;
...
iface.port = papp->port;
iface.handle = timer_handle;
DL_ClkStopTimer(&iface);
*/

т.о. задав несколько iface'ов можно создать несколько независимых таймеров

Сообщение отредактировал tim apple - 22.6.2008, 13:21
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Osta
сообщение 15.7.2008, 12:32


Freestyler
********

Группа: Легенды MotoFan.Ru
Сообщений: 10 329
Регистрация: 20.7.2004
Пользователь №: 8 235
Модель телефона: Moto
Прошивка: *#9999#


Настроение:
Все невыспавшиеся в следующей жизни будут котами



Рейтинг: 4362



Добавил себе в \SDK\dl.h
Код

// csd/gprs/edge (возвращает что за интернет на текущей вышке Cell )
void DL_SigRegQueryGprsEgprsState(UINT8 *gprs);
//counter unreade message (возвращает количество непрочитанных сообщений)
void MsgUtilGetUnreadMsgsInAllFolders(UINT16 *sms);
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
tim apple
сообщение 15.7.2008, 15:40


Мастер
****

Группа: Разработчики
Сообщений: 260
Регистрация: 13.7.2007
Из: РФ, Башкирия, Стерлитамак
Пользователь №: 141 375
Модель телефона: ---
Прошивка: ---

Рейтинг: 435



функции для работы с метками
Прикрепленный файл shortcuts.zip   ( 1.95 килобайт ) Кол-во скачиваний: 172

(добавить в SDK)

желательно исправить структуру
Код

typedef struct
{
    UINT8                       unk1[20];
    UINT32                     unk2;
    UINT32                     unk3;
    UIS_DIALOG_T          dialog;
    UINT32                     unk4;
    SU_PORT_T               port;
    void                          *unk5;
    EVENT_HANDLER_T     *exit_fn;
    STATE_HANDLERS_ENTRY_T     *handlers_tbl;
    UINT32                     unk6; // always 0
    //56
    SHORTCUT_RECORD_T    *sc_data;
    UINT8                      pad1[12];
    //72
    UINT8                      token_status;
    UINT8           unk7;
    BOOL           focused;
    UINT8           state;          
    UINT8                      pad2[4];
} APPLICATION_T; //size = 80


пример применения:
Код


#define EV_SHORTCUT_RUN 0x???? // на этот ивент регим эльф, чтобы система вызвала его по метке

/* Обработчики событий для HW_STATE_ANY (используется в любом state) */
const EVENT_HANDLER_ENTRY_T any_state_handlers[] =
{  
    /* GUI-приложения должы ловить этот ивент */
    { EV_REVOKE_TOKEN,              APP_HandleUITokenRevoked },
    
   { EV_HANDLE_SHORTCUT,           AnyHandleShortcut },

    { EV_SHORTCUT_RUN,              RunElfByShortcut },
    { STATE_HANDLERS_END,           NULL           }
};


// попытка создать метку
UINT32 AnyHandleShortcut( EVENT_STACK_T *ev_st,  void *app )
{
    EVENT_T *event = AFW_GetEv(ev_st);
    UINT8 state = ((APPLICATION_T*)app)->state;
    SHORTCUT_CREATE_T *scc = event->attachment;
    
    if (event->att_size != sizeof(SHORTCUT_CREATE_T))  // что-то не те данные
        return RESULT_FAIL;
    
    if (event->code != EV_HANDLE_SHORTCUT) // не наш ивент
        return RESULT_FAIL;
    
    if (...) // если для этого элемента нельзя создавать
    {
        return APP_UtilShortcutRejectCreate(ev_st, app);
    }
    
    // заполняем структуру, можно менять любые поля SHORTCUT_CREATE_T
    scc->type = SC_TYPE_APP;
    scc->param1 = ...
    
    return APP_UtilShortcutCreateAppShortcut(ev_st, app, EV_SHORTCUT_RUN);
}


Сообщение отредактировал tim apple - 15.7.2008, 20:36
Прикрепленный файл shortcuts.zip   ( 1.95 килобайт ) Кол-во скачиваний: 172
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
DmT
сообщение 16.7.2008, 12:01


Мото-Портной
******

Группа: Разработчики
Сообщений: 1 175
Регистрация: 31.3.2007
Пользователь №: 129 181
Модель телефона: LG GW620, L7e и др.
Победитель конкурса 2008

Рейтинг: 680



Получаем название оператора

Код
AppDialPrefixUtilGetOperatorName T B5F81C06200?AB0070188030240?221?210?48??4F??F???F???1C0542B8D015230?220?1C284669F???F???1C04D10AAB007818223?232?434232121C311C28


UINT32 AppDialPrefixUtilGetOperatorName(WCHAR *operator_name);

Только черт знает какого оператора возвращает ))-:
Какой-то Embratel
http://en.wikipedia.org/wiki/Embratel biggrin.gif

Сообщение отредактировал DmT - 16.7.2008, 14:20
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
DmT
сообщение 28.7.2008, 8:45


Мото-Портной
******

Группа: Разработчики
Сообщений: 1 175
Регистрация: 31.3.2007
Пользователь №: 129 181
Модель телефона: LG GW620, L7e и др.
Победитель конкурса 2008

Рейтинг: 680



Цитата(Osta @ 15.7.2008, 18:32)

//counter unreade message (возвращает количество непрочитанных сообщений)
void MsgUtilGetUnreadMsgsInAllFolders(UINT16 *sms);
*


К этому стоит добавить:
Код

typedef enum
{
    INBOX              = 0,
    OUTBOX             = 1,
    INFOSRV_INBOX      = 2,
    QUICKNOTE          = 3,
    DRAFTS_FOLDER      = 4,
    EMAIL_INBOX        = 5,
    TEMP_FOLDER        = 15,
    VOICEMAIL          = 16,
    BROWSER_MSGS       = 19,
    ALL_FOLDERS        = 23,
    MMS_TEMPLATE       = 255,
    INVALID            = 255
} MSGS_FOLDER_T;

typedef enum
{
    MSG_TYPE_DEFAULT = 0,
    MSG_TYPE_IMMEDIATE,
    MSG_TYPE_DATE_TIME,
    MSG_TYPE_EMERGENCY,
    MSG_TYPE_SIM_SPECIFIC,
    MSG_TYPE_SIM_SPECIFIC_FTM_OTA,
    MSG_TYPE_BROWSER,
    MSG_TYPE_PREPAY,
    MSG_TYPE_INTERACTIVE,
    MSG_TYPE_FAX_NOTIFY_SCIM,
    MSG_TYPE_FAX_NOTIFY_DEFAULT,
    MSG_TYPE_EMAIL_NOTIFY_SCIM,
    MSG_TYPE_EMAIL_NOTIFY_DEFAULT,
    MSG_TYPE_UNSPECIFIED,
    MSG_TYPE_STATUS_REPORT_SCIM,
    MSG_TYPE_STATUS_REPORT_DEFAULT,
    MSG_TYPE_NOT_GIVEN,
} MSG_TYPE_T;

UINT32 MsgUtilGetUnreadMsgs(UINT16 *msgs_count, MSGS_FOLDER_T folder, MSG_TYPE_T type);

Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Osta
сообщение 31.7.2008, 10:09


Freestyler
********

Группа: Легенды MotoFan.Ru
Сообщений: 10 329
Регистрация: 20.7.2004
Пользователь №: 8 235
Модель телефона: Moto
Прошивка: *#9999#


Настроение:
Все невыспавшиеся в следующей жизни будут котами



Рейтинг: 4362



BOOL AlmclkReminderUtilCallInProgress(void); // если FALSE, то никакого активного вызова нет
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
DmT
сообщение 31.7.2008, 10:38


Мото-Портной
******

Группа: Разработчики
Сообщений: 1 175
Регистрация: 31.3.2007
Пользователь №: 129 181
Модель телефона: LG GW620, L7e и др.
Победитель конкурса 2008

Рейтинг: 680



Найдите кто-нибудь функцию которая возвращает имя оператора(настоящие). Только не по методу который используется в Tunes(тот не катит).
Очень срочно. +
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
DmT
сообщение 2.8.2008, 16:37


Мото-Портной
******

Группа: Разработчики
Сообщений: 1 175
Регистрация: 31.3.2007
Пользователь №: 129 181
Модель телефона: LG GW620, L7e и др.
Победитель конкурса 2008

Рейтинг: 680



APP_ChangeRoutingStack T B5FF1C05200?B0??1C1E2D0?9F0ED03C210?9804F???F?
Код
UINT32 APP_ChangeRoutingStack( APPLICATION_T         *app,
                               EVENT_STACK_T         *ev_st,
                               void                  *main_event_handler,
                               UINT8                 routing_stack,
                               UINT8                 stack_priority,
                               UINT32                priority,
                               UINT16                centricity);

А для чего смотрим тут

Сообщение отредактировал DmT - 2.8.2008, 16:40
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
G-XaD
сообщение 1.9.2008, 11:36


Мастер
****

Группа: Разработчики
Сообщений: 171
Регистрация: 6.11.2007
Из: Donetsk City / Ukraine
Пользователь №: 153 083
Модель телефона: E1, k810
Прошивка: r373_g_0e.30.79r

Рейтинг: 323



Создает диалог ScreenSaver из файла картинки. Масштабирует большие картинки чтобы картинка полностью вписалась в размеры экрана телефона. Точно поддерживает открытие GIF, JPEG, PNG. Возможно и другие.

Паттерна:
Код
UIS_CreateScreenSaver A e92d4070e1a06001e1a05000eb??????e1b040000a000015e1a01004e1a00005eb??????e3a03000e1a02004e1a01006e3a00000eb??????e1b0500003a040000a00000ae5951000e1a00005e5912050e28fe004e0821001e12fff11e1a01004e1a00005eb??????e1a00005eb??????e1a00004e8bd4070e12fff1e

Почему форум вставляет пробел в паттерне?

Добавить в SDK/uis.h
UIS_DIALOG_T UIS_CreateScreenSaver( SU_PORT_T * post, WCHAR * uri );

Сообщение отредактировал G-XaD - 1.9.2008, 11:39
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
DmT
сообщение 1.9.2008, 12:02


Мото-Портной
******

Группа: Разработчики
Сообщений: 1 175
Регистрация: 31.3.2007
Пользователь №: 129 181
Модель телефона: LG GW620, L7e и др.
Победитель конкурса 2008

Рейтинг: 680



G-XaD,
имхо для png проще использовать код libpng.
для jpeg тоже какая то должна быть отдельная либа с низкоуровневым чтением.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
G-XaD
сообщение 1.9.2008, 12:29


Мастер
****

Группа: Разработчики
Сообщений: 171
Регистрация: 6.11.2007
Из: Donetsk City / Ukraine
Пользователь №: 153 083
Модель телефона: E1, k810
Прошивка: r373_g_0e.30.79r

Рейтинг: 323



DmT,
libpng и jpeglib есть в прошивке. zlib тоже есть в прошивке, даже 2 версии: 1.2.1 для явы и 1.1.3 (вроде) для png.

Я не хочу изучать описания форматов и использование библиотек. Мне нужен простейший эльф, который откроет и нарисует в полный экран картинку.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
tim apple
сообщение 30.9.2008, 6:03


Мастер
****

Группа: Разработчики
Сообщений: 260
Регистрация: 13.7.2007
Из: РФ, Башкирия, Стерлитамак
Пользователь №: 141 375
Модель телефона: ---
Прошивка: ---

Рейтинг: 435



функции для работы с вэб-сессиями (пока только 2 нужные мне, остальные думаю добавит G-XAD - для получения APN из сессии по умолчанию)

Код

UINT32 DL_DbWebSessionsFindAbsIndexByName(WCHAR* name, UINT8* ind, UINT32 unk); // unk = 4
DL_DbWebSessionsFindAbsIndexByName T B51FAB0024??731C90009101721A48??1C2322??30??4669

ищет сессию с именем name (регистр учитывается), абсолютный(есть еще относительный по списку) индекс возвращает в ind, возможные коды возврата:
0 - успех
1 - вроде тоже успех (не знаю чем отличается от 0)
2 - база еще не инициализирована, попробуйте позже
4 - такая сессия не найдена

Код

UINT32 DL_DbWebSessionsSetDefaultSessionIndex(SU_PORT_T* port, UINT8 ind);
DL_DbWebSessionsSetDefaultSessionIndex T B59EAB0024??721C9000711948??1C2322??30??4669

устанавливает сессию по умолчанию, абсолютный индекс в ind. коды возврата:
1 - успех
0 - ошибка

Сообщение отредактировал tim apple - 30.9.2008, 8:04
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Паттерны и описания функций, новые функции, которых нет в SDK · Эльфы, их разработка и портирование · Forum
 

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

 



Текстовая версия Сейчас: 29.7.2025, 17:48

Форум живёт: