Все для Sony Ericsson, патчи, эльфы, моддинг, прошивка
  
Логин: Пароль: Запомнить: Привет гость! Зарегистрируйся или авторизируйся для получения доп. возможностей!
Разделы
PDA версия сайта
TrackIDentify
Новости
Статьи
Файлы
Патчи
Патчи A2
Патчи db2020
Эльфы
Исходники эльфов
Wiki
Форум
Опросы
Обратная связь
Развернуть/Свернуть
 
Развернуть/Свернуть

Создание Эльфов : Эльфостроение : Эльфы : Форум : Для Sony Ericsson патчи эльфы моддинг прошивка
/  Список форумов
   /  Эльфы
      /  Эльфостроение
   /  Создание Эльфов
На печать 
Правила 
Страница 57 из 211: « 1 ... 53 54 55 56 [57] 58 59 60 61 ... 211 »

nvoid


Expert


Регистрация: 29.11.07
Сообщений: 1375
Репутация: 380





 
  #561 [28.12.07, 11:46] Создание Эльфов   

 
Предлагаю создать тему, посвященную созданию Эльфов. Думаю, удобнее будет собрать ссылки, посвященные Эльфам, в одной теме, а не оффтопить в разных...

Список функций находится в файле *.lib.vkp

Ссылки:
Описание некоторых функций в Wiki
Созадние ELF под Siemens
Создание ELF под Siemens (здесь больше)
Урезанная IAR
Патч для IAR
Учебник по СИ
Основы программирования эльфов

SVN:
TortoiseSVN (программа для работы с SVN)
svn://svn.boba.su/ARM - Зеркало (http mirror) Siemens SVN
svn://svn.boba.su/SE - Зеркало (http mirror) Sony Ericsson SVN
для доступа на svn используйте guest/guest

Другие темы:
Вопросы о СИ (языке)
Исходники Эльфов
Компиляция ЭП

Уроки:
Создание простого эльфа Фонарик от arban.
Создание GUI от arban: часть 1, часть 2.

---------------------------------------------
elfcheck - простая прога, которая проверяет, используются ли в эльфах (включая эльфлоадер) функции, которых нет в либе.
simple tool which checks whether there are functions used in elfs (including elfloader) that are not included in library.

Q: How use elfcheck?
Q: Как использовать?
R: Look this page here

saveevents.elf - сохранение евентов (EVENT)

(c) den_po

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

Шаблоны эльфов для IAR
Некоторые полезные для разработчиков шаблоны эльфов.
На данный момент имеются:
1) Пустой эльф
2) Пустой эльф со своей книгой
3) Эльф-рисовальщик на главном экране
4) Эльф для RegFile (по сути - пустой эльф, но с дополнительными входными параметрами)
5) Эльф с графическим интерфейсом - списком
6) Эльф-патч, который можно конвертировать в *.vkp при помощи elf2vkp

Установка: скопируйте содержимое архива в IAR\ARM\config\template\
Использование: Project->New project->Elf SDK->Нужный шаблон

(C) UltraShot

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

Раздел в Wiki, посвященный созданию эльфов



Прикрепленный к сообщению файл:

elfcheck.rar elfcheck.rar (32.56 kb; 1014 hits) Скачать файл
saveevents.elf saveevents.elf (1.13 kb; 439 hits) Скачать файл
iar_templates.zip iar_templates.zip (114.52 kb; 720 hits) Скачать файл


Motorola EM30
Спасибо сказали: pahon, Zormax, scorpion1616, Evil-Racer, Alex_E, avens, DuMOHsmol, TahaSpawn, vodoo999, Alex1992, ELECTRO-NIC, JohnNorth, HotRabbit, ENSAIER, Olegat0r, scorpion16_Richi, Oganyan-Arthur, Melodic_Death, toha257, farid, mugen, VovanLS, blacklizard, ZuZiK aka pavelsh, Metaler, Atreyu, Nook, Vov4ик, KnoonK, a6b6

Xe1


Elfmaker


Регистрация: 24.3.08
Сообщений: 51
Репутация: 148
Откуда: 57.282504,55.455694 (Google Maps)




 
  #562 [26.08.08, 20:38] Re: Создание Эльфов   

 
Joker XT
Мыж не екстрасенсы)

а жаль )))))))
вот код (правда это не изначальный код, но сути не меняет ) :-)

