motofan logo
16 страниц V « < 10 11 12 13 > »         
> 

Учимся писать эльфов вместе, Обсуждение процесса кодинга

Andy51
сообщение 29.10.2007, 20:13 Закрепленное сообщение!


0xFFFF
******

Группа: Разработчики
Сообщений: 832
Регистрация: 28.3.2006
Из: Нижний Новгород
Пользователь №: 76 255

Рейтинг: 1224



Вот и долгожданное обновление SDK до v0.2

Основные новшества с прошлой версии:
+ Добавлено множество функций в SDK
+ Добавлено два новых примера - на этот раз GUI

Что внутри:
Папка SDK - ну, и так ясно, заголовочные файлы. За описаниями функций заглядываем в эту папку.

helloworld_snd - первый пример эльфа. Несколько нестандартный HelloWorld, заменяет озвучку цифровой клавиатуры системными звуками. Предназначен в основном для изучения структуры приложения (Application), ну и как пример приложения, работающего в фоне.

helloworld_gui - классический HelloWorld эльф, на этот раз с использованием GUI. Выводит сообщение с помощью диалога Notice. Предназначен для изучения структуры простейшего GUI-приложения.

ListTest - пример использования диалога List. Значительно более сложный пример, предназначен для изучения возможностей и принципов управления диалогами.

make_*.bat - батники для сборки эльфов-примеров. Эльфы расчитаны на компиляцию с комплектом ADS. Из-за правил форума, я не могу включить его в SDK, однако оставляю ссылки
http://ifolder.ru/3937671
http://slil.ru/25060171
http://rapidshare.com/files/67580866/ads.7z.html

Lib.o - для функционирования эльфа под моим загрузчиком, необходимо подлинковать этот файл к проекту (в make.bat уже прописан).
Внимание! Этот файл не зависит от конкретной версии прошивки, под которую собирается эльф, но, тем не менее, зависит от версии библиотеки!
В этом SDK уже включен Lib.o для библиотеки v071218 (оч. старый - не забудьте обновить, если понадобятся новые функции)

Пара слов об т.н. Application.
В телефонах motorola есть система AFW, которая позволяет, не затрачивая лишних ресурсов процессора на обеспечение "полноценной" многозадачности, достаточно полноценно работать нескольким приложениям, ориентированным на диалог с пользователем. Как это работает: приложения представляют собой, фактически, набор обработчиков событий(ивентов, events) + структура данных приложения. Откликаясь на те или иные события, приложения поочерёдно обрабатывают списки накопившихся ивентов. Таким образом, мы фактически имеем невытесняющую многозадачность.
Есть теоретическая возможность писать и эльфы, выделенные в отдельный процесс(task), но эта часть всё ещё в разработке.

Книги по Си
  1. Руководство полного идиота по программированию (на языке Си) - Не смотря на такое название все азы разжёваны. Если вы вообще никогда не видели Си, начните с этой книги
  2. Герберт Шилдт, "Полный справочник по С (4-е издание)"
    Прикрепленный файл Spr_po_C.rar   ( 934.62 килобайт ) Кол-во скачиваний: 1155
  3. "Язык программирования C"
    Прикрепленный файл C_book.zip   ( 220.86 килобайт ) Кол-во скачиваний: 899
Исходники эльфов
  1. SRC by om2804
  2. SRC by G-XaD
SDK
  1. SDK by om2804
  2. SDK by G-XaD
Эльфостроение на motoWiki

Компилятор + исходники от om2804 для EP1 скачать

Сообщение отредактировал om2804 - 3.5.2011, 13:59
Прикрепленный файл SDKv02.rar   ( 24.88 килобайт ) Кол-во скачиваний: 2174
Прикрепленный файл C_book.zip   ( 220.86 килобайт ) Кол-во скачиваний: 899
Прикрепленный файл Spr_po_C.rar   ( 934.62 килобайт ) Кол-во скачиваний: 1155
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Andy51
сообщение 17.8.2009, 19:07


0xFFFF
******

Группа: Разработчики
Сообщений: 832
Регистрация: 28.3.2006
Из: Нижний Новгород
Пользователь №: 76 255

Рейтинг: 1224



baat, K-E-N-N-Y, у нас кстати на сайте вики есть (в самом верху страницы ссылка), пылится и спамом зарастает. Я думаю, что никто не будет против, если её припахать для описания эльфописания wink.gif Osta, что скажешь?

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


Eve
******

Группа: Разработчики
Сообщений: 1 014
Регистрация: 31.1.2006
Из: Новокузнецк
Пользователь №: 68 287
Модель телефона: L9 ATRIX 4G iPhone SE E1

Рейтинг: 650



Раз вы тут начали об этом, выложу то что я начинал в конце того года и так и не закончил( много тупого там - ибо тогда эльфы не писал еще)

Прикрепленный файл my.7z   ( 25.06 килобайт ) Кол-во скачиваний: 168
Прикрепленный файл my.7z   ( 25.06 килобайт ) Кол-во скачиваний: 168
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
baat
сообщение 17.8.2009, 20:38


Самый Наглый
******

Группа: В отставке
Сообщений: 1 282
Регистрация: 18.5.2006
Из: Дом, милый дом...
Пользователь №: 83 674
Модель телефона: старая модель...
Прошивка: какая уж есть...
Победитель конкурса 2008


Настроение:
...



Рейтинг: 1535



хороший файлик, тема не та была...
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Danation
сообщение 18.8.2009, 6:30


Новичок
*

Группа: Пользователи
Сообщений: 11
Регистрация: 20.5.2009
Пользователь №: 199 870
Модель телефона: K1
Прошивка: R452F_G_08.03.08R

Рейтинг: 0



I apologize if this is the wrong place to post. If so, please direct me to the correct place.

I am trying to write some code that will play a simple .mp3 file. I looked at the code from TalkClock, and I thought I copied the relevant portions, but I seem to be doing something wrong.

How do you play sounds? Please post some lines of code if possible.


Translated by A51:

Извиняюсь, если запостил не туда. Если так, то, пожалуйста, отошлите в нужное место.

Я пытаюсь написать код, который будет играть обычный .mp3 файл. Я посмотрел в исходниках TalkClock, и скопировал соответствующие части кода, как мне казалось. Но похоже, сделал что-то не так.

Как играть звуки? Пожалуйста, запостите несколько строк кода, если не трудно.


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


Freestyler
********

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


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



Рейтинг: 4362



/* Регистрируем приложение */
status = APP_Register( &evcode_base, // На какое событие должно запускаться приложение
1, // Кол-во событий, на которое должно запускаться приложение
state_handling_table, // Таблица состояний
HW_STATE_MAX, // Количество состояний
(void*)startApp ); // Функция, вызываемая при запуске


u_atou(file_uri, nameCfgFile);
nameCfgFile[u_strlen(nameCfgFile)-3] = 0;
u_strcat(nameCfgFile, L"mp3"); // наш музыкальный файл имя эльфа.mp3

if (DL_FsFFileExist( nameCfgFile)) // проверяем есть ли файл
{ MME_GC_playback_open_audio_play_forget(nameCfgFile); } // clap.gif





Цитата(lavmen @ Вчера, 21:48)

my.7z
*


отличное пособие и именно для наших моторол , а не дебри Си !
качать и читать всем кто использует эльфы!
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Danation
сообщение 18.8.2009, 15:19


Новичок
*

Группа: Пользователи
Сообщений: 11
Регистрация: 20.5.2009
Пользователь №: 199 870
Модель телефона: K1
Прошивка: R452F_G_08.03.08R

Рейтинг: 0



QUOTE(Osta @ 18.8.2009, 6:34) *

MME_GC_playback_open_audio_play_forget(nameCfgFile);



Thank you, Osta. I tried this, but the MME_GC_playback_open_audio_play_forget() function wouldn't compile. I looked in mme.h, and I couldn't see that function.

Am I missing a header file? I am new to this. I might be doing something wrong.

Translated by Google Translate:

Спасибо, Osta. Я пробовал это, но MME_GC_playback_open_audio_play_forget() функция не будет собрать. Я посмотрел в mme.h, и я не мог видеть, что функция.

Я пропавших заголовка файла? Я новичок в этом. Я бы делать что-то неправильно.

(Перевод Переводчик Google)

Сообщение отредактировал Danation - 18.8.2009, 15:21
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Osta
сообщение 18.8.2009, 16:23


Freestyler
********

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


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



Рейтинг: 4362



Цитата(Danation @ Сегодня, 17:19)

Am I missing a header file?
*


SDK https://forum.motofan.ru/index.php?act=Attach&type=post&id=207969
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
fkcoder
сообщение 18.8.2009, 16:30


Eve
******

Группа: Разработчики
Сообщений: 1 014
Регистрация: 31.1.2006
Из: Новокузнецк
Пользователь №: 68 287
Модель телефона: L9 ATRIX 4G iPhone SE E1

Рейтинг: 650



