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

DB3210 - Drawing on player possible - developers needed : Эльфостроение : Эльфы : Форум : Для Sony Ericsson патчи эльфы моддинг прошивка
/  Список форумов
   /  Эльфы
      /  Эльфостроение
   /  DB3210 - Drawing on player possible - developers needed
На печать 
Правила 
Страница 3 из 3: « 1 2 [3]

blacklizard


Patchmaster


Регистрация: 22.7.08
Сообщений: 347
Репутация: 2213





 
  #21 [11.11.10, 13:09] Re: DB3210 - Drawing on player possible - developers needed   

 
Hi, I dumped AudioPlayerBook

Код:
  f=_fopen(L"/usb/other",L"dump.bin",0x108,0x180,0);
  fwrite (f, (char*)(FindBook(get_IsAudioPlayerBook())),0x400);
  fclose(f);


I can find current_track_id and total track number after BOOK structure

My problem is, i dunno how to convert it to struct, help needed





Respect: mc_kibel, moedjs, myrzeug, den_po, IronMaster

den_po


Developer/Admin


Регистрация: 27.3.06
Сообщений: 3278
Репутация: 10763
Откуда: Чебоксары




 
  #22 [11.11.10, 13:25] Re: DB3210 - Drawing on player possible - developers needed   

 
blacklizard, почему ты не используешь коллбэк?




promt is better than google translate

blacklizard


Patchmaster


Регистрация: 22.7.08
Сообщений: 347
Репутация: 2213





 
  #23 [11.11.10, 13:44] Re: DB3210 - Drawing on player possible - developers needed   

 
den_po, i really dont know how to implement ICMusicServer.

Every time i try to subscribe, what i get is only reboot.

Mind showing example?

BTW

Код: 
class IMusicServer1 : public IUnknown
{
public:
    virtual int StartMusicServer(ICBMusicServer* pICBMusicServer, u16 msgBase, int clientData, char StartMode, int track_id);
    virtual int Destroy(unsigned long subscriptionHandle);
    virtual int Subscribe(ICBMusicServer* pICBMusicServer, u16 msgBase, int clientData, unsigned long * pSubscriptionHandle);
    virtual int Unsubscribe(unsigned long subscriptionHandle);
    virtual int StartApplication(TMusicServer_Action action);
    virtual int StopApplication(void);
    virtual int SetPurchaseFlag(void);
    virtual int GetTags(int track_id, int bufsize, wchar_t* artist, wchar_t* album, wchar_t* title);
    virtual int GetFullInfo(int track_id, int bufsize, wchar_t* artist, wchar_t* album, wchar_t* title, wchar_t* filename,TMusicServer_Time* Fulltime,TMusicServer_Time* ElapsedTime,bool* HaveAlbumArt,bool* IsRealMediaFile);
    virtual int GetTrackFullpath(wchar_t track_id, int bufsize, wchar_t *buf);
    virtual int GetAlbumArt(int track_id, int bufsize, wchar_t* filename, int* Offset, int* Size, TMusicServer_AlbumArt_ImageType* pImageType/*0=Jpeg,1=Gif,2=Png,3=Bmp,4=None,5=Embedded*/, TBool* IsDRMProtected);
    virtual int GetState(char* State);
    virtual int Play(int track_id);
    virtual int Pause(void);
    virtual int FastFoward(void);
    virtual int Rewind(void);
    virtual void* unk_0x50();
    virtual int Previous(void);
    virtual int SetElapsedTime(TIME time);
    virtual int GetElapsedTime(TIME* time);
    virtual int SetWindowMode(char mode);
    virtual int SetStarted(TBool started);
    virtual int SetStereoWidening(TBool enable);
    virtual int EnableEqualizer(void);
    virtual int DisableEqualizer(void);
    virtual int EqualizerGain_Set(int band, int level);
    virtual int EqualizerPreset_Set(int equalizerPreset);
};

//CID = 1214435DCCDC4BBFBC70094CD953DCD6
class ICBMusicServer : public IUnknown
{
public:
 virtual int OnInitiated(RVoid statusCode,FUint32 nbrOfItems,TBool random,TBool loop,TClientData clientData); //Notifies the client when the server has been initiated. 
 virtual int OnDestroy(TClientData clientData); //Notifies the client when the client should be destroyed, can be triggered by accessory
 virtual int OnDestroyed(TClientData clientData); //Notifies the client that the music server is destroyed and that all data also are destroyed.
 virtual int OnStopped( TMusicServer_Cause cause,TMusicServer_Time time,TClientData clientData); //Notifies the client when the music has stopped for some reason
 virtual int OnStateChanged(TMusicServer_State state,TMusicServer_Time elapsedTime, TClientData clientData); //Notifies the client when the state has changed for some reason
 virtual int OnTimeFeedback( TMusicServer_Time elapsedTime,TClientData clientData); //Returns a time feedback
 virtual int OnAudioMuted( TMusicServer_MuteReason muteReason,TClientData clientData); //Returns a mute reason
 virtual int OnNbrOfItemsChanged( FUint32 nbrOfItems,TClientData clientData,RVoid result); //Returns the number of items in the play queue.
 virtual int OnItemChanged(RVoid statusCode,FUint32 itemIndex,TMusicServer_Time resumePosition,TMusicServer_Action currentPlayerAction,TChar* pURI,FUint32 lengthOfURI,TChar* pTitle,FUint32 lengthOfTitle,TChar* pArtist,FUint32 lengthOfArtist,TChar* pAlbum,FUint32 lengthOfAlbum,TMusicServer_Time playLength,TBool containsAlbumart,TBool isDRMProtected,TBool isRealMediaFile,TClientData clientData); //Notifies the client that the current item has changed in some way
 virtual int OnApplicationStarted(TBool started,TClientData clientData); //Notifies the clients that the player is started/shut down.
 virtual int OnError( RVoid errorCode,TClientData clientData);//Returns an errorcode 
};



Добавлено 11.11.10 18:48

I know that i should use OnStateChanged but another thing is confusing me, why the argument is pass by reference not pointer?


Добавлено 11.11.10 19:38

Код:
typedef struct
{
  char dummy[0x38];
  short int current_track_id;
}AUDIO_PLAYER_BOOK_3210;


Works good :)


Добавлено 11.11.10 19:49

Код:
typedef struct
{
  char dummy1[0x30];
  short int current_track_id;
}AUDIO_PLAYER_BOOK_3150;




Respect: mc_kibel, moedjs, myrzeug, den_po, IronMaster
Спасибо сказали: D3mon, farid

D3mon


Developer


Регистрация: 23.2.08
Сообщений: 1141
Репутация: 10348
Откуда: Краснодар




 
  #24 [01.12.11, 02:50] Re: DB3210 - Drawing on player possible - developers needed   

 
Немножечко дополню структуру, предложенную KrasH'ем.

Код: 
typedef struct
{
  BOOK book;
  PMusicServer pIMusicServer;
  char dummy_0x0[0x4];
  GUI * Music_Gui_PlayQueue;
  char dummy_0x1[0x14];
  wchar_t current_track_id;
  wchar_t selected_track_id;

  wchar_t tracks_count;
  char dummy[0x6];
  TMusicServer_Time ElapsedTime;
  char dummy_0x2[0x4];
  SUB_EXECUTE *CurrentTrack_SUB_EXECUTE;
  char dummy_0x3[0x4C];
}MUSIC_APPLICATION_BOOK_3210;


Теперь поясню:
current_track_id - id трека, который сейчас активен (либо играет, либо стоит на паузе, не важно)
selected_track_id - id трека, который находится в фокусе в списке воспроизведения.


Добавлено 1.12.11 17:45

И соответственно, если список воспроизведения скрыт или в фокусе текущий трек, то selected_track_id = current_track_id.
А так же:
SUB_EXECUTE *CurrentTrack_SUB_EXECUTE; - это указатель на SUB_EXECUTE не текущего трека, а того, который в фокусе, т.е. логичнее назвать SUB_EXECUTE *SelectedTrack_SUB_EXECUTE;




Sony Xperia XZ3 Green
Sony Xperia Z3 Compact Orange
W995i SW-R1GA026
:(
Спасибо сказали: Therion, MAVER145, farid

farid


Patchmaster


Регистрация: 8.8.09
Сообщений: 329
Репутация: 5753
Откуда: Indonesia




 
  #25 [27.02.12, 18:19] Re: DB3210 - Drawing on player possible - developers needed   

 
=)