#include "..\\include\Lib_Clara.h"
#include "..\\include\Dir.h"
#include "..\\include\cfg_items.h"
#include "conf_loader.h"
#include "config_data.h"


typedef struct
{
BOOK book;
}MyBOOK;

MyBOOK * myBook;
GUI_LIST * list;
GUI* maingui;
bool visible;
BOOK* daemon;

//bool test=0;
#pragma segment="ELFBEGIN"
void elf_exit(void){
kill_data(__segment_begin("ELFBEGIN"), (void(*)(void*))mfree_adr()); //\u041e\u041d\u041a\u0421\u0412\u042e\u0415\u0420\u042f\u042a \u0412\u0420\u041d \u0414\u042e\u041c\u041c\u0428\u0415 \u0411\u0428\u042c\u0415 \u0414\u0415\u041f\u0415\u0419\u0420\u0425\u0411\u0428
} //"pragma" \u041c\u0415 \u0421\u0414\u042e\u041a\u042a\u0427\u0420\u042f\u042a?
int NewKey(int key, int r1 , int mode);
static int ReconfigElf(void *mess ,BOOK *book);
static void onMyBookClose(BOOK * book);

int isPaR(BOOK * struc)
{
if (struc->onClose==(void*)onMyBookClose)
{
return(1);
}
else
{
return(0);
}
}
static int TerminateElf(void * ,BOOK *book)
{
FreeBook(book);
return(1);
}

typedef struct
{
BOOK * book;
}MSG;

static int ShowAuthorInfo(void *mess ,BOOK *book)
{
MSG * msg = (MSG *)mess;
int iconID;
iconidname2id(_T("SMI_WINK_ICN"),-1,&iconID); //;-)
MessageBox(0x6fffffff,STR("Supaelf (c) xzkto"),iconID, 1 ,5000,msg->book);
return(1);
}
void PaRBack(BOOK *bk, void *lt)
{
//GUIObject_SoftKey_RemoveItem(mazaGui,ACTION_BACK);
//GUIObject_SoftKey_RemoveItem(mazaGui,ACTION_SELECT1);
GUI_Free(maingui);
// exitproc();
}

void PaROnEnterPressed(BOOK *bk, void *lt)
{
int item = ListMenu_GetSelectedItem((GUI_LIST*)bk->gui);
if(item==0)
MessageBox (0x6fFFFFFF,STR("Yo!"),0,1,5000,0);
if(item==1)
MessageBox (0x6fFFFFFF,STR("2xYo!"),0,1,5000,0);
}



int PaROnLBMessage(GUI_MESSAGE * msg)
{
int item;
//OBJECT * obj;
int text[2];
switch(msg->msg)
{
case 1:
item=GUIonMessage_GetCreatedItemIndex(msg);
text[0]=Str2ID (L"Line 1",0,100);
text[1]=Str2ID (L"Line 2",0,100);
SetMenuItemText0(msg,TextCopyId(text[item]));
}
return(1);
}

GUI_LIST * PaRCreateGuiList(void * r0, BOOK * bk)
{
bk->gui=(GUI*)CreateListObject(bk,0);
GuiObject_SetTitleText(bk->gui,Str2ID(L"Just guilist",0,SID_ANY_LEN));

SetNumOfMenuItem(bk->gui,2);
OneOfMany_SetonMessage((GUI_ONEOFMANY*)bk->gui,PaROnLBMessage);
SetCursorToItem(bk->gui,0);
SetMenuItemStyle(bk->gui,3);


GUIObject_Softkey_SetAction(bk->gui,ACTION_BACK, PaRBack);
GUIObject_Softkey_SetAction(bk->gui,ACTION_SELECT1,PaROnEnterPressed);
return((GUI_LIST*)bk->gui);
}
void CloseMyBook(BOOK* booka,void* X3)
{
//GUI_Free(booka->gui);
FreeBook(booka);
//myBook=0;
}


static void onMyBookClose(BOOK * book)
{
ModifyKeyHook(NewKey,0);
GUI_Free((GUI*)book->gui);
FreeBook(book);
delete myBook;
SUBPROC(elf_exit);
}
const PAGE_MSG bk_msglst_base[] @ "DYN_PAGE" =
{
ELF_TERMINATE_EVENT, TerminateElf,
ELF_SHOW_INFO_EVENT, ShowAuthorInfo,
ELF_RECONFIG_EVENT, ReconfigElf,
NIL_EVENT_TAG, NULL
};

const PAGE_DESC bk_base = {"MegaElf_Base_Page",0,bk_msglst_base};
void CreatePnRBook()
{
myBook=new MyBOOK;
memset(myBook,0,sizeof(MyBOOK));
if (!CreateBook(myBook,onMyBookClose,&bk_base,"MegaElf",-1,0))
{
delete myBook;
SUBPROC(elf_exit);
// return (0);
}
}
int NewKey(int key, int r1 , int mode)
{
if(key==KEY_SHOW)
{
if(mode==KEYMODE_SHOW)
{
BOOK * bk;
if (!(bk=FindBook(isPaR)))
{
CreatePnRBook();maingui=(GUI*)PaRCreateGuiList(0,(BOOK*)myBook); ShowWindow(maingui);
return(-1);
}
else
{

CloseMyBook(bk,0);

return(0);
}
}
}

return(0);
}
void startproc()
{
/*
maingui=(GUI*)PaRCreateGuiList(0,myBook->book);
ShowWindow(mazaGui);
*/
ModifyKeyHook(NewKey,1);

}

static int ReconfigElf(void *mess ,BOOK *book)
{
RECONFIG_EVENT_DATA *reconf=(RECONFIG_EVENT_DATA *)mess;
int result=0;
if (wstrcmpi(reconf->path,successed_config_path)==0 && wstrcmpi(reconf->name,successed_config_name)==0)
{
//exitproc();
InitConfig();
//Timer_ReSet(&timer,REFRESH_TIME,onTimer,0);
//exitproc();

startproc();
result=1;
}
return(result);
}
//daemon
void Daemon_onClose(BOOK * book)
{
}

const PAGE_MSG Daemon_Base_PageEvents[] @ "DYN_PAGE" =
{
ELF_RECONFIG_EVENT,ReconfigElf,
NIL_EVENT_TAG,0
};

const PAGE_DESC Daemon_Base_Page = {"MegaDaemon_Base_Page",0,Daemon_Base_PageEvents};


int isBookmanDaemonBook(BOOK * book)
{
if(!strcmp(book->xbook->name,"MegaDaemon")) return(1);
return(0);
}

void DestroyDaemon(void)
{
BOOK * Daemon_Book;
if (Daemon_Book=FindBook(isBookmanDaemonBook)) FreeBook(Daemon_Book);
}

void CreateDaemon(void)
{
BOOK * Daemon_Book;
if (Daemon_Book=FindBook(isBookmanDaemonBook)) FreeBook(Daemon_Book);
Daemon_Book=new BOOK;
CreateBook(Daemon_Book,Daemon_onClose,&Daemon_Base_Page,"MegaDaemon",-1,0);
}
//end of daemon
int main()
{
CreatePnRBook();

//CreateDaemon();
myBook=0;
InitConfig();
startproc();
//MMIPROC((void (*)(void))onTimer);
return 0;
}

от UltraShot'а: поправил тэг "code", а то страницу листать неудобно. легче в блокнот скопировать и посмотреть

[ Редактировано UltraShot в 27.8.08 10:55 ]



UltraShot


Developer/Moder


Регистрация: 21.5.07
Сообщений: 1729
Репутация: 1827
Откуда: Санкт-Петербург / Череповец




 
  #563 [26.08.08, 22:11] Re: Создание Эльфов   

 
static void onMyBookClose(BOOK * book)
{
ModifyKeyHook(NewKey,0);
GUI_Free((GUI*)book->gui);
FreeBook(book); //Может, это не надо?
delete myBook;
SUBPROC(elf_exit);
}
это у тебя и так "приЗакрытииМоейКниги", а ты опять пустую книжку уничтожаешь.
можно так:
static void onMyBookClose(BOOK * book)
{
ModifyKeyHook(NewKey,0);
GUI_Free((GUI*)book->gui);
myBook=0;
SUBPROC(elf_exit);
}
пробуй, отпишись




Xe1


Elfmaker


Регистрация: 24.3.08
Сообщений: 51
Репутация: 148
Откуда: 57.282504,55.455694 (Google Maps)




 
  #564 [26.08.08, 22:37] Re: Создание Эльфов   

 
UltraShot
это само-собой, не в этом проблема
проблема в CloseMyBook (см NewKey)



Joker XT


VIP Developer


Регистрация: 5.8.06
Сообщений: 1292
Репутация: 7582





 
  #565 [26.08.08, 23:47] Re: Создание Эльфов   

 
Убирай гуй-фри и фрибук из того, чё те Шот написал и всё




SE C901 [R1GA028]

Xe1


Elfmaker


Регистрация: 24.3.08
Сообщений: 51
Репутация: 148
Откуда: 57.282504,55.455694 (Google Maps)




 
  #566 [27.08.08, 10:28] Re: Создание Эльфов   

 
Joker XT
да говорю не в этом проблема, ребут происходит при повторном нажатии KEY_SHOW
при первом нажатии этой клавиши эльф появляется, создаётся книга и гуй
а при втором нажатии эльф по идее должен убить убрать гуй и книгу, но остаться висеть в памяти
вот в этом месте и ребут (((((
А то, что писал Шот будет работать тока кагда гуя нету на экране



UltraShot


Developer/Moder


Регистрация: 21.5.07
Сообщений: 1729
Репутация: 1827
Откуда: Санкт-Петербург / Череповец




 
  #567 [27.08.08, 10:52] Re: Создание Эльфов   

 
Xe1
ужас=)
разберись уже с сорцом, даже по твоему сорцу видно, что в памяти он висеть не остаётся. У тебя там закрывается книга + убирается гуи + сабпроц(эльф_эксит)

А то, что писал Шот будет работать тока кагда гуя нету на экране

почему же??




Xe1


Elfmaker


Регистрация: 24.3.08
Сообщений: 51
Репутация: 148
Откуда: 57.282504,55.455694 (Google Maps)




 
  #568 [27.08.08, 11:55] Re: Создание Эльфов   

 
сабпрок не вызывается, вызывается тока FreeBook()
посмотри вниметельней на NewKey, там вызывается CloseMyBook, а не OnMyBookClose! =)
UltraShot
почему же??

точнее, как сказал Joker XT - "Убирай гуй-фри" еси эльф будет на экране гуй-то не убётся, или его можно не убивать? :-?



UltraShot


Developer/Moder


Регистрация: 21.5.07
Сообщений: 1729
Репутация: 1827
Откуда: Санкт-Петербург / Череповец




 
  #569 [27.08.08, 12:05] Re: Создание Эльфов   

 
Xe1
сабпрок не вызывается, вызывается тока FreeBook()

когда закрываешь книгу onMyBookClose автоматом вызывается!




Xe1


Elfmaker


Регистрация: 24.3.08
Сообщений: 51
Репутация: 148
Откуда: 57.282504,55.455694 (Google Maps)




 
  #570 [27.08.08, 12:18] Re: Создание Эльфов   

 
UltraShot
блин, точно!!!!!!!!


Добавлено 27.8.08 14:22

тупею патихоньку ))))) :-D



eddmund


Elfmaker


Регистрация: 19.1.08
Сообщений: 206
Репутация: 83
Откуда: Austria




 
  #571 [02.09.08, 11:15] Re: Создание Эльфов   

 
Since nobody replied to my last question here (from August 14), I am asking again:

I want to display an icon within a CreateYesNoQuestionVA GUI object. I tried:
Код: 
    GUI* yn=(GUI*)CreateYesNoQuestionVA(
      0,
      VAR_BOOK(myBook),
      VAR_YESNO_PRE_QUESTION(pre_question),
      VAR_YESNO_QUESTION(question),
      0
    );
    GUIObject_Softkey_SetAction(yn, ACTION_YES,  yn_onYes);
    GUIObject_Softkey_SetAction(yn, ACTION_NO,   yn_onNo);

    int icon_id;
    if (iconidname2id(_T("DESKTOP_ORGANIZER_ICN"), -1, &icon_id)) {
      InputFeedback_SetIcon(yn, icon_id);
    }


The Yes/No dialogue appears, but no icon will be displayed. can anybody help please?




My Elves: [ MoonPhase 1.2 | DayDis 1.1 | ImageTest 1.2 ]
Phone: K770_R8BC004
Страница 57 из 211: « 1 ... 53 54 55 56 [57] 58 59 60 61 ... 211 »


Похожие темы

  • Поиск
  • Права
Вы не можете начинать темы.
Вы не можете редактировать свои сообщения.
Вы не можете создавать опросы.
Вы не можете вкладывать файлы в сообщения.
Вы не можете отвечать на сообщения.
Вы не можете удалять свои сообщения.
Вы не можете голосовать.

Главная Новости Статьи Файлы Патчи Форум Опросы PDA
- Генерация страницы: 0.25 секунд | 13 Запросов | HTML: 60.43 КБ -