⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 wa_ipc.h

📁 dsp上用c语言实现的aac音频算法的编解码器代码
💻 H
📖 第 1 页 / 共 3 页
字号:
*/#define IPC_EXECPLUG 202/* (requires Winamp 2.04+, only usable from plug-ins (not external apps))** SendMessage(hwnd_winamp,WM_WA_IPC,(WPARAM)"vis_file.dll",IPC_EXECPLUG);** IPC_EXECPLUG executes a visualization plug-in pointed to by WPARAM.** the format of this string can be:** "vis_whatever.dll"** "vis_whatever.dll,0" // (first mod, file in winamp plug-in dir)** "C:\\dir\\vis_whatever.dll,1" */#define IPC_GETPLAYLISTFILE 211/* (requires Winamp 2.04+, only usable from plug-ins (not external apps))** char *name=SendMessage(hwnd_winamp,WM_WA_IPC,index,IPC_GETPLAYLISTFILE);** IPC_GETPLAYLISTFILE gets the filename of the playlist entry [index].** returns a pointer to it. returns NULL on error.*/#define IPC_GETPLAYLISTTITLE 212/* (requires Winamp 2.04+, only usable from plug-ins (not external apps))** char *name=SendMessage(hwnd_winamp,WM_WA_IPC,index,IPC_GETPLAYLISTTITLE);**** IPC_GETPLAYLISTTITLE gets the title of the playlist entry [index].** returns a pointer to it. returns NULL on error.*/#define IPC_GETHTTPGETTER 240/* retrieves a function pointer to a HTTP retrieval function.** if this is unsupported, returns 1 or 0.** the function should be:** int (*httpRetrieveFile)(HWND hwnd, char *url, char *file, char *dlgtitle);** if you call this function, with a parent window, a URL, an output file, and a dialog title,** it will return 0 on successful download, 1 on error.*/#define IPC_MBOPEN 241/* (requires Winamp 2.05+)** SendMessage(hwnd_winamp,WM_WA_IPC,0,IPC_MBOPEN);** SendMessage(hwnd_winamp,WM_WA_IPC,(WPARAM)url,IPC_MBOPEN);** IPC_MBOPEN will open a new URL in the minibrowser. if url is NULL, it will open the Minibrowser window.*/#define IPC_CHANGECURRENTFILE 245/* (requires Winamp 2.05+)** SendMessage(hwnd_winamp,WM_WA_IPC,(WPARAM)file,IPC_CHANGECURRENTFILE);** IPC_CHANGECURRENTFILE will set the current playlist item.*/#define IPC_GETMBURL 246/* (requires Winamp 2.2+)** char buffer[4096]; // Urls can be VERY long** SendMessage(hwnd_winamp,WM_WA_IPC,(WPARAM)buffer,IPC_GETMBURL);** IPC_GETMBURL will retrieve the current Minibrowser URL into buffer.** buffer must be at least 4096 bytes long.*/#define IPC_MBBLOCK 248/* (requires Winamp 2.4+)** SendMessage(hwnd_winamp,WM_WA_IPC,value,IPC_MBBLOCK);**** IPC_MBBLOCK will block the Minibrowser from updates if value is set to 1*/#define IPC_MBOPENREAL 249/* (requires Winamp 2.4+)** SendMessage(hwnd_winamp,WM_WA_IPC,(WPARAM)url,IPC_MBOPENREAL);**** IPC_MBOPENREAL works the same as IPC_MBOPEN except that it will works even if ** IPC_MBBLOCK has been set to 1*/#define IPC_ADJUST_OPTIONSMENUPOS 280/* (requires Winamp 2.9+)** int newpos=SendMessage(hwnd_winamp,WM_WA_IPC,(WPARAM)adjust_offset,IPC_ADJUST_OPTIONSMENUPOS);** moves where winamp expects the Options menu in the main menu. Useful if you wish to insert a** menu item above the options/skins/vis menus.*/#define IPC_GET_HMENU 281/* (requires Winamp 2.9+)** HMENU hMenu=SendMessage(hwnd_winamp,WM_WA_IPC,(WPARAM)0,IPC_GET_HMENU);** values for data:** 0 : main popup menu ** 1 : main menubar file menu** 2 : main menubar options menu** 3 : main menubar windows menu** 4 : main menubar help menu** other values will return NULL.*/#define IPC_GET_EXTENDED_FILE_INFO 290 //pass a pointer to the following struct in wParam#define IPC_GET_EXTENDED_FILE_INFO_HOOKABLE 296/* (requires Winamp 2.9+)** to use, create an extendedFileInfoStruct, point the values filename and metadata to the** filename and metadata field you wish to query, and ret to a buffer, with retlen to the** length of that buffer, and then SendMessage(hwnd_winamp,WM_WA_IPC,&struct,IPC_GET_EXTENDED_FILE_INFO);** the results should be in the buffer pointed to by ret.** returns 1 if the decoder supports a getExtendedFileInfo method*/typedef struct {  char *filename;  char *metadata;  char *ret;  int retlen;} extendedFileInfoStruct;#define IPC_GET_BASIC_FILE_INFO 291 //pass a pointer to the following struct in wParamtypedef struct {  char *filename;  int quickCheck; // set to 0 to always get, 1 for quick, 2 for default (if 2, quickCheck will be set to 0 if quick wasnot used)  // filled in by winamp  int length;  char *title;  int titlelen;} basicFileInfoStruct;#define IPC_GET_EXTLIST 292 //returns doublenull delimited. GlobalFree() it when done. if data is 0, returns raw extlist, if 1, returns something suitable for getopenfilename#define IPC_INFOBOX 293typedef struct {  HWND parent;  char *filename;} infoBoxParam;#define IPC_SET_EXTENDED_FILE_INFO 294 //pass a pointer to the a extendedFileInfoStruct in wParam/* (requires Winamp 2.9+)** to use, create an extendedFileInfoStruct, point the values filename and metadata to the** filename and metadata field you wish to write in ret. (retlen is not used). and then ** SendMessage(hwnd_winamp,WM_WA_IPC,&struct,IPC_SET_EXTENDED_FILE_INFO);** returns 1 if the metadata is supported** Call IPC_WRITE_EXTENDED_FILE_INFO once you're done setting all the metadata you want to update*/#define IPC_WRITE_EXTENDED_FILE_INFO 295 /* (requires Winamp 2.9+)** writes all the metadata set thru IPC_SET_EXTENDED_FILE_INFO to the file** returns 1 if the file has been successfully updated, 0 if error*/#define IPC_FORMAT_TITLE 297typedef struct {  char *spec; // NULL=default winamp spec  void *p;  char *out;  int out_len;  char * (*TAGFUNC)(char * tag, void * p); //return 0 if not found  void (*TAGFREEFUNC)(char * tag,void * p);} waFormatTitle;#define IPC_GETUNCOMPRESSINTERFACE 331/* returns a function pointer to uncompress().** int (*uncompress)(unsigned char *dest, unsigned long *destLen, const unsigned char *source, unsigned long sourceLen);** right out of zlib, useful for decompressing zlibbed data.** if you pass the parm of 0x10100000, it will return a wa_inflate_struct * to an inflate API.*/typedef struct {  int (*inflateReset)(void *strm);  int (*inflateInit_)(void *strm,const char *version, int stream_size);  int (*inflate)(void *strm, int flush);  int (*inflateEnd)(void *strm);  unsigned long (*crc32)(unsigned long crc, const unsigned  char *buf, unsigned int len);} wa_inflate_struct;#define IPC_ADD_PREFS_DLG 332#define IPC_REMOVE_PREFS_DLG 333/* (requires Winamp 2.9+)** to use, allocate a prefsDlgRec structure (either on the heap or some global** data, but NOT on the stack), initialze the members:** hInst to the DLL instance where the resource is located** dlgID to the ID of the dialog,** proc to the window procedure for the dialog** name to the name of the prefs page in the prefs.** where to 0 (eventually we may add more options)** then, SendMessage(hwnd_winamp,WM_WA_IPC,&prefsRec,IPC_ADD_PREFS_DLG);**** you can also IPC_REMOVE_PREFS_DLG with the address of the same prefsRec,** but you shouldn't really ever have to.***/#define IPC_OPENPREFSTOPAGE 380 // pass an id of a builtin page, or a &prefsDlgRec of prefs page to opentypedef struct _prefsDlgRec {  HINSTANCE hInst;  int dlgID;  void *proc;  char *name;  int where; // 0 for options, 1 for plugins, 2 for skins, 3 for bookmarks, 4 for prefs  int _id;  struct _prefsDlgRec *next;} prefsDlgRec;#define IPC_GETINIFILE 334 // returns a pointer to winamp.ini#define IPC_GETINIDIRECTORY 335 // returns a pointer to the directory to put config files in (if you dont want to use winamp.ini)#define IPC_SPAWNBUTTONPOPUP 361 // param =// 0 = eject// 1 = previous// 2 = next// 3 = pause// 4 = play// 5 = stop#define IPC_OPENURLBOX 360 // pass a HWND to a parent, returns a HGLOBAL that needs to be freed with GlobalFree(), if successful#define IPC_OPENFILEBOX 362 // pass a HWND to a parent#define IPC_OPENDIRBOX 363 // pass a HWND to a parent// pass an HWND to a parent. call this if you take over the whole UI so that the dialogs are not appearing on the// bottom right of the screen since the main winamp window is at 3000x3000, call again with NULL to reset#define IPC_SETDIALOGBOXPARENT 364 // pass 0 for a copy of the skin HBITMAP// pass 1 for name of font to use for playlist editor likeness// pass 2 for font charset// pass 3 for font size#define IPC_GET_GENSKINBITMAP 503#define IPC_GET_EMBEDIF 505 // pass an embedWindowState// returns an HWND embedWindow(embedWindowState *); if the data is NULL, otherwise returns the HWND directlytypedef struct{  HWND me; //hwnd of the window  int flags;  RECT r;  void *user_ptr; // for application use  int extra_data[64]; // for internal winamp use} embedWindowState;#define EMBED_FLAGS_NORESIZE 1 // set this bit in embedWindowState.flags to keep window from being resizable#define EMBED_FLAGS_NOTRANSPARENCY 2 // set this bit in embedWindowState.flags to make gen_ff turn transparency off for this wnd#define IPC_EMBED_ENUM 532typedef struct embedEnumStruct{  int (*enumProc)(embedWindowState *ws, struct embedEnumStruct *param); // return 1 to abort  int user_data; // or more :)} embedEnumStruct;  // pass #define IPC_EMBED_ISVALID 533#define IPC_CONVERTFILE 506/* (requires Winamp 2.92+)** Converts a given file to a different format (PCM, MP3, etc...)** To use, pass a pointer to a waFileConvertStruct struct** This struct can be either on the heap or some global** data, but NOT on the stack. At least, until the conversion is done.**** eg: SendMessage(hwnd_winamp,WM_WA_IPC,&myConvertStruct,IPC_CONVERTFILE);**** Return value:** 0: Can't start the conversion. Look at myConvertStruct->error for details.** 1: Conversion started. Status messages will be sent to the specified callbackhwnd.**    Be sure to call IPC_CONVERTFILE_END when your callback window receives the**    IPC_CB_CONVERT_DONE message.*/typedef struct {  char *sourcefile;  // "c:\\source.mp3"  char *destfile;    // "c:\\dest.pcm"  int destformat[8]; // like 'PCM ',srate,nch,bps  HWND callbackhwnd; // window that will receive the IPC_CB_CONVERT notification messages    //filled in by winamp.exe  char *error;        //if IPC_CONVERTFILE returns 0, the reason will be here  int bytes_done;     //you can look at both of these values for speed statistics  int bytes_total;  int bytes_out;  int killswitch;     // don't set it manually, use IPC_CONVERTFILE_END  int extra_data[64]; // for internal winamp use} convertFileStruct;#define IPC_CONVERTFILE_END 507/* (requires Winamp 2.92+)** Stop/ends a convert process started from IPC_CONVERTFILE** You need to call this when you receive the IPC_CB_CONVERTDONE message or when you** want to abort a conversion process**** eg: SendMessage(hwnd_winamp,WM_WA_IPC,&myConvertStruct,IPC_CONVERTFILE_END);**** No return value*/typedef struct {  HWND hwndParent;  int format;  //filled in by winamp.exe  HWND hwndConfig;  int extra_data[8];} convertConfigStruct;#define IPC_CONVERT_CONFIG 508#define IPC_CONVERT_CONFIG_END 509typedef struct{  void (*enumProc)(int user_data, const char *desc, int fourcc);  int user_data;} converterEnumFmtStruct;#define IPC_CONVERT_CONFIG_ENUMFMTS 510/* (requires Winamp 2.92+)*/typedef struct{  char cdletter;  char *playlist_file;  HWND callback_hwnd;  //filled in by winamp.exe

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -