Главная страница
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
9-72014
NailMan
2002-07-21 03:00
2003.01.23
Заточка игрушек


1-72332
pet
2003-01-11 20:55
2003.01.23
Срочно.Горячие клавиши


7-72570
DiHLoS
2002-11-12 16:57
2003.01.23
Как узнать номер BIOS компа?


4-72602
Domkrat
2002-12-05 15:48
2003.01.23
Перехват нажатия клавиатуры


4-72584
bent
2002-12-08 08:39
2003.01.23
Win XP