Цитата
отличное пособие и именно для наших моторол , а не дебри Си !
качать и читать всем кто использует эльфы!

я бы сказал не пособие, а описание основных функция проши, часто используемых в эльфах
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Danation
сообщение 18.8.2009, 17:58


Новичок
*

Группа: Пользователи
Сообщений: 11
Регистрация: 20.5.2009
Пользователь №: 199 870
Модель телефона: K1
Прошивка: R452F_G_08.03.08R

Рейтинг: 0



Thank you, Osta! It's working now smile.gif
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
beelineman
сообщение 11.9.2009, 16:35


Мото-писатель
******

Группа: Почётные мотофаны
Сообщений: 1 070
Регистрация: 22.12.2007
Из: Cити 8184
Пользователь №: 157 925
Модель телефона: Defy+, iPad Mini
Прошивка: CM10, iOS 7
Победитель конкурса 2008


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



Рейтинг: 372



Дайте пожалуйста книжку по Си, понятную для 12-летнего чела, знающего паскаль, дельфи и некоторые конструкции с++ (короче, для продвинутого чайника).
Вроде Оста где-то выкладывал, а найти не могу.
Гуглом искал: половина по С++, 49% - купить sad.gif, 1% - Ричи Карниган, не понимаю эту книгу.
Конкретно хочу писать проги в формате elf, а то ява уже бесит - тормозит жутко.
Насколько я понял, эльфы - нативные проги, со схемой взаимодействия с процем:
*.elf -> elfloader.lib -> проц.
Вопрос: можно ли считать телефон с эльфами смартом?
Вопрос 2: есть ли вирусы на эльфах (для мото, про сёму знаю)?
Заранее спасибо.

Сообщение отредактировал beelineman - 11.9.2009, 16:52
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Osta
сообщение 11.9.2009, 17:02


Freestyler
********

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


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



Рейтинг: 4362



Цитата(beelineman @ Сегодня, 18:35)

Вроде Оста где-то выкладывал, а найти не могу.
*


в этой теме
Цитата(beelineman @ Сегодня, 18:35)

*.elf -> elfloader.lib -> проц.
*


елф - проц ))
Цитата(beelineman @ Сегодня, 18:35)

Вопрос: можно ли считать телефон с эльфами смартом?
*


и космическим кораблем
Цитата(beelineman @ Сегодня, 18:35)

есть ли вирусы на эльфах
*


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


Мото-писатель
******

Группа: Почётные мотофаны
Сообщений: 1 070
Регистрация: 22.12.2007
Из: Cити 8184
Пользователь №: 157 925
Модель телефона: Defy+, iPad Mini
Прошивка: CM10, iOS 7
Победитель конкурса 2008


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



Рейтинг: 372



Спасибо!Буду учить Си.
Изучаю "руководство полного идиота".

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


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

Группа: Пользователи
Сообщений: 91
Регистрация: 7.9.2008
Из: Беларусь. Могилёв
Пользователь №: 180 691
Модель телефона: e1 и ROKR_Z6
Прошивка: 79R DaR__1.3

Рейтинг: 0



Цитата(beelineman @ 11.9.2009, 19:35) *

есть ли вирусы на эльфах?

выше написали, что есть... а после изучения и сам сможешь добавить в свои эльфы "нужный код" biggrin.gif

[om2804]
Только не забываем статью 273 УК о вредоносных программах


Сообщение отредактировал om2804 - 11.9.2009, 20:31
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
fean0r
сообщение 11.9.2009, 20:49


Новичок
*

Группа: Пользователи
Сообщений: 18
Регистрация: 20.8.2009
Из: Архангельск
Пользователь №: 204 892
Модель телефона: Sie S65/58, CX70/56

Рейтинг: 10



Цитата
Ричи Карниган, не понимаю эту книгу.


Хм, я именно по этой книге учил, вроде нормальной показалась. В любом случае, все справочники надо читать, параллельно ковыряя сорцы: "Таак, что это у нас за конструкция RamNet()->ci? Аха, структура. Ну пока примем как должное (у меня это была самая важная фраза в освоении laugh.gif ), потом изучим. А это что за c+=2;? Аналог c=c+2;? Запомним..". А потом, когда более-менее подучишь - прочитать все разом, поняв непонятные места и выучив то, что в сорцах не часто попадается.

Офф::как справочник рекомендую Герберта Шилдта, "Полный справочник по С". В pdf где-т видел.

Сообщение отредактировал fean0r - 12.9.2009, 15:52
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Osta
сообщение 12.9.2009, 15:05


Freestyler
********

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


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



