Форум: "Потрепаться";
Текущий архив: 2003.01.23;
Скачать: [xml.tar.bz2];
ВнизТребуется помощь!!! Найти похожие ветки
← →
Совсем НОВИЧОК (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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.007 c