Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Translated by Vitaliy Diatlov
- // AIMP2: SDK (02.07.2009), v2.60
- #ifndef AIMP2_SDK_H
- #define AIMP2_SDK_H
- #include <windows.h>
- #include <unknwn.h>
- const char AIMP2_RemoteClass[] = "AIMP2_RemoteInfo";
- const int AIMP2_RemoteFileSize = 2048;
- const int WM_AIMP_COMMAND = WM_USER + 0x75; // WParam = One of Command, LPARAM - Parameter
- const int WM_AIMP_STATUS_GET = 1;
- const int WM_AIMP_STATUS_SET = 2;//HiWord of LParam - Command, LoWord of LParam - Parameter
- const int WM_AIMP_CALLFUNC = 3;// LPARAM - Func ID (see below Func ID for Addons)
- const int WM_AIMP_GET_VERSION = 4;
- const int WM_AIMP_STATUS_CHANGE = 5;
- const int WM_LANG = WM_USER + 101;
- // CallBack types
- const int AIMP_STATUS_CHANGE = 1;
- const int AIMP_PLAY_FILE = 2;
- const int AIMP_INFO_UPDATE = 5; // Update Info for current track
- const int AIMP_PLAYER_STATE = 11; // Play/Pause/Stop
- const int AIMP_EFFECT_CHANGED = 12; // Balance, Speed, Tempo, Pitch, Flanger and etc.
- const int AIMP_EQ_CHANGED = 13; // Sliders changed
- const int AIMP_TRACK_POS_CHANGED = 14;
- // AIMP_Status_Set / AIMP_Status_Get
- const int AIMP_STS_VOLUME = 1;
- const int AIMP_STS_BALANCE = 2;
- const int AIMP_STS_SPEED = 3;
- const int AIMP_STS_Player = 4;
- const int AIMP_STS_MUTE = 5;
- const int AIMP_STS_REVERB = 6;
- const int AIMP_STS_ECHO = 7;
- const int AIMP_STS_CHORUS = 8;
- const int AIMP_STS_Flanger = 9;
- const int AIMP_STS_EQ_STS = 10;
- const int AIMP_STS_EQ_SLDR01 = 11;
- const int AIMP_STS_EQ_SLDR02 = 12;
- const int AIMP_STS_EQ_SLDR03 = 13;
- const int AIMP_STS_EQ_SLDR04 = 14;
- const int AIMP_STS_EQ_SLDR05 = 15;
- const int AIMP_STS_EQ_SLDR06 = 16;
- const int AIMP_STS_EQ_SLDR07 = 17;
- const int AIMP_STS_EQ_SLDR08 = 18;
- const int AIMP_STS_EQ_SLDR09 = 19;
- const int AIMP_STS_EQ_SLDR10 = 20;
- const int AIMP_STS_EQ_SLDR11 = 21;
- const int AIMP_STS_EQ_SLDR12 = 22;
- const int AIMP_STS_EQ_SLDR13 = 23;
- const int AIMP_STS_EQ_SLDR14 = 24;
- const int AIMP_STS_EQ_SLDR15 = 25;
- const int AIMP_STS_EQ_SLDR16 = 26;
- const int AIMP_STS_EQ_SLDR17 = 27;
- const int AIMP_STS_EQ_SLDR18 = 28;
- const int AIMP_STS_REPEAT = 29;
- const int AIMP_STS_ON_STOP = 30;
- const int AIMP_STS_POS = 31;
- const int AIMP_STS_LENGTH = 32;
- const int AIMP_STS_REPEATPLS = 33;
- const int AIMP_STS_REP_PLS_1 = 34;
- const int AIMP_STS_KBPS = 35;
- const int AIMP_STS_KHZ = 36;
- const int AIMP_STS_MODE = 37;
- const int AIMP_STS_RADIO = 38;
- const int AIMP_STS_STREAM_TYPE = 39; // Music / CDA / Radio
- const int AIMP_STS_TIMER = 40; // Reverse / Normal
- const int AIMP_STS_SHUFFLE = 41;
- const int AIMP_STS_MAIN_HWND = 42;
- const int AIMP_STS_TC_HWND = 43;
- const int AIMP_STS_APP_HWND = 44;
- const int AIMP_STS_PL_HWND = 45;
- const int AIMP_STS_EQ_HWND = 46;
- const int AIMP_STS_TRAY = 47;
- // Support Exts Flags
- const int AIMP_PLS_EXTS = 1;
- const int AIMP_AUDIO_EXTS = 2;
- // Menu IDs
- const int AIMP_MAIN_MENU_OPN = 0;
- const int AIMP_MAIN_MENU_UTILS = 1;
- const int AIMP_MAIN_MENU_FNC = 2;
- const int AIMP_MAIN_MENU_CFG = 3;
- const int AIMP_UTILS_MENU = 4;
- const int AIMP_PLS_MENU_ADD = 5;
- const int AIMP_PLS_MENU_JUMP = 6;
- const int AIMP_PLS_MENU_FNC = 7;
- const int AIMP_PLS_MENU_SEND = 8;
- const int AIMP_PLS_MENU_DEL = 9;
- const int AIMP_ADD_MENU = 10;
- const int AIMP_DEL_MENU = 11;
- const int AIMP_FND_MENU = 12;
- const int AIMP_SRT_MENU = 13;
- const int AIMP_MSC_MENU = 14;
- const int AIMP_PLS_MENU = 15;
- const int AIMP_TRAY_UTILS = 16;
- const int AIMP_TRAY = 17;
- const int AIMP_EQ_LIB = 18;
- // use AIMP_UTILS_MENU overthis:
- // + AIMP_MAIN_MENU_UTILS = 1;
- // + AIMP_TRAY_UTILS = 16;
- // AIMP_CallFunction
- const int AIMP_OPEN_FILES = 0;
- const int AIMP_OPEN_DIR = 1;
- const int AIMP_ABOUT = 2;
- const int AIMP_SLEEP_TIMER = 3;
- const int AIMP_UTILS_AC = 4;
- const int AIMP_UTILS_SR = 5;
- const int AIMP_UTILS_TE = 6;
- const int AIMP_UTILS_CDB = 7;
- const int AIMP_OPTIONS = 8;
- const int AIMP_PLUGINS = 9;
- const int AIMP_QUIT = 10;
- const int AIMP_NEXT_VIS = 11;
- const int AIMP_PREV_VIS = 12;
- const int AIMP_EQ_ANALOG = 13;
- const int AIMP_TO_TRAY = 14;
- const int AIMP_PLAY = 15;
- const int AIMP_PAUSE = 16;
- const int AIMP_STOP = 17;
- const int AIMP_NEXT = 18;
- const int AIMP_PREV = 19;
- const int AIMP_ADD_FILES = 20;
- const int AIMP_ADD_DIR = 21;
- const int AIMP_ADD_PLS = 22;
- const int AIMP_ADD_URL = 23;
- const int AIMP_DEL_FILES = 24;
- const int AIMP_DEL_BAD = 25;
- const int AIMP_DEL_FROMHDD = 26;
- const int AIMP_DEL_OFF = 27;
- const int AIMP_DEL_OFF_HDD = 28;
- const int AIMP_RESCAN_PLS = 29;
- const int AIMP_SHOW_CURFILE = 30;
- const int AIMP_SORT_INVERT = 31;
- const int AIMP_SORT_RANDOM = 32;
- const int AIMP_SORT_TITLE = 33;
- const int AIMP_SORT_ARTIST = 34;
- const int AIMP_SORT_FOLDER = 35;
- const int AIMP_SORT_LENGTH = 36;
- const int AIMP_SORT_RATING = 37;
- const int AIMP_SEARCH = 38;
- const int AIMP_OPEN_PLS = 39;
- const int AIMP_SAVE_PLS = 40;
- const int AIMP_PLAY_LAST = 41;
- const int AIMP_OFF_SELECTED = 42;
- const int AIMP_ON_SELECTED = 43;
- const int AIMP_ADD2BOOKMARK = 44;
- const int AIMP_EDITBOOKMARK = 45;
- // For AIMP_GetPath
- const int AIMP_CFG_DATA = 0;
- const int AIMP_CFG_PLS = 1;
- const int AIMP_CFG_LNG = 2;
- const int AIMP_CFG_SKINS = 3;
- const int AIMP_CFG_PLUGINS = 4;
- const int AIMP_CFG_ICONS = 5;
- const int AIMP_CFG_ML = 6;
- // For AIMP_QueryObject
- const int IAIMP2PlayerID = 0x0001;
- const int IAIMP2PlaylistManagerID = 0x0003;
- const int IAIMP2ExtendedID = 0x0004;
- const int IAIMP2CoverArtManagerID = 0x0005;
- const int IAIMP2PlaylistManager2ID = 0x0006;
- const int IAIMPConfigFileID = 0x0010;
- const int IAIMPLanguageFileID = 0x0011;
- // For AIMP_ObjectClass
- const int AIMP_EXT_LC_MESSAGE = 100;
- const int AIMP_EXT_ML_MESSAGE = 101;
- // Option Frame Position Flags
- const int AIMP_FRAME_POS_PLAY = 1;
- const int AIMP_FRAME_POS_PLAYLIST = 2;
- const int AIMP_FRAME_POS_PLAYER = 3;
- const int AIMP_FRAME_POS_TEMPLATE = 4;
- const int AIMP_FRAME_POS_SYSTEM = 5;
- const int AIMP_FRAME_POS_SKINS = 6;
- const int AIMP_FRAME_POS_LANGS = 7;
- // AIMP_PLS_SORT_TYPE_XXX
- const int AIMP_PLS_SORT_TYPE_TITLE = 1;
- const int AIMP_PLS_SORT_TYPE_FILENAME = 2;
- const int AIMP_PLS_SORT_TYPE_DURATION = 3;
- const int AIMP_PLS_SORT_TYPE_ARTIST = 4;
- const int AIMP_PLS_SORT_TYPE_INVERSE = 5;
- const int AIMP_PLS_SORT_TYPE_RANDOMIZE = 6;
- #pragma pack(push, 1)
- struct AIMP2FileInfo
- {
- DWORD cbSizeOf;
- //
- BOOL nActive;
- DWORD nBitRate;
- DWORD nChannels;
- DWORD nDuration;
- INT64 nFileSize;
- DWORD nRating;
- DWORD nSampleRate;
- DWORD nTrackID;
- //
- DWORD nAlbumLen;
- DWORD nArtistLen;
- DWORD nDateLen;
- DWORD nFileNameLen;
- DWORD nGenreLen;
- DWORD nTitleLen;
- //
- PWCHAR sAlbum;
- PWCHAR sArtist;
- PWCHAR sDate;
- PWCHAR sFileName;
- PWCHAR sGenre;
- PWCHAR sTitle;
- };
- #pragma pack(pop)
- typedef boolean (WINAPI *AIMPPlaylistDeleteProc)(AIMP2FileInfo AFileInfo, DWORD AUserData);
- typedef int (WINAPI *AIMPPlaylistSortProc)(AIMP2FileInfo AFileInfo1, AIMP2FileInfo AFileInfo2, DWORD AUserData);
- typedef void (WINAPI *AIMPMenuProc)(DWORD User, void *Handle);
- typedef void (WINAPI *AIMPStatusChange)(DWORD User, DWORD CallBackType);
- typedef void (WINAPI *CallBackFunc)(DWORD User, DWORD dwCBType);
- #pragma pack(push, 1)
- struct PLSInfo
- {
- PCHAR PLSName;
- DWORD FileCount;
- DWORD PLSDuration;
- INT64 PLSSize;
- int PlaylistID;
- };
- #pragma pack(pop)
- #pragma pack(push, 1)
- struct AIMPMenuInfo
- {
- boolean Checkbox;
- boolean RadioItem;
- boolean Checked;
- boolean Enabled;
- int ProcPtr; // TAIMPMenuProc;
- HBITMAP Bitmap; // 0 - no bmp
- PWCHAR Caption;
- DWORD User;
- };
- #pragma pack(pop)
- class IPLSStrings
- : public IUnknown
- {
- public:
- virtual boolean WINAPI AddFile(
- PWCHAR FileName,
- AIMP2FileInfo *FileInfo
- );
- virtual boolean WINAPI DelFile(
- int ID
- );
- virtual PWCHAR WINAPI GetFileName(
- int ID
- );
- virtual boolean WINAPI GetFileInfo(
- int ID,
- AIMP2FileInfo *FileInfo
- );
- virtual DWORD WINAPI GetFileObj(
- int ID
- );
- virtual int WINAPI GetCount();
- };
- class IAIMP2Controller
- :public IUnknown
- {
- public:
- virtual boolean WINAPI IsUnicodeVersion();
- virtual boolean WINAPI AIMP_CallBack_Set(
- DWORD dwCBType,
- CallBackFunc CallBackFuncPtr,
- DWORD User
- );
- virtual boolean WINAPI AIMP_CallBack_Remove(
- DWORD dwCBType,
- int ProcPtr
- );
- // Status
- virtual DWORD WINAPI AIMP_Status_Get(
- DWORD StatusType
- );
- virtual boolean WINAPI AIMP_Status_Set(
- DWORD StatusType,
- DWORD Value
- );
- // Playlist
- virtual boolean WINAPI AIMP_PLS_Clear(
- int ID
- );
- virtual boolean WINAPI AIMP_PLS_Delete(
- int ID
- );
- virtual boolean WINAPI AIMP_PLS_New(
- PWCHAR Name
- );
- virtual boolean WINAPI AIMP_PLS_Info(
- int Index,
- PLSInfo *info
- );
- virtual short WINAPI AIMP_PLS_Count();
- virtual boolean WINAPI AIMP_PLS_GetFiles(
- int ID,
- IPLSStrings **Strings
- );
- virtual boolean WINAPI AIMP_PLS_GetSelFiles(
- int ID,
- IPLSStrings **Strings
- );
- virtual boolean WINAPI AIMP_PLS_AddFiles(
- int ID,
- IPLSStrings *Strings
- );
- virtual boolean WINAPI AIMP_PLS_SetPLS(
- int ID
- );
- // System
- virtual boolean WINAPI AIMP_NewStrings(
- IPLSStrings **Strings
- );
- virtual boolean WINAPI AIMP_GetCurrentTrack(
- AIMP2FileInfo *AInfo
- );
- virtual boolean WINAPI AIMP_QueryInfo(
- PWCHAR Filename,
- AIMP2FileInfo *AInfo
- );
- virtual DWORD WINAPI AIMP_GetSystemVersion();
- virtual boolean WINAPI AIMP_CallFunction(
- DWORD FuncID
- );
- virtual int WINAPI AIMP_GetLanguage(
- PWCHAR Str,
- int ACount
- );
- virtual int WINAPI AIMP_GetCfgPath(
- PWCHAR Str,
- int ACount
- );
- virtual int WINAPI AIMP_GetSupportExts(
- DWORD Flags,
- PWCHAR Str,
- int BufSize
- );
- // Menu
- virtual DWORD WINAPI AIMP_GetSupportExts(
- DWORD Parent,
- AIMPMenuInfo *MenuInfo
- );
- virtual DWORD WINAPI AIMP_Menu_Create(
- DWORD MenuID,
- AIMPMenuInfo *MenuInfo
- );
- virtual boolean WINAPI AIMP_Menu_Update(
- int Handle,
- AIMPMenuInfo *MenuInfo
- );
- virtual boolean WINAPI AIMP_Menu_Remove(
- int Handle
- );
- // extention
- virtual boolean WINAPI AIMP_QueryObject(
- DWORD ObjectID,
- void *Obj
- );
- };
- class IAIMPAddonHeader
- :public IUnknown
- {
- public:
- virtual BOOL WINAPI GetHasSettingsDialog() = 0;
- virtual PWCHAR WINAPI GetPluginAuthor() = 0;
- virtual PWCHAR WINAPI GetPluginName() = 0;
- virtual void WINAPI Finalize() = 0;
- virtual void WINAPI Initialize(IAIMP2Controller *AController) = 0;
- virtual void WINAPI ShowSettingsDialog(HWND AParentWindow) = 0;
- };
- typedef IAIMPAddonHeader *(WINAPI *AddonProc)();
- typedef BOOL (WINAPI *AIMPAddonHeaderProc)(IAIMPAddonHeader *AHeader);
- // Export function name: AIMP_QueryAddonEx
- //==============================================================================
- // Old Style Addon struct - don't use for new plugins
- //==============================================================================
- typedef PCHAR (WINAPI *GetPlgNameFunc)();
- typedef PCHAR (WINAPI *GetAutorFunc)();
- typedef void (WINAPI *InitFunc)(IAIMP2Controller *AIMP);
- typedef void (WINAPI *ConfigFunc)(DWORD Handle, DWORD Win);
- typedef void (WINAPI *FreeFunc)();
- #pragma pack(push, 1)
- struct AIMPAddonHeader
- {
- DWORD version;
- DWORD DllInstance;
- GetPlgNameFunc PlgNameFuncPtr;
- GetAutorFunc AutorFuncPtr;
- InitFunc InitFuncPtr;
- ConfigFunc ConfigFuncPtr;
- FreeFunc FreeFuncPtr;
- };
- #pragma pack(pop)
- //==============================================================================
- class IAIMP2OptionFrame
- :public IUnknown
- {
- public:
- virtual HWND WINAPI FrameCreate(
- HWND AParent
- );
- virtual void *WINAPI FrameData(
- ); // reserved
- virtual int WINAPI FrameFlags(
- ); // See FramePositionFlags
- virtual PWCHAR WINAPI FrameName(
- );
- virtual HWND WINAPI FrameFree(
- HWND AWindow
- );
- virtual void WINAPI FrameLoadConfigNotify(
- );
- virtual void WINAPI FrameSaveConfigNotify(
- );
- };
- class IAIMP2Player
- : public IUnknown
- {
- public:
- virtual int WINAPI Version();
- virtual boolean WINAPI PlayTrack(
- int ID,
- int ATrackIndex
- );
- virtual void WINAPI PlayOrResume();
- virtual void WINAPI Pause();
- virtual void WINAPI Stop();
- virtual void WINAPI NextTrack();
- virtual void WINAPI PrevTrack();
- };
- class IAIMP2PlaylistManager
- : public IUnknown
- {
- public:
- virtual int WINAPI AIMP_PLS_CreateFromFile(
- PWCHAR AFile,
- boolean AActivate,
- boolean AStartPlay
- );
- virtual int WINAPI AIMP_PLS_ID_ActiveGet();
- virtual boolean WINAPI AIMP_PLS_ID_ActiveSet(
- int ID
- );
- virtual int WINAPI AIMP_PLS_ID_PlayingGet();
- virtual int WINAPI AIMP_PLS_ID_PlayingGetTrackIndex(
- int ID
- );
- virtual int WINAPI AIMP_PLS_NewEx(
- PWCHAR AName,
- boolean AActivate
- );
- virtual boolean WINAPI AIMP_PLS_PlayFile(
- PWCHAR AFileName,
- boolean AFailIfNotExists
- );
- // Playlist Processing
- virtual boolean WINAPI AIMP_PLS_DeleteByFilter(
- int ID,
- DWORD AFilterProc,
- DWORD AUserData
- );
- virtual boolean WINAPI AIMP_PLS_SortByFilter(
- int ID,
- DWORD AFilterProc,
- DWORD AUserData
- );
- // Entries
- virtual boolean WINAPI AIMP_PLS_Entry_Delete(
- int ID,
- int AEntryIndex
- );
- virtual boolean WINAPI AIMP_PLS_Entry_DeleteAll(
- int ID
- );
- virtual boolean WINAPI AIMP_PLS_Entry_FileNameGet(
- int ID,
- int AEntryIndex,
- PWCHAR PBuf,
- DWORD ABufLen
- );
- virtual boolean WINAPI AIMP_PLS_Entry_FileNameSet(
- int ID,
- int AEntryIndex,
- PWCHAR PBuf
- );
- virtual int WINAPI AIMP_PLS_Entry_FocusedGet(
- int ID
- );
- virtual boolean WINAPI AIMP_PLS_Entry_FocusedSet(
- int ID,
- int AEntryIndex
- );
- virtual boolean WINAPI AIMP_PLS_Entry_InfoGet(
- int ID,
- int AEntryIndex,
- AIMP2FileInfo *PFileInfo
- );
- virtual boolean WINAPI AIMP_PLS_Entry_InfoSet(
- int ID,
- int AEntryIndex,
- AIMP2FileInfo *PFileInfo
- );
- virtual boolean WINAPI AIMP_PLS_Entry_PlayingSwitchGet(
- int ID,
- int AEntryIndex
- );
- virtual boolean WINAPI AIMP_PLS_Entry_PlayingSwitchSet(
- int ID,
- int AEntryIndex,
- boolean ASwitch
- );
- virtual boolean WINAPI AIMP_PLS_Entry_ReloadInfo(
- int ID,
- int AEntryIndex
- );
- // Load/Save Playlists
- virtual boolean WINAPI AIMP_PM_DestroyStream(
- DWORD AHandle
- );
- virtual DWORD WINAPI AIMP_PM_ReadItem(
- DWORD AHandle,
- AIMP2FileInfo *PItem
- );
- virtual DWORD WINAPI AIMP_PM_ReadStream(
- PWCHAR AFileName,
- int *Count
- );
- virtual DWORD WINAPI AIMP_PM_SaveStream(
- PWCHAR AFileName
- );
- virtual DWORD WINAPI AIMP_PM_WriteItem(
- DWORD AHandle,
- AIMP2FileInfo *PItem
- );
- // added in 2.50 B295
- virtual boolean WINAPI AIMP_PLS_ID_PlayingSetTrackIndex(
- int ID,
- int AEntryIndex
- );
- };
- class IAIMP2PlaylistManager2
- : public IAIMP2PlaylistManager
- {
- public:
- // Count of loaded playlists
- virtual unsigned short WINAPI AIMP_PLS_Count();
- // Return = -1 - ID is not valid, otherthis - count of files in playlist
- virtual int WINAPI AIMP_PLS_GetFilesCount(int ID);
- virtual HRESULT WINAPI AIMP_PLS_GetInfo(int ID, INT64 *ADuration, INT64 *ASize);
- virtual HRESULT WINAPI AIMP_PLS_GetName(int ID, PWCHAR ABuffer, int ABufferSizeInChars);
- // Custom Sorting, see AIMP_PLS_SORT_TYPE_XXX
- virtual HRESULT WINAPI AIMP_PLS_Sort(int ID, int ASortType);
- virtual HRESULT WINAPI AIMP_PLS_SortByTemplate(int ID, PWCHAR ABuffer, int ABufferSizeInChars);
- // if Index = -1 returned ID of current playlist.
- virtual HRESULT WINAPI AIMP_PLS_ID_By_Index(int Index, int *ID);
- // Get Formated title for Entry
- virtual HRESULT WINAPI AIMP_PLS_Entry_GetTitle(int ID, int AEntryIndex,
- PWCHAR ABuffer, int ABufferSizeInChars);
- // Set Entry to playback queue
- virtual HRESULT WINAPI AIMP_PLS_Entry_QueueRemove(int ID, int AEntryIndex);
- virtual HRESULT WINAPI AIMP_PLS_Entry_QueueSet(int ID, int AEntryIndex, BOOL AInsertAtQueueBegining);
- // Moving Entry
- virtual HRESULT WINAPI AIMP_PLS_Entry_SetPosition(int ID, int AEntryIndex, int ANewEntryIndex);
- };
- // See IAIMP2ExtendedID
- class IAIMP2Extended
- :public IUnknown
- {
- public:
- virtual int WINAPI AIMP_GetPath(
- int ID,
- PWCHAR buffer,
- int bufSize
- );
- virtual boolean WINAPI AIMP_ObjectClass(
- int ID,
- void *AData,
- boolean ARegister
- );
- // User Option Dialogs
- virtual DWORD WINAPI AIMP_Options_FrameAdd(
- IAIMP2OptionFrame *AFrame
- );
- virtual DWORD WINAPI AIMP_Options_FrameRemove(
- IAIMP2OptionFrame *AFrame
- );
- virtual DWORD WINAPI AIMP_Options_ModifiedChanged(
- IAIMP2OptionFrame *AFrame
- );
- };
- class IAIMP2CoverArtManager
- :public IUnknown
- {
- public:
- // Return picture will be proportional stretched to ADisplaySize value
- virtual HBITMAP WINAPI GetCoverArtForFile(PWCHAR AFile, const SIZE *ADisplaySize);
- // Draw CoverArt of playing file, Return - cover art drawing successfuly
- // CoverArt will be proportional stretched to R value
- virtual HRESULT WINAPI CurrentCoverArtDraw(HDC DC, const RECT *R);
- // Return <> S_OK, CoverArt is empty or file are not playing
- virtual HRESULT WINAPI CurrentCoverArtGetSize(SIZE *ASize);
- // W, H - destination display sizes, function will correct sizes for proportional drawing
- // Return <> S_OK, CoverArt is empty or file are not playing
- virtual HRESULT WINAPI CurrentCoverArtCorrectSizes(int *W, int *H);
- };
- // See IAIMPLanguageFileID
- class IAIMPLanguageFile
- :public IUnknown
- {
- public:
- virtual int AIMP_Lang_Version();
- virtual int AIMP_Lang_CurrentFile(PWCHAR ABuffer, int ABufferSizeInChars);
- virtual HRESULT AIMP_Lang_IsSectionExists(PWCHAR ASectionName, int ASectionNameSizeInChars);
- virtual HRESULT AIMP_Lang_ReadString(PWCHAR ASectionName, PWCHAR AItemName, PWCHAR AValueBuffer,
- int ASectionNameSizeInChars, int AItemNameSizeInChars, int AValueBufferSizeInChars);
- // When Language changed AIMP will send to window handle "WM_LANG" message
- virtual HRESULT AIMP_Lang_Notification(HWND AWndHandle, BOOL ARegister);
- };
- // See IAIMPConfigFileID
- class IAIMPConfigFile
- :public IUnknown
- {
- // functions return null value, if value don't exists in configuration file
- virtual HRESULT AIMP_Config_ReadString(PWCHAR ASectionName, PWCHAR AItemName, PWCHAR AValueBuffer,
- int ASectionNameSizeInChars, int AItemNameSizeInChars, int AValueBufferSizeInChars);
- virtual HRESULT AIMP_Config_ReadInteger(PWCHAR ASectionName, PWCHAR AItemName,
- int ASectionNameSizeInChars, int AItemNameSizeInChars, int * AValue);
- //
- virtual HRESULT AIMP_Config_WriteString(PWCHAR ASectionName, PWCHAR AItemName, PWCHAR AValueBuffer,
- int ASectionNameSizeInChars, int AItemNameSizeInChars, int AValueBufferSizeInChars);
- virtual HRESULT AIMP_Config_WriteInteger(PWCHAR ASectionName, PWCHAR AItemName,
- int ASectionNameSizeInChars, int AItemNameSizeInChars, int AValue);
- //
- virtual HRESULT AIMP_Config_IsSectionExists(PWCHAR ASectionName, int ASectionNameSizeInChars);
- virtual HRESULT AIMP_Config_RemoveSection(PWCHAR ASectionName, int ASectionNameSizeInChars);
- };
- //==============================================================================
- // V I S U A L S
- //==============================================================================
- const int VIS_RQD_DATA_WAVE = 1;
- const int VIS_RQD_DATA_SPECTRUM = 2;
- const int VIS_RQD_NOT_SUSPEND = 4;
- typedef short WaveForm[2][512];
- typedef short Spectrum[2][256];
- struct AIMPVisualData
- {
- int LevelR;
- int LevelL;
- Spectrum spectrum;
- WaveForm waveForm;
- };
- typedef AIMPVisualData *PAIMPVisualData;
- class IAIMP2VisualPlugin
- :public IUnknown
- {
- public:
- virtual PWCHAR WINAPI AuthorName();
- virtual PWCHAR WINAPI PluginName();
- virtual PWCHAR WINAPI PluginInfo();
- virtual DWORD WINAPI PluginFlags();
- virtual BOOL WINAPI Initialize();
- virtual void WINAPI Deinitialize();
- virtual void WINAPI DisplayClick(int X, int Y);
- virtual void WINAPI DisplayRender(HDC DC, PAIMPVisualData AData);
- virtual void WINAPI DisplayResize(int AWidth, int AHeight);
- };
- // Export function name: AIMP_QueryVisual
- typedef IAIMP2VisualPlugin *(WINAPI *AIMPVisualProc)();
- #endif
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement