rainmeter-studio/Plugins/PluginNowPlaying/SDKs/CAD/cad_sdk.h
Birunthan Mohanathas c451aba194 NowPlayingPlugin:
- Added PlayerType=STATUS (returns 1 when player is open, 0 when closed)
- Winamp interface: Fixed that file paths over about 100 chars did not display all metadata
- CAD interface: Added workaround for issue caused by Rainmeter running as elevated and player running as normal process (Windows Vista+)
2011-06-25 12:44:33 +00:00

143 lines
4.5 KiB
C

#ifndef __CADSDK_H__
#define __CADSDK_H__
enum IPCMESSAGE
{
/*
Most of these messages are sent to the player. Messages that the player
should send back to CAD are noted by '[Sent by player]'
Based on information available in cad-sdk-2.1.pdf and in foo_cdartdisplay source.
*/
// uMsg: WM_USER, wParam: 0, lParam: 100
IPC_PLAY = 100,
// uMsg: WM_USER, wParam: 0, lParam: 101
IPC_PLAYPAUSE,
// uMsg: WM_USER, wParam: 0, lParam: 102
IPC_FORCEPAUSE,
// uMsg: WM_USER, wParam: 0, lParam: 103
IPC_STOP,
// uMsg: WM_USER, wParam: 0, lParam: 104
IPC_NEXT,
// uMsg: WM_USER, wParam: 0, lParam: 105
IPC_PREVIOUS,
// uMsg: WM_USER, wParam: volume (0 - 100), lParam: 108
IPC_SET_VOLUME = 108,
// uMsg: WM_USER, wParam: 0, lParam: 109, result: 0 to 100
IPC_GET_VOLUME,
// uMsg: WM_USER, wParam: 0, lParam: 110
// When the player recieves this message, it should send
// the IPC_CURRENT_TRACK message back to CAD
IPC_GET_CURRENT_TRACK,
// uMsg: WM_USER, wParam: 0, lParam: 113
IPC_GET_DURATION = 113,
// uMsg: WM_USER, wParam: position (seconds), lParam: 114
IPC_SET_POSITION,
// uMsg: WM_USER, wParam: 0, lParam: 115, result: 1 if playing
IPC_IS_PLAYING,
// uMsg: WM_USER, wParam: 0, lParam: 116, result: 1 if paused
IPC_IS_PAUSED,
// uMsg: WM_USER, wParam: 0, lParam: 117
IPC_GET_LIST_LENGTH,
// uMsg: WM_USER, wParam: position, lParam: 118
IPC_SET_LIST_POS,
// uMsg: WM_USER, wParam: 0, lParam: 119
IPC_GET_LIST_ITEM,
// uMsg: WM_USER, wParam: hwnd, lParam: 120
// CAD sends this mesage to the player on startup. The player
// should then send all future WM_COPYDATA messages to this window.
IPC_SET_CALLBACK_HWND,
// uMsg: WM_USER, wParam: 0, lParam: 121
IPC_GET_LIST_POS,
// uMsg: WM_USER, wParam: 0, lParam: 122, result: position (in seconds)
IPC_GET_POSITION,
// uMsg: WM_USER, wParam: 0, lParam: 123 [Sent by player]
// The player should send this message when the track changes.
IPC_TRACK_CHANGED_NOTIFICATION,
// uMsg: WM_USER, wParam: 0, lParam: 124
IPC_SHOW_PLAYER_WINDOW,
// uMsg: WM_USER, wParam: 0, lParam: 125, result: 0 (stopped), 1 (playing), or 2 (paused)
IPC_GET_PLAYER_STATE,
// uMsg: WM_USER, wParam: 0, lParam: 126 [Sent by player]
// The player should send this notification when the play state changes.
IPC_PLAYER_STATE_CHANGED_NOTIFICATION,
// uMsg: WM_USER, wParam: 0, lParam: 127 [Not implemented in CAD yet]
IPC_AUTOENQUEUE_OPTIONS,
// uMsg: WM_USER, wParam: 0 or 1, lParam: 128
IPC_SET_REPEAT,
// uMsg: WM_USER, wParam: 0 or 1, lParam: 129 [Sent by/to player]
// The player should send this message when it quits.
// CAD will also send this message on exit. Upon receival, the player should
// disconnect the communication interface and get ready for a IPC_SET_CALLBACK_HWND message.
IPC_SHUTDOWN_NOTIFICATION,
// uMsg: WM_USER, wParam: 0, lParam: 130, result: 1 if shuffle is active
IPC_GET_REPEAT,
// uMsg: WM_USER, wParam: 0, lParam: 131
// The player should quit completely upon receival.
IPC_CLOSE_PLAYER,
// uMsg: WM_USER, wParam: 0, lParam: 140, result: 1 if shuffle is active
IPC_GET_SHUFFLE = 140,
// uMsg: WM_USER, wParam: 0 or 1, lParam: 141
IPC_SET_SHUFFLE,
// uMsg: WM_USER, wParam: rating (0 - 10), lParam: 141 [Sent by/to player]
// CAD sends this message to the player with the new rating (0 - 10). The
// player sends this message when the rating changes.
IPC_RATING_CHANGED_NOTIFICATION = 639,
// uMsg: WM_COPYDATA, wParam: 700, lParam: COPYDATASTRUCT [Sent by player]
// The player sends this message on start up. Refer to the SDK manual for detailed info.
IPC_REGISTER_PLAYER = 700, // Sent by player to CAD on startup.
// uMsg: WM_COPYDATA, wParam: 701, lParam: COPYDATASTRUCT [Sent by player]
// The player sends this when it receives the IPC_GET_CURRENT_TRACK message.
IPC_CURRENT_TRACK_INFO,
// uMsg: WM_COPYDATA, wParam: 702, lParam: COPYDATASTRUCT [Sent by player]
// The player sends this when it receives the IPC_GET_CURRENT_LYRICS message.
IPC_CURRENT_LYRICS,
// uMsg: WM_COPYDATA, wParam: 703, lParam: COPYDATASTRUCT [Sent by player]
// The player sends this when, for example, new lyrics have been retrieved.
IPC_NEW_LYRICS,
// uMsg: WM_COPYDATA, wParam: 800, lParam: COPYDATASTRUCT [Sent by player]
// The player sends this when a new cover is available for playing track.
IPC_NEW_COVER = 800,
// uMsg: WM_USER, wParam: 0, lParam: 801
IPC_GET_CURRENT_LYRICS,
};
#endif