Главная страница
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.02 c
3-72089
VS2002
2002-12-29 06:32
2003.01.23
Поле со списком в DBGrid


14-72528
vic_774N
2003-01-07 11:25
2003.01.23
Прикол с загрузкой win98se rus !!!!


4-72579
[lamer]Barmaglot
2002-12-05 11:02
2003.01.23
Рекурсивный поиск на CD-ROM е


4-72577
alex134
2002-11-30 18:22
2003.01.23
Хук на окно


1-72311
Chubais
2003-01-15 15:29
2003.01.23
как найти вызов dll