📄 qcdmoddefs.h
字号:
opSetBrowserUrl = 1001, // set music browser URL (buffer = url (null term)) // null url buffer - closes browser // param1 = 0 - normal, 1 - force open opSetAudioInfo = 1002, // set the current music bitrate/khz (buffer = AudioInfo*, param1 = size of AudioInfo) opSetTrackAlbum = 1003, // update track ablum name (buffer = album (null term), param1 = (string ptr)file name), param2 = MediaTypes opSetTrackTitle = 1004, // update track title (buffer = title (null term), param1 = (string ptr)file name), param2 = MediaTypes opSetTrackArtist = 1005, // update track artist name (buffer = artist (null term), param1 = (string ptr)file name), param2 = MediaTypes opSetPlaylist = 1006, // add files to or reset playlist with new files (buffer = file list (null term), param1 = (string ptr)originating path (can be NULL), param2 = 1 - clear playlist flag, 2 - enqueue to top opSetTrackExtents = 1007, // update track TrackExtents info (buffer = &TrackExtents), param1 = (string ptr)file name) opSetTrackSeekable = 1008, // update track seekable flag (buffer = (string ptr)file name), param1 = TRUE/FALSE opSetPlayNext = 1009, // set the next index to be played (buffer = NULL, param1 = index, index = -1 unsets playnext) opSetIndexFilename = 1010, // updates the filename (or stream) that an index in the current playlist refers to, buffer = new filename, param1 = index opSetSeekPosition = 1100, // seek to position during playback (buffer = NULL, param1 = position, param2 = 0 - position is in seconds, 1 - position is in milliseconds, 2 - position is in percent (use (float)param1)) //*** below configures custom plugin menu items for the 'plugin menu' //*** Player will call plugin's configure routine with menu value when menu item selected //*** returns 1 on success, 0 on failure opSetPluginMenuItem = 2000, // buffer = HINSTANCE of plugin, param1 = item id, param2 = (string ptr)string to display // - set param2 = 0 to remove item id from menu // - set param1 = 0 and param2 = 0 to remove whole menu opSetPluginMenuState = 2001, // buffer = HINSTANCE of plugin, param1 = item id, param2 = menu flags (same as windows menu flags - eg: MF_CHECKED) //*** other services opSafeWait = 10000 // plugin's can use this to wait on an object without worrying about deadlocking the player. // this should only be called by the thread that enters the plugin, not by any plugin-created threads} PluginServiceOp;//-----------------------------------------------------------------------------// Info services api provided by the Player, called by Plugin.//-----------------------------------------------------------------------------typedef long (*PluginServiceFunc)(PluginServiceOp op, void *buffer, long param1, long param2);//-----------------------------------------------------------------------------typedef struct // for Output Plugin Write callback{ void *data; // pointer to valid data int bytelen; // length of data pointed to by 'data' in bytes UINT numsamples; // number of samples represented by 'data' UINT bps; // bits per sample UINT nch; // number of channels UINT srate; // sample rate UINT markerstart; // Marker position at start of data (marker is time value of data) // (set to WAVE_VIS_DATA_ONLY to not have data sent to output plugins) UINT markerend; // Marker position at end of data (not currently used, set to 0)} WriteDataStruct;//-----------------------------------------------------------------------------typedef struct // for GetTrackExtents Input Plugin callback{ UINT track; // for CD's, set the track number. Otherwise set to 1. UINT start; // for CD's or media that doesn't start at the beginning // of the file, set to start position. Otherwise set to 0. UINT end; // set to end position of media. UINT unitpersec; // whatever units are being used for this media, how many // of them per second. // (Note: ((end - start) / unitpersecond) = file length UINT bytesize; // size of file in bytes (if applicable, otherwise 0).} TrackExtents;//-----------------------------------------------------------------------------typedef struct // for opSetAudioInfo service{ long struct_size; // sizeof(AudioInfo) long level; // MPEG level (1 for MPEG1, 2 for MPEG2, 3 for MPEG2.5, 7 for MPEGpro) long layer; // and layer (1, 2 or 3) long bitrate; // audio bitrate in bits per second long frequency; // audio freq in Hz long mode; // 0 for stereo, 1 for joint-stereo, 2 for dual-channel, 3 for mono, 4 for multi-channel} AudioInfo;//-----------------------------------------------------------------------------// Equalizer Info//-----------------------------------------------------------------------------typedef struct // for coming QCD version{ long struct_size; // sizeof(EQInfo) char enabled; char preamp; // -128 to 127, 0 is even char bands[10]; // -128 to 127, 0 is even} EQInfo;//-----------------------------------------------------------------------------typedef struct{ long struct_size; // sizeof(ProxyInfo) char hostname[200]; long port; char username[100]; char password[100];} ProxyInfo;//-----------------------------------------------------------------------------typedef enum // for MediaInfo.mediaType{ UNKNOWN_MEDIA = 0, CD_AUDIO_MEDIA = 1, DIGITAL_FILE_MEDIA = 2, DIGITAL_STREAM_MEDIA = 3} MediaTypes;//-----------------------------------------------------------------------------#define MAX_TOC_LEN 2048typedef struct{ // media descriptors CHAR mediaFile[MAX_PATH]; MediaTypes mediaType; // cd audio media info CHAR cd_mediaTOC[MAX_TOC_LEN]; int cd_numTracks; int cd_hasAudio; // operation info int op_canSeek; // not used int reserved[4];} MediaInfo;//-----------------------------------------------------------------------------// When subclassing the parent window, a plugin can watch for these messages// to react to events going on between plugins and player// DO NOT SEND THESE MESSAGES - can only watch for them// Plugin to Player Notifiers#define WM_PN_POSITIONUPDATE (WM_USER + 100) // playback progress updated#define WM_PN_PLAYSTARTED (WM_USER + 101) // playback has started#define WM_PN_PLAYSTOPPED (WM_USER + 102) // playback has stopped by user#define WM_PN_PLAYPAUSED (WM_USER + 103) // playback has been paused#define WM_PN_PLAYDONE (WM_USER + 104) // playback has finished (track completed)#define WM_PN_MEDIAEJECTED (WM_USER + 105) // a CD was ejected (lParam = (LPCSTR)medianame)#define WM_PN_MEDIAINSERTED (WM_USER + 106) // a CD was inserted (lParam = (LPCSTR)medianame)#define WM_PN_INFOCHANGED (WM_USER + 107) // track information was updated (lParam = (LPCSTR)medianame)#define WM_PN_TRACKCHANGED (WM_USER + 109) // current track playing has changed (relevant from CD plugin) (lParam = (LPCSTR)medianame)// Player to Plugin Notifiers#define WM_PN_PLAYLISTCHANGED (WM_USER + 200) // playlist has changed in some way (add, delete, sort, shuffle, drag-n-drop, etc...)// For intercepting main menu display// (so you can get handle, modify, and display your own)#define WM_SHOWMAINMENU (WM_USER + 20)//-----------------------------------------------------------------------------// To shutdown player, send this command#define WM_SHUTDOWN (WM_USER + 5)//-----------------------------------------------------------------------------// opSetStatusMessage textflags#define TEXT_DEFAULT 0x0 // message scrolls by in status window#define TEXT_TOOLTIP 0x1 // message acts as tooltip in status window#define TEXT_URGENT 0x2 // forces message to appear even if no status window (using msg box)#define TEXT_HOLD 0x4 // tooltip message stays up (no fade out)#endif //QCDMODDEFS_H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -