Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.01.23;
Скачать: CL | DM;

Вниз

Требуется помощь!!!   Найти похожие ветки 

 
Совсем НОВИЧОК   (2003-01-06 21:37) [0]

С Рождеством всех!

Теперь к делу:
ниже приведен код плагина к ВинАмпу на С(или на С++ - я в них не разбираюсь ;-)
С какими параметрами(и как) нужно вызвать процедуру winampGetInModule2(описание внизу кода) из проги на Дельфи ?
Приведите пожалуйста пример, ОЧЕНЬ буду благодарен, т.к. я НОВИЧОК в программировании.
Заранее спасибо.



BOOL WINAPI _DllMainCRTStartup(HANDLE hInst, ULONG ul_reason_for_call, LPVOID lpReserved)
{
return TRUE;
}

// post this to the main window at end of file (after playback as stopped)
#define WM_WA_MPEG_EOF WM_USER+2

// raw configuration
#define NCH 2
#define SAMPLERATE 44100
#define BPS 16



HANDLE input_file=INVALID_HANDLE_VALUE;

int killDecodeThread=0;
HANDLE thread_handle=INVALID_HANDLE_VALUE;

DWORD WINAPI __stdcall DecodeThread(void *b); // the decode thread procedure

void config(HWND hwndParent)
{}
void about(HWND hwndParent)
{}

void init() { /* any one-time initialization goes here (configuration reading, etc) */ }

void quit() { /* one-time deinit, such as memory freeing */ }

int isourfile(char *fn) { return 0; }


int play(char *fn)
{ }

void pause() { paused=1; mod.outMod->Pause(1); }
void unpause() { paused=0; mod.outMod->Pause(0); }
int ispaused() { return paused; }

void stop() { }

int getlength() { }

int getoutputtime() { }

void setoutputtime(int time_in_ms) { }

void setvolume(int volume) { mod.outMod->SetVolume(volume); }
void setpan(int pan) { mod.outMod->SetPan(pan); }

int infoDlg(char *fn, HWND hwnd)
{}

void getfileinfo(char *filename, char *title, int *length_in_ms)
{}

void eq_set(int on, char data[10], int preamp)
{}
DWORD WINAPI __stdcall DecodeThread(void *b)
{}



In_Module mod =
{
IN_VER,
"Nullsoft RAW Player v0.0 "
#ifdef __alpha
"(AXP)"
#else
"(x86)"
#endif
,
0, // hMainWindow
0, // hDllInstance
"RAW\0RAW Audio File (*.RAW)\0"
,
1, // is_seekable
1, // uses output
config,
about,
init,
quit,
getfileinfo,
infoDlg,
isourfile,
play,
pause,
unpause,
ispaused,
stop,

getlength,
getoutputtime,
setoutputtime,

setvolume,
setpan,

0,0,0,0,0,0,0,0,0, // vis stuff


0,0, // dsp

eq_set,

NULL, // setinfo

0 // out_mod

};

__declspec( dllexport ) In_Module * winampGetInModule2()
{
return &mod;
}


 
Suntechnic ©   (2003-01-06 22:05) [1]

Код не весь и очень подозрительно выглядит. Что, например, есть In_Module? Где его(её) определение?

Что за странный кусок, начинающийся с
In_Module mod =
{
...
?

Выглядит как инициализация то ли структуры, то ли массива, а на самом деле это больше похоже вообще на ерунду учитывая присутствие там config и about.


 
Suntechnic ©   (2003-01-06 22:18) [2]

М-да... хоть описания In_Module отсутствует всё-таки при ближайшем рассмотрении становится ясно что это сложная структура, в которой помимо простых типов присутствуют и указатели на ф-ции... Отсюда несколько выводов:
1) Без описания In_Module разговаривать вообще не о чём.
2) Даже имея описание портировать эту ф-цию в Delphi задача отнюдь не для новичка.





 
Uncle Archi ©   (2003-01-06 22:29) [3]

Где-то на этом сайте был пример с использованием какой-то библиотечки по напмсанию плагинов для WinAmp"а.


 
Uncle Archi ©   (2003-01-06 22:35) [4]

Оставь своё мыло, я кину этот пример.



Страницы: 1 вся ветка

Текущий архив: 2003.01.23;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.012 c
1-72367
yanis
2003-01-13 02:49
2003.01.23
Tedit


1-72370
Валерыч
2003-01-05 03:23
2003.01.23
Взаимодействие компонентов


1-72362
петр3
2003-01-12 23:43
2003.01.23
memo


14-72540
Poirot
2003-01-03 08:57
2003.01.23
Киньте примеры к книгеDirectX. Графика в проектах Delphi.


1-72212
TAN
2003-01-14 12:52
2003.01.23
DBGrid