Рейтинг: 4362



Цитата(fean0r @ Вчера, 22:49)

параллельно ковыряя сорцы
*


это выделить жирным ибо многие думают, что я знаю Си,
а на самом деле я делаю именно это и всё.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
beelineman
сообщение 17.9.2009, 15:16


Мото-писатель
******

Группа: Почётные мотофаны
Сообщений: 1 070
Регистрация: 22.12.2007
Из: Cити 8184
Пользователь №: 157 925
Модель телефона: Defy+, iPad Mini
Прошивка: CM10, iOS 7
Победитель конкурса 2008


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



Рейтинг: 372



А можно описание типов, функций там на примере какого-нибудь эльфа?
Особенно интересует, как использовать UIS_DIALOG_T UIS_CreateConfirmation( SU_PORT_T *port, CONTENT_T *content );, и что за типы SU_PORT_T и CONTENT_T? Как я понял, CONTENT_T - структура, но я не понял как в эту функсию текст запихнуть?
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Osta
сообщение 17.9.2009, 15:21


Freestyler
********

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


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



Рейтинг: 4362



это после изучения http://wiki.motofan.ru/ ?
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
beelineman
сообщение 17.9.2009, 15:28


Мото-писатель
******

Группа: Почётные мотофаны
Сообщений: 1 070
Регистрация: 22.12.2007
Из: Cити 8184
Пользователь №: 157 925
Модель телефона: Defy+, iPad Mini
Прошивка: CM10, iOS 7
Победитель конкурса 2008


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



Рейтинг: 372



Спасибо, не заметил http://wiki.motofan.ru/index.php/UIS_MakeContentFromString.
Буду пробовать компилировать.

Добавлено позже (17.9.2009, 19:38):
Почему-то не компилится. Прилагаю исходники - мод ToneDBKiller.
Объясните чайнику.
PS: ADS что-то про licensed version выдаёт
Прикрепленный файл AVP.rar   ( 2.16 килобайт ) Кол-во скачиваний: 63
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
baat
сообщение 17.9.2009, 15:39


Самый Наглый
******

Группа: В отставке
Сообщений: 1 282
Регистрация: 18.5.2006
Из: Дом, милый дом...
Пользователь №: 83 674
Модель телефона: старая модель...
Прошивка: какая уж есть...
Победитель конкурса 2008


Настроение:
...



Рейтинг: 1535



beelineman, не надо туда ничего пхать...
Spoiler:
если посмотришь такой файлик как typedefs.h, то узреешь где-то на 30-ой строке...
Код
typedef UINT32          UIS_DIALOG_T;
typedef UINT32          SU_PORT_T;

а посмотришь исходники ома, например Backuper.c, где-то 359-ая строка...
Код
   UIS_MakeContentFromString("MCq0", &content, L"Reboot ?");
   dialog = UIS_CreateConfirmation( &port, &content);

и ещё понятнее станет...

а если после всего этого хватит силы открыть uis.h
там есть.. где-то 89-ая строка...
Код
UINT32 UIS_MakeContentFromString( char *format,  CONTENT_T *dst,  ... );
/* Подробнее про строку format:
    Строка состоит из указателей на входящие параметры
    и спецификаторов выравнивания.
    Указатели формируются как тип и номер параметра в функции,
  
    возможные типы:
    a - анимация
    d - дата
    q - указатель на WCHAR строку
    s - ресурс строки
    i - int
    j - LIST_IMAGE_ELEMENT_T
    l - long
    g - hex int
    p - ресурс картинки
    r - CONTENT_T
    f - указатель на файл
    t - время
  
    Спецификаторы выравнивания:
    N - новая строка
    S - распределение текста
    C - текст по центру
    L - обрезать с "...", если строка слишком длинная
    M - текст посередине (вертикальное выравнивание)
    T - текст сверху
    B - текст снизу
    
    Например: "MCq0p1" = "Вывести посередине и по центру первый
    параметр после dst как строку, а второй - как картинку" */
[close]

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


Мото-писатель
******

Группа: Почётные мотофаны
Сообщений: 1 070
Регистрация: 22.12.2007
Из: Cити 8184
Пользователь №: 157 925
Модель телефона: Defy+, iPad Mini
Прошивка: CM10, iOS 7
Победитель конкурса 2008


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



Рейтинг: 372



Я понял уже, спасибо. uis.h видел.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Osta
сообщение 17.9.2009, 16:02


Freestyler
********

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


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



Рейтинг: 4362



Цитата(beelineman @ Сегодня, 17:28)

Почему-то не компилится. Прилагаю исходники - мод ToneDBKiller.
Объясните чайнику.
*


так нельзя писать
Код
/* Application startup function */
UINT32 AVPStart( EVENT_STACK_T *ev_st,  REG_ID_T reg_id,  UINT32 param2 )//void *reg_hdl )
{   CONTENT_T *content = UIS_MakeContentFromString("MCq0", &content, L"Удаляем файл autorun.inf", 0x01000018, 0x01000572, 0x120000D0 );
    APPLICATION_T *papp = (APPLICATION_T*) app;


ты напихал L"Удаляем файл autorun.inf", 0x01000018, 0x01000572, 0x120000D0 , а формат только "MCq0", этого мало

и сразу писать эту строку в переменных не стоит



Добавлено позже (17.9.2009, 18:10):
Цитата(beelineman @ Сегодня, 17:28)

PS: ADS что-то про licensed version выдаёт
*


это есть ? Прикрепленное изображение
Прикрепленный файл license.rar   ( 461 байт ) Кол-во скачиваний: 65
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
zeDDer
сообщение 21.9.2009, 12:52


mCore hacker
*****

Группа: Разработчики
Сообщений: 474
Регистрация: 27.6.2007
Из: Беларусь, Слуцк
Пользователь №: 139 587
Модель телефона: V3x
Прошивка: У вас такой нет)
Финалист Конкурса 2010

Рейтинг: 500



У меня есть вопросик по DRM_SetResource. Первым параметром передаётся ID ресурса. ID ресурса формируется типом ресурса в качестве старшего байта и номером ресурса текущего типа.
Так вот как мне узнать номер ресурса? Мне нужно "сформировать" ID контента. Со строками и иконками всё просто, а тут возникла сложность...

Сообщение отредактировал zeDDer - 21.9.2009, 12:55
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
fkcoder
сообщение 21.9.2009, 13:11


Eve
******

Группа: Разработчики
Сообщений: 1 014
Регистрация: 31.1.2006
Из: Новокузнецк
Пользователь №: 68 287
Модель телефона: L9 ATRIX 4G iPhone SE E1

Рейтинг: 650



zeDDer,
тебе надо заменить стандартный контент, так?
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Osta
сообщение 21.9.2009, 13:18


Freestyler
********

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


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



Рейтинг: 4362



#define RES_TYPE_CONTENT 0x0C

это ?
Прикрепленный файл drm_resources.zip   ( 135.64 килобайт ) Кол-во скачиваний: 650
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
zeDDer
сообщение 21.9.2009, 13:53


mCore hacker
*****

Группа: Разработчики
Сообщений: 474
Регистрация: 27.6.2007
Из: Беларусь, Слуцк
Пользователь №: 139 587
Модель телефона: V3x
Прошивка: У вас такой нет)
Финалист Конкурса 2010

Рейтинг: 500



Угу, надо заменить стандартный контент. Osta, спасибо, поковыряюсь smile.gif
PS: Кстати, я нашёл адрес где вызывается ф-ция UIS_MakeContentFromString и соответственно создаётся данный контент, может как-то можно из этого узнать ID контента?

Сообщение отредактировал zeDDer - 21.9.2009, 14:03
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
tim apple
сообщение 21.9.2009, 14:21


Мастер
****

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

Рейтинг: 435



zeDDer,
1) искать в прошивке место использования нужного тебе контента и там смотреть ID
2) искать контент в DRM и по смещению определить его ID (муторно, но вполне реально)

Цитата(zeDDer @ Сегодня, 19:53)

может как-то можно из этого узнать ID контента?
*


это как раз пункт 1). стучись в аську - помогу.

Сообщение отредактировал tim apple - 21.9.2009, 14:24
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Bad_Santa
сообщение 9.11.2009, 9:16


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

Группа: Пользователи
Сообщений: 75
Регистрация: 18.6.2007
Пользователь №: 138 555
Модель телефона: L7E

Рейтинг: 36.5



