📄 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 2048
typedef 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 + -