Jump to content


Photo

Dokumentacja / opis funkcji ElfLiba (library od elfpacka) - zastosowanie, parametry, przykłady użycia + opis


  • Please log in to reply
No replies to this topic

#1 OFFLINE   mc_kibel

mc_kibel

    Proud Member of Sony.yt Community

  • User
  • 26 posts
    • Time Online: 1h 1m

Posted 29 October 2011 - 01:36

Witam.
W tym temacie wrzucamy opis funkcji elfpacka, według schematu:

Zastosowanie:
...
Funkcja:
... (fragment z lib)
Parametry:
...
Przykład użycia
+opis, jeśli wymagany.

Tak więc najpierw skieruje podziękowania w stronę se-developers, a w szczególności dla Edgpaez, gdyż akurat informacje nt. tych funkcji, które opisuję w tym poście pochodzą z tamtego forum, a zdecydowaną większość opisał właśnie on.

No więc zaczynam:

_________________________________________________

Zastosowanie:
Konwersja "String" (czyli po ludzku dowolnego tekstu) na StringID (identyfikator tekstu)

Funkcja:
; 15D: int Str2ID(const void * wstr , int  flag , int len);


Parametry:
const void * wstr - to, co chcemy przekonwertować na StringID
int flag - określa rodzaj stringa:
- 0 = Unicode
- 2 = numer telefonu
- 6 = ASCI
int len - długość stringa
- SID_ANY_LEN = uniwersalne, czyli działa dla każdej długości

Zwraca:
String ID

Przykład:
int Przyklad;
Przyklad = Str2ID(L"CentrumSE", 0, SID_ANY_LEN);


____________________________________________________

Zastosowanie:
Pokazanie na ekranie okienka z informacją.

Funkcja:
; 257: void MessageBox(int HeaderStrID,int MessageStrID,wchar_t IconID, int style /*1 or 2*/,int time,BOOK * unk);


Parametry:
  • int HeaderStrID - StringID tytułu okienka, jeśli niepotrzebne wpisujemy 0x6FFFFFFF
  • int MessageStrID - StringID wiadomości, która ma pokazać się w okienku
  • int IconID - ID obrazka wyświetlanego w MSGBoxie, 0 gdy niepotrzebne
  • int style - może być 1 lub 2. Gdy jest jeden, widzimy coś w stylu okienka wyskakującego przy blokowaniu klawiatury, a jeśli 2, to coś w stylu "statusu telefonu".
  • int time - czas w milisekundach, przez który ma wyświetlać się okienko
    -dotyczy tylko wtedy, gdy int style = 1;
    -gdy int style = 2, czas musi być ustawiony na 0, inaczej restart.
  • BOOK * unk - wskaźnik, gdzie wiadomość ma być wyświetlona
    -najlepiej / najłatwiej wpisać 0, żeby nie utrudniać sobie życia Posted Image

Zwraca:
Nic

Przykład:
int tytul, int wiadomosc;
tytul = Str2ID(L"Dowolny tytul", 0, SID_ANY_LEN);
wiadomosc = Str2ID(L"Tekst wiadomosci", 0, SID_ANY_LEN);
void MessageBox (tytul, wiadomosc, 0, 2, 0, 0);

Przykład powyżej spowoduje wyświetlenie okienka wyglądającego jak "Status telefonu", z tytułem "Dowolny tytul" oraz trescia "Tekst wiadomosci".

int wiadomosc2;
wiadomosc2 = Str2ID(L"CentrumSE.pl",0,SID_ANY_LEN);
void MessageBox (0x6FFFFFFF, wiadomosc2 , 0 , 1 , 3000 , 0);

A powyższy kod, spowoduje wyświetlenie okienka wyglądającego jak te przy usuwaniu pliku/blokowaniu klawiatury, o treści "CentrumSE.pl", które zniknie po 3000milisekund (czyli po trzech sekundach).

Używanie Str2ID ma sens w sumie tylko wtedy, gdy jednego stringa używamy kilkukrotnie w kodzie, bo gdy chcemy wyświetlić takie samo okienko jak powyżej, możemy zaoszczędzić trochę kodu robiąc to w ten sposób:
void MessageBox (0x6FFFFFFF, STR("CentrumSE.pl") , 0 , 1 , 3000 , 0);

Efekt ten sam, dwie linijki kodu mniej.

______________________________________________________

Zastosowanie:
Pobranie obecnego profilu

Funkcja:
; 1B4: int REQUEST_PROFILE_GETACTIVEPROFILE(const int *__zero , int *level);


Parametry:
  • const int * __zero - zamiast tego wpisujemy SYNC
  • int * level - wskaźnik, gdzie numer obecnego profilu ma być zapisywany
    -Tak więc gdy zamiast int * level wpiszemy &Profil, informacje na temat numeru obecnego profilu będą zapisywane w zmiennej Profil.

Zwraca:
Numer profilu (int, liczba całkowita, od 0 do 6)

Przykład:
int profil;
REQUEST_PROFILE_GETACTIVEPROFILE(SYNC , &profil);
if (profil == 0 )
{
//Kod do wykonania, gdy numer profilu jest równy 0 (czyli podstawowy)
} else if (profil == 1)
{
//Kod do wykonania, gdy numer profilu jest równy 1 (spotkanie)
}


____________________________________________________

Zastosowanie:
Ustawienie profilu

Funkcja:
; 1B5: int Profile_SetActive(int NUMprof,int set_in_gdfs_flag);


Parametry:
  • int NUMprof - wystarczy wpisać 0
  • int set_in_gdfs_flag - liczba całkowita od 0 do 6, odpowiedzialna za profil. Tak więc wpisanie 5 ustawi nam profil "Dom".

Przykład:
int numer_profilu = 5;
Profile_SetActive(0 , numer_profilu); //ustawia profil "Dom"


________________________________________________________

Zastosowanie:
Sprawdzenie, czy klawiatura jest zablokowana.

Funkcja:
; 1B7: int  isKeylocked(void);


Parametry:
  • brak


Zwraca:
0 - gdy klawiatura nie jest zablokowana
1 - gdy klawiatura jest zablokowana

Przykład:
if(isKeylocked() == 0)
{
//kod do wykonania, gdy klawiatura jest odblokowana
}

if (isKeylocked() == 1)
{
//kod do wykonania, gdy klawiatura jest zablokowana
}

  • 1
Sony Ericsson X8 || GingerDX v017 Android 2.3.7 || Sense Theme


2 user(s) are reading this topic