Господа. Вот такой код:
Код
#include "INIparser.h" //где есть OpenINI,setSeparator,ReadParamINI и т.д.
...
UINT32 EditData( EVENT_STACK_T *ev_st,  void *app )
    UINT32                   status = 0;
    EVENT_T                 *event = AFW_GetEv(ev_st);
    char                        tmp_buf[14];
    APPLICATION_T      *papp = (APPLICATION_T*) app;
    SU_PORT_T             port = papp->port;
    CONTENT_T             content;
    UIS_DIALOG_T        dialog = 0;

  if (event->attachment != 0)
{
     if (OpenINI(L"Base.txt") != RESULT_OK) return RESULT_FAIL;
     setSeparator('=');
     if (FindSection("GLOBAL"))
      {
        ReadParamINI("a", tmp_buf, 4, "0");
        UIS_MakeContentFromString("MCq0", &content, tmp_buf); //Создаём контент из строки
        dialog = UIS_CreateTransientNotice( &port, &content, NOTICE_TYPE_OK);
        if(dialog == 0) return RESULT_FAIL;
        papp->dialog = dialog;
      }
}
    status = APP_UtilChangeState( HW_STATE_MAIN, ev_st, app ); // возвращаемся в mait state
    return status;
}


При компиляции выдает armlink ошибку:
Код
...
armlink -reloc -first Lib.o(Lib) -0 My.elf My.o Lib.o

Error L6218E: Undefined symbol OpenINI (referred from My.o)
Error L6218E: Undefined symbol setSeparator(referred from My.o)
Error L6218E: Undefined symbol FindSection(referred from My.o)
Error L6218E: Undefined symbol ReadParamINI(referred from My.o)


Как с этим бороться?
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Andy51
сообщение 9.11.2009, 11:32


0xFFFF
******

Группа: Разработчики
Сообщений: 832
Регистрация: 28.3.2006
Из: Нижний Новгород
Пользователь №: 76 255

Рейтинг: 1224



ИАА, о, новичок в эльфостроении smile.gif
Наверняка ты раньше пользовался только графическими оболочками для программирования - добавил файл в проект и оно само собирается как надо. Так вот здесь всё приходится делать вручную, а именно - сначала скомпилировать все исходники *.c и *.cpp, чтобы получить из них объектные файлы (*.o):
Код
tcc ... My.c INIparser.c и т.д.

А затем собрать эти объекты (*.o, а может ещё и архивы *.a) в один эльф линковщиком:
Код
armlink -reloc -first Lib.o(Lib) -o My.elf My.o INIparser.o Lib.o

В этой строчке кстати должно быть "-o <имя_эльфа>, а не "-0 <имя эльфа>". Я не знаю, как называется твой инипарсер, так что привёл имена только для примера.

Сообщение отредактировал Andy51 - 9.11.2009, 11:33
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Bad_Santa
сообщение 9.11.2009, 14:23


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

Группа: Пользователи
Сообщений: 75
Регистрация: 18.6.2007
Пользователь №: 138 555
Модель телефона: L7E

Рейтинг: 36.5



Andy51 да я новичок shuffle.gif

Но как компилить знаю smile.gif

Собрал *.bat для компиляции:

Код
tcc -ISDK -c -bigend -apcs /interwork Setting.c INIparser.c
armlink -reloc -first Lib.o(Lib) -o Setting.elf Setting.o INIparser.o Lib.o
del Setting.o
del INIparser.o
pause



Добавлено позже (9.11.2009, 14:36):
Andy51, а есть графические оболочки для написания эльфов? Если нет, то могу сделать.

Сообщение отредактировал ИАА - 9.11.2009, 14:36
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Andy51
сообщение 9.11.2009, 15:01


0xFFFF
******

Группа: Разработчики
Сообщений: 832
Регистрация: 28.3.2006
Из: Нижний Новгород
Пользователь №: 76 255

Рейтинг: 1224



ИАА, есть GUI for ADS
А ещё у ADS есть "родная" оболочка...

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


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

Группа: Пользователи
Сообщений: 75
Регистрация: 18.6.2007
Пользователь №: 138 555
Модель телефона: L7E

Рейтинг: 36.5



Код
..
WCHAR *IniFiles=L"Base.ini";
char               tmp_buf[20];

            if (OpenINI(IniFiles) != RESULT_OK)
        {
        setSeparator('=');
        ReadParamINI("a", tmp_buf, 20, "nothing");
    CloseINI();
    UIS_MakeContentFromString("MCq0", &content, tmp_buf);
        dialog = UIS_CreateTransientNotice( &port, &content, NOTICE_TYPE_OK);
        }


Когда тел выводит сообщение, то вместо ключа от "a", квадрат. Что за нафиг? )
И почему если "a" нет, то все тот же назойливый квадратик, а не "nothing" ?

P.S. хотя в ReadParamINI прописано, что если параметр не найден, то присвоить дефоултное значени(3-ий параметр)

Добавлено позже (9.11.2009, 22:37):
Как то неправильно задаю первый параметр UIS_MakeContentFromString? или что?