Код: 
class IMusicServer3 : public IUnknown
{
public:
    virtual void* unk_0x10();
    virtual void* unk_0x14();
    virtual void* unk_0x18();
    virtual int GetTags(int track_id, int bufsize, wchar_t* artist, wchar_t* album, wchar_t* title);
    virtual int GetFullInfo(int track_id, int bufsize, wchar_t* artist, wchar_t* album, wchar_t* title, wchar_t* filename,TMusicServer_Time* Fulltime,TMusicServer_Time* ElapsedTime,bool* HaveAlbumArt,bool* IsRealMediaFile);
    virtual int GetTrackFullpath(wchar_t track_id, int bufsize, wchar_t *buf);
    virtual void* unk_0x28();
    virtual void* unk_0x2C();
    virtual int GetState(char* State);
    virtual int Play(bool activePress);
    virtual int Pause(void);
    virtual int FastFoward(void);
    virtual int Rewind(void);
    virtual int Next(int track_id);
    virtual int Previous(void);
    virtual void* unk_0x4C();
    virtual void* unk_0x50();
    virtual void* unk_0x54();
    virtual void* unk_0x58();
    virtual void* unk_0x5C();
    virtual void* unk_0x60();
};


Код: 
typedef void* PMusicServer;

typedef struct
{
    unsigned long hour;
    unsigned long min;
    unsigned long sec;
}TMusicServer_Time;

typedef struct
{
  BOOK book;
  PMusicServer pIMusicServer;
  GUI * Music_Gui_PlayQueue;
  char dummy_0[0x10];
  wchar_t current_track_id;
  wchar_t selected_track_id;
  wchar_t tracks_count;
  char dummy_1[0x5];
  char loop;
  char shuffle;
  char dummy_2[0x3];
  TMusicServer_Time ElapsedTime;
  char dummy_3[0x4];
  SUB_EXECUTE *CurrentTrack;
}MUSIC_APPLICATION_BOOK_3150v1;




SEMC DB2000, DB201X, PNX5230, DB2020, DB3150, DB32XX, DB3350
Спасибо сказали: Nook, godlesplay

E1kolyan


Developer


Регистрация: 8.7.07
Сообщений: 663
Репутация: 11934
Откуда: Челябинск




 
  #26 [27.02.12, 19:27] Re: DB3210 - Drawing on player possible - developers needed   

 
Если бы кто нибудь был бы внимательным то Лазер выкладывал описание интерфейса мьюсик сервер, там все методы описаны...





Sony Ericsson C905 SW-R1FA035
Sony Ericsson K810 SW-R8BF003
Sony Xperia™ S
ZTE Blade X3

D3mon


Developer


Регистрация: 23.2.08
Сообщений: 1141
Репутация: 10348
Откуда: Краснодар




 
  #27 [27.02.12, 23:13] Re: DB3210 - Drawing on player possible - developers needed   

 
E1kolyan, Коль, интерфейс, описанный там, совпадает на 100% только с db3210.. Для 3150 каких-то методов нету.

farid,
virtual int Next(int track_id);

(int track_id) - it's wrong!

That's correct:
Код:
virtual int Next(bool activePress);

Код:
@param[in] activePress      True if next was pressed actively by user.
 *                          if activePress and state playing and the current 
 *                          item is the last in the list to be played, the first item in the
 *                          list will start playing. If not activePress, the first
 *                          item will be chosen but not start playing



MUSIC_APPLICATION_BOOK_DB3210_WALKMAN: 

IMusicServer: 




Sony Xperia XZ3 Green
Sony Xperia Z3 Compact Orange
W995i SW-R1GA026
:(
Спасибо сказали: Therion

E1kolyan


Developer


Регистрация: 8.7.07
Сообщений: 663
Репутация: 11934
Откуда: Челябинск




 
  #28 [28.02.12, 18:26] Re: DB3210 - Drawing on player possible - developers needed   

 
Начало у Дениса такое...

IMusicServer__Start+1
IMusicServer__Destroy+1
IMusicServer__Subscribe+1
IMusicServer__Unsubscribe+1
IMusicServer__StartApplication+1
IMusicServer__StopApplication+1





Sony Ericsson C905 SW-R1FA035
Sony Ericsson K810 SW-R8BF003
Sony Xperia™ S
ZTE Blade X3
Страница 3 из 3: « 1 2 [3]


Похожие темы
 ТемаОтветыАвторПросмотрыОбновление
  eXPlayer v.3.1497SERGK39330184624.06.13, 21:40
  . IC изменений DB3350 и DB3210 графика27degafe2919409.06.13, 09:59
  MX Player 1.6j0E1kolyan388025.06.12, 19:22
  PlayerPanel 2.0[NEW]44MaPkiZzz3937425.04.12, 21:04
  Скины для Player mod [elf]33Therion5366207.04.12, 10:54
  PlayerMod 3.1915MaPkiZzz52709222.01.12, 18:52
  Скины для eXPlayer27LitEFlieN3179428.12.11, 22:51
  AdvPlayer v4.2 - NEW!106mc_kibel9122505.08.11, 23:21

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

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