Сообщение отредактировал ИАА - 9.11.2009, 22:29
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
zeDDer
сообщение 10.11.2009, 0:10


mCore hacker
*****

Группа: Разработчики
Сообщений: 474
Регистрация: 27.6.2007
Из: Беларусь, Слуцк
Пользователь №: 139 587
Модель телефона: V3x
Прошивка: У вас такой нет)
Финалист Конкурса 2010

Рейтинг: 500



ИАА, глянь в SDK:
Код

UINT32 UIS_MakeContentFromString( char *format,  CONTENT_T *dst,  ... );
/* More information about the string format:
    The line consists of pointers to incoming parameters
    specifiers and alignment.
    Pointers are the type and number of function parameters,
    possible types:
    q - a pointer to a string WCHAR


Ты же передаёшь указатель на строку char'ов. Используй ф-цию
// ascii to unicode
WCHAR* u_atou(char* astr, WCHAR* ustr);
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Bad_Santa
сообщение 10.11.2009, 15:47


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

Группа: Пользователи
Сообщений: 75
Регистрация: 18.6.2007
Пользователь №: 138 555
Модель телефона: L7E

Рейтинг: 36.5



zeDDer, тааак... теперь постоянно выдает nothing. Но тут я заметил:
Код
if (OpenINI(IniFiles) != RESULT_OK)


разве надо != ? по-моему нет, надо ==. ибо OpenINI при успехе возвращает RESULT_OK.

Ставлю ==, вообще не заходит в условие. Почему не хочет файл открывать?

Сообщение отредактировал ИАА - 10.11.2009, 16:02
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
baat
сообщение 10.11.2009, 18:23


Самый Наглый
******

Группа: В отставке
Сообщений: 1 282
Регистрация: 18.5.2006
Из: Дом, милый дом...
Пользователь №: 83 674
Модель телефона: старая модель...
Прошивка: какая уж есть...
Победитель конкурса 2008


Настроение:
...



Рейтинг: 1535



ИАА,
Цитата
WCHAR *IniFiles=L"Base.ini";

а путь?
если ты этой функцией пользуешься,
Код
UINT32 OpenINI(WCHAR *uri)
{
    FILE_HANDLE_T   ini;
    UINT32          fSize;
    INT32           er;
  
    ini = DL_FsOpenFile(uri, FILE_READ_MODE, 0);
    if (ini == FILE_INVALID) return RESULT_FAIL;

    fSize = DL_FsGetFileSize(ini);
    bufR = (char*) suAllocMem( fSize+2, &er );
    if (er != 0) return RESULT_FAIL;

    bufR[0] = ' ';
    DL_FsReadFile( bufR+1, 1, fSize, ini, &fSize );
    bufR[fSize+1] = 0;
    DL_FsCloseFile(ini);

    return RESULT_OK;
}

то нужно полный путь указывать, а не только одно имя файла

плана L"file://a/mobile/picture/1.jpg"

для того чтобы узнать путь к запущеному файлу можно
Код
UINT32 Register(char* file_uri,char* param,UINT32 reserve) {

внутри функции Register параметр char* file_uri прочитать в какую-нибудь переменную,
допустим оно равно char *str="file://b/Elf/test.elf",
тогда можно удалить три символа с конца ( str[strlen(str)-3] = 0; т.к. конец строки это 0-ой символ )
выйдет char *str="file://b/Elf/test.", после чего, добавить "ini"... ( strcat(str, "ini"); )
char *str="file://b/Elf/test.ini"...
вот тебе и файл настройки в папке с эльфов, созвучный с ним по названию, но отличен по расшерению... а потом u_atou(str, ini_file_name);

Сообщение отредактировал baat - 10.11.2009, 18:39
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Bad_Santa
сообщение 10.11.2009, 18:37


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

Группа: Пользователи
Сообщений: 75
Регистрация: 18.6.2007
Пользователь №: 138 555
Модель телефона: L7E

Рейтинг: 36.5



baat, спасибо. думал что относит. пути работают. ладно... печально.

а как определить путь я знаю, благодаря тебе и om2804 (ваши исходники изучаю)

Сообщение отредактировал ИАА - 10.11.2009, 18:39
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
baat
сообщение 10.11.2009, 19:40


Самый Наглый
******

Группа: В отставке
Сообщений: 1 282
Регистрация: 18.5.2006
Из: Дом, милый дом...
Пользователь №: 83 674
Модель телефона: старая модель...
Прошивка: какая уж есть...
Победитель конкурса 2008


Настроение:
...



Рейтинг: 1535



ИАА,
Цитата
ладно... печально.

что не так то? ты спрашивай...
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Bad_Santa
сообщение 10.11.2009, 19:45


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

Группа: Пользователи
Сообщений: 75
Регистрация: 18.6.2007
Пользователь №: 138 555
Модель телефона: L7E

Рейтинг: 36.5



baat , да не не... просто удобнее когда относитительные пути пишешь
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
baat
сообщение 10.11.2009, 20:11


Самый Наглый
******

Группа: В отставке
Сообщений: 1 282
Регистрация: 18.5.2006
Из: Дом, милый дом...
Пользователь №: 83 674
Модель телефона: старая модель...
Прошивка: какая уж есть...
Победитель конкурса 2008


Настроение:
...



Рейтинг: 1535



ИАА, ну сделай относительным,
сделай глобальную WCHAR dir[128];

внутри функции Register читай путь, уберай из его
убераешь символы с конца до L"/" и будет тебе папка...
Код
UINT16 i=u_strlen(dir);
u_atou(file_uri,dir);
while (dir[i]!=L'/') i--;
dir[i+1]=0;


а потом в функции подправь....
Код
UINT32 OpenINI(WCHAR *dr)     //<< тут
{
    WCHAR uri[255];         //<< тут
    FILE_HANDLE_T   ini;
    UINT32          fSize;      
    INT32           er;

   uri[0] = 0;               //<< тут
   u_strcat(uri, dir);           //<< тут
   u_strcat(uri, dr);           //<< тут
  
    ini = DL_FsOpenFile(uri, FILE_READ_MODE, 0);
    if (ini == FILE_INVALID) return RESULT_FAIL;

    fSize = DL_FsGetFileSize(ini);
    bufR = (char*) suAllocMem( fSize+2, &er );
    if (er != 0) return RESULT_FAIL;

    bufR[0] = ' ';
    DL_FsReadFile( bufR+1, 1, fSize, ini, &fSize );
    bufR[fSize+1] = 0;
    DL_FsCloseFile(ini);

    return RESULT_OK;
}


Сообщение отредактировал baat - 10.11.2009, 20:22
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Bad_Santa
сообщение 10.11.2009, 20:27


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

Группа: Пользователи
Сообщений: 75
Регистрация: 18.6.2007
Пользователь №: 138 555
Модель телефона: L7E

Рейтинг: 36.5



baat ну я так и сделал уже. )

Добавлено позже (10.11.2009, 20:38):
таак. теперь вопрос по DL_ClkGetDate(date);

перевожу из числа в строку

Код
DL_ClkGetDate(date);
u_ltou(date->day,tmp);
u_strcat(numb,tmp);


че то не то выдает. не правильные числа )
т.е. только что пытался в файл записать дату(всю), и он записал 2.37.6105

это потому что u_ltou переводит из INT32 в WCHAR, а у меня UINT8?

Сообщение отредактировал ИАА - 10.11.2009, 20:40
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
baat
сообщение 10.11.2009, 20:41


Самый Наглый
******

Группа: В отставке
Сообщений: 1 282
Регистрация: 18.5.2006
Из: Дом, милый дом...
Пользователь №: 83 674
Модель телефона: старая модель...
Прошивка: какая уж есть...
Победитель конкурса 2008


Настроение:
...



Рейтинг: 1535



ИАА,
Код
CLK_DATE_T  date;
DL_ClkGetDate(&date);
u_ltou(date.day, tmp);


можно так например...
Код

WCHAR *GetFileTime() {
    CLK_DATE_T      date;
    CLK_TIME_T      time;

    WCHAR *uri = L"";

    DL_ClkGetDate( &date);
    DL_ClkGetTime( &time);
    u_ltou(date.day, uri+u_strlen(uri));
    u_strcat(uri, L".");
    u_ltou(date.month, uri+u_strlen(uri));
    u_strcat(uri, L".");
    u_ltou(date.year, uri+u_strlen(uri));
    u_strcat(uri, L"_");
    u_ltou(time.hour, uri+u_strlen(uri));
    u_strcat(uri, L":");
    u_ltou(time.minute, uri+u_strlen(uri));
    u_strcat(uri, L":");
    u_ltou(time.second, uri+u_strlen(uri));
return uri;
}


Сообщение отредактировал baat - 10.11.2009, 21:11
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Учимся писать эльфов вместе, Обсуждение процесса кодинга · Эльфы, их разработка и портирование · Forum
 

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

 



Текстовая версия Сейчас: 5.8.2025, 22:39

Форум живёт: