From 864081102a5f252415f41950b3039a896b4ae9c5 Mon Sep 17 00:00:00 2001 From: Vadim Dashevskiy Date: Mon, 8 Oct 2012 18:43:29 +0000 Subject: Awkwars's plugins - welcome to our trunk git-svn-id: http://svn.miranda-ng.org/main/trunk@1822 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- plugins/Watrack/docs/const.php | 157 ++++++++++ plugins/Watrack/docs/m_music.h | 386 +++++++++++++++++++++++ plugins/Watrack/docs/m_music.inc | 404 ++++++++++++++++++++++++ plugins/Watrack/docs/sampledll.dpr | 139 +++++++++ plugins/Watrack/docs/wat.php | 28 ++ plugins/Watrack/docs/watrack_history.txt | 519 +++++++++++++++++++++++++++++++ plugins/Watrack/docs/watrack_readme.txt | 110 +++++++ 7 files changed, 1743 insertions(+) create mode 100644 plugins/Watrack/docs/const.php create mode 100644 plugins/Watrack/docs/m_music.h create mode 100644 plugins/Watrack/docs/m_music.inc create mode 100644 plugins/Watrack/docs/sampledll.dpr create mode 100644 plugins/Watrack/docs/wat.php create mode 100644 plugins/Watrack/docs/watrack_history.txt create mode 100644 plugins/Watrack/docs/watrack_readme.txt (limited to 'plugins/Watrack/docs') diff --git a/plugins/Watrack/docs/const.php b/plugins/Watrack/docs/const.php new file mode 100644 index 0000000000..f34156280e --- /dev/null +++ b/plugins/Watrack/docs/const.php @@ -0,0 +1,157 @@ + diff --git a/plugins/Watrack/docs/m_music.h b/plugins/Watrack/docs/m_music.h new file mode 100644 index 0000000000..0246fabe34 --- /dev/null +++ b/plugins/Watrack/docs/m_music.h @@ -0,0 +1,386 @@ +#ifndef M_MUSIC +#define M_MUSIC + +#define MIID_WATRACK {0xfc6c81f4, 0x837e, 0x4430, {0x96, 0x01, 0xa0, 0xaa, 0x43, 0x17, 0x7a, 0xe3}} + +typedef struct tSongInfoA { + CHAR* artist; + CHAR* title; + CHAR* album; + CHAR* genre; + CHAR* comment; + CHAR* year; + CHAR* mfile; // media file + DWORD kbps; + DWORD khz; + DWORD channels; + DWORD track; + DWORD total; // music length + DWORD time; // elapsed time + CHAR* wndtext; // window title + CHAR* player; // player name + DWORD plyver; // player version + HANDLE icon; // player icon + DWORD fsize; // media file size + DWORD vbr; + int status; // WAT_MES_* const + HWND plwnd; // player window + // video part + DWORD codec; + DWORD width; + DWORD height; + DWORD fps; + __int64 date; + CHAR* txtver; + CHAR* lyric; + CHAR* cover; + DWORD volume; + CHAR* url; // player homepage +} SONGINFOA, *LPSONGINFOA; + +typedef struct tSongInfo { + WCHAR* artist; + WCHAR* title; + WCHAR* album; + WCHAR* genre; + WCHAR* comment; + WCHAR* year; + WCHAR* mfile; // media file + DWORD kbps; + DWORD khz; + DWORD channels; + DWORD track; + DWORD total; // music length + DWORD time; // elapsed time + WCHAR* wndtext; // window title + WCHAR* player; // player name + DWORD* plyver; // player version + HANDLE icon; // player icon + DWORD fsize; // media file size + DWORD vbr; + int status; // WAT_MES_* const + HWND plwnd; // player window + // video part + DWORD codec; + DWORD width; + DWORD height; + DWORD fps; + __int64 date; + WCHAR* txtver; + WCHAR* lyric; + WCHAR* cover; // cover path + DWORD volume; + WCHAR* url; // player homepage +} SONGINFO, *LPSONGINFO; + +#if defined(_UNICODE) + #define WAT_INF_TCHAR WAT_INF_UNICODE + #define SongInfoT tSongInfo +#else + #define WAT_INF_TCHAR WAT_INF_ANSI + #define SongInfoT tSongInfoA +#endif + + // result codes +#define WAT_RES_UNKNOWN -2 +#define WAT_RES_NOTFOUND -1 +#define WAT_RES_ERROR WAT_RES_NOTFOUND +#define WAT_RES_OK 0 +#define WAT_RES_ENABLED WAT_RES_OK +#define WAT_RES_DISABLED 1 + // internal +#define WAT_RES_NEWFILE 3 +#define WAT_RES_NEWPLAYER 4 + +// result for MS_WAT_GETMUSICINFO service +#define WAT_PLS_NORMAL WAT_RES_OK +#define WAT_PLS_NOMUSIC WAT_RES_DISABLED +#define WAT_PLS_NOTFOUND WAT_RES_NOTFOUND + +#define WAT_INF_UNICODE 0 +#define WAT_INF_ANSI 1 +#define WAT_INF_UTF8 2 +#define WAT_INF_CHANGES 0x100 + +/* + wParam : WAT_INF_* constant + lParam : pointer to LPSONGINGO (Unicode) or LPSONGINFOA (ANSI/UTF8) + Affects: Fill structure by currently played music info + returns: WAT_PLS_* constant + note: pointer will be point to global SONGINFO structure of plugin + warning: Non-Unicode data filled only by request + if lParam=0 only internal SongInfo structure will be filled + Example: + LPSONGINFO p; + PluginLink->CallService(MS_WAT_GETMUSICINFO,0,(DWORD)&p); +*/ +#define MS_WAT_GETMUSICINFO "WATrack/GetMusicInfo" + +/* + wParam:0 + lParam : pointer to pSongInfo (Unicode) + Affects: Fill structure by info from file named in SongInfo.mfile + returns: 0, if success + note: fields, which values can't be obtained, leaves old values. + you must free given strings by miranda mmi.free +*/ +#define MS_WAT_GETFILEINFO "WATrack/GetFileInfo" + +/* + wParam: encoding (WAT_INF_* consts, 0 = WAT_INF_UNICODE) + lParam: codepage (0 = ANSI) + Returns Global unicode SongInfo pointer or tranlated to Ansi/UTF8 structure +*/ +#define MS_WAT_RETURNGLOBAL "WATrack/GetMainStructure" + +//!! DON'T CHANGE THESE VALUES! +#define WAT_CTRL_FIRST 1 + +#define WAT_CTRL_PREV 1 +#define WAT_CTRL_PLAY 2 +#define WAT_CTRL_PAUSE 3 +#define WAT_CTRL_STOP 4 +#define WAT_CTRL_NEXT 5 +#define WAT_CTRL_VOLDN 6 +#define WAT_CTRL_VOLUP 7 +#define WAT_CTRL_SEEK 8 // lParam is new position (sec) + +#define WAT_CTRL_LAST 8 + +/* + wParam: button code (WAT_CTRL_* const) + lParam: 0, or value (see WAT_CTRL_* const comments) + Affects: emulate player button pressing + returns: 0 if unsuccesful +*/ +#define MS_WAT_PRESSBUTTON "WATrack/PressButton" + +/* + Get user's Music Info +*/ +#define MS_WAT_GETCONTACTINFO "WATrack/GetContactInfo" + +// ------------ Plugin/player status ------------ + +/* + wParam: 1 - switch off plugin + 0 - switch on plugin + -1 - switch plugin status + 2 - get plugin version + other - get plugin status + lParam: 0 + Affects: Switch plugin status to enabled or disabled + returns: old plugin status, 0, if was enabled +*/ +#define MS_WAT_PLUGINSTATUS "WATrack/PluginStatus" + +// ---------- events ------------ + +/*ME_WAT_MODULELOADED + wParam: 0, lParam: 0 +*/ +#define ME_WAT_MODULELOADED "WATrack/ModuleLoaded" + +#define WAT_EVENT_PLAYERSTATUS 1 //lParam: WAT_PLS_* const +#define WAT_EVENT_NEWTRACK 2 //lParam: LPSONGINFO +#define WAT_EVENT_PLUGINSTATUS 3 //lParam: 0-enabled; 1-dis.temporary; 2-dis.permanent +#define WAT_EVENT_NEWPLAYER 4 // +#define WAT_EVENT_NEWTEMPLATE 5 //lParam: TM_* constant + +/*ME_WAT_NEWSTATUS + Plugin or player status changed: + wParam: type of event (see above) + lParam: value +*/ +#define ME_WAT_NEWSTATUS "WATrack/NewStatus" + +// ---------- Popup module ------------ + +/* + wParam: not used + lParam: not used + Affects: Show popup or Info window with current music information + note: Only Info window will be showed if Popup plugin disabled +*/ +#define MS_WAT_SHOWMUSICINFO "WATrack/ShowMusicInfo" + +// --------- Statistic (report) module ------------- + +/* + wParam: pointer to log file name or NULL + lParam: pointer to report file name or NULL + Affects: Create report from log and run it (if option is set) + returns: 0 if unsuccesful + note: if wParam or lParam is a NULL then file names from options are used +*/ +#define MS_WAT_MAKEREPORT "WATrack/MakeReport" + +/* + wParam, lParam - not used + Affects: pack statistic file +*/ +#define MS_WAT_PACKLOG = "WATrack/PackLog" + +/* + wParam: not used + lParam: pointer to SongInfo +*/ +#define MS_WAT_ADDTOLOG = "WATrack/AddToLog" + +// ----------- Formats and players ----------- + +// media file status + +#define WAT_MES_STOPPED 0 +#define WAT_MES_PLAYING 1 +#define WAT_MES_PAUSED 2 +#define WAT_MES_UNKNOWN -1 + +#define WAT_ACT_REGISTER 1 +#define WAT_ACT_UNREGISTER 2 +#define WAT_ACT_DISABLE 3 +#define WAT_ACT_ENABLE 4 +#define WAT_ACT_GETSTATUS 5 // not found/enabled/disabled +#define WAT_ACT_SETACTIVE 6 +#define WAT_ACT_REPLACE 0x10000 // can be combined with WAT_REGISTERFORMAT + + // flags +#define WAT_OPT_DISABLED 0x00001 // format registered but disabled +#define WAT_OPT_ONLYONE 0x00002 // format can't be overwriten +#define WAT_OPT_PLAYERINFO 0x00004 // song info from player +#define WAT_OPT_WINAMPAPI 0x00008 // Winamp API support +#define WAT_OPT_CHECKTIME 0x00010 // check file time for changes +#define WAT_OPT_VIDEO 0x00020 // only for format registering used +#define WAT_OPT_LAST 0x00040 // (internal) +#define WAT_OPT_FIRST 0x00080 // (internal) +#define WAT_OPT_TEMPLATE 0x00100 // (internal) +#define WAT_OPT_IMPLANTANT 0x00200 // use process implantation +#define WAT_OPT_HASURL 0x00400 // (player registration) URL field present +#define WAT_OPT_CHANGES 0x00800 // obtain only chaged values + // (volume, status, window text, elapsed time) +#define WAT_OPT_APPCOMMAND 0x01000 // Special (multimedia) key support +#define WAT_OPT_CHECKALL 0x02000 // Check all players +#define WAT_OPT_KEEPOLD 0x04000 // Keep Old opened file +#define WAT_OPT_MULTITHREAD 0x08000 // Use multithread scan +#define WAT_OPT_SINGLEINST 0x10000 // Single player instance +#define WAT_OPT_PLAYERDATA 0x20000 // (internal) to obtain player data + + +typedef BOOL (__cdecl *LPREADFORMATPROC)(LPSONGINFO Info); + +typedef struct tMusicFormat { + LPREADFORMATPROC proc; + CHAR ext[8]; + UINT flags; +} MUSICFORMAT, *LPMUSICFORMAT; + +/* + wParam: action + lParam: pointer to MUSICFORMAT if wParam = WAT_ACT_REGISTER, + else - pointer to extension string (ANSI) + returns: see result codes +*/ +#define MS_WAT_FORMAT "WATrack/Format" + +/* + wParam - pointer to SONGINFO structure (plwind field must be initialized) + lParam - flags + Affects: trying to fill SongInfo using Winamp API +*/ +#define MS_WAT_WINAMPINFO "WATrack/WinampInfo" + +/* + wParam: window + lParam: LoWord - command; HiWord - value +*/ +#define MS_WAT_WINAMPCOMMAND "WATrack/WinampCommand" + +typedef int (__cdecl *LPINITPROC) (); +typedef int (__cdecl *LPDEINITPROC) (); +typedef int (__cdecl *LPSTATUSPROC) (HWND wnd); +typedef WCHAR (__cdecl *LPNAMEPROC) (HWND wnd, int flags); +typedef HWND (__cdecl *LPCHECKPROC) (HWND wnd,int flags); +typedef int (__cdecl *LPINFOPROC) (LPSONGINFO Info, int flags); +typedef int (__cdecl *LPCOMMANDPROC)(HWND wnd, int command, int value); + +typedef struct tPlayerCell { + CHAR* Desc; // Short player name + UINT flags; + HICON Icon; // can be 0. for registration only + LPINITPROC Init; // LPINITPROC; can be NULL. initialize any data + LPDEINITPROC DeInit; // LPDEINITPROC; can be NULL. finalize player processing + LPCHECKPROC Check; // check player + LPSTATUSPROC GetStatus; // tStatusProc; can be NULL. get player status + LPNAMEPROC GetName; // can be NULL. get media filename + LPINFOPROC GetInfo; // can be NULL. get info from player + LPCOMMANDPROC Command; // can be NULL. send command to player + CHAR* URL; // only if WAT_OPT_HASURL flag present + WCHAR* Notes; // any tips, notes etc for this player +} PLAYERCELL, *LPPLAYERCELL; + +/* + wParam: action + lParam: pointer to PLAYERCELL if wParam = WAT_ACT_REGISTER, + else - pointer to player description string (ANSI) + returns: player window handle or value>0 if found + note: If you use GetName or GetInfo field, please, do not return empty + filename even when mediafile is remote! +*/ +#define MS_WAT_PLAYER "WATrack/Player" + +// --------- Last FM --------- + +/* + Toggle LastFM scrobbling status + wParam,lParam=0 + Returns: previous state +*/ +#define MS_WAT_LASTFM "WATrack/LastFM" + +/* + Get Info based on currently played song + wParam: pLastFMInfo + lParam: int language (first 2 bytes - 2-letters language code) +*/ +typedef struct tLastFMInfo { + UINT request; // 0 - artist, 1 - album, 2 - track + WCHAR* artist; // artist + WCHAR* album; // album or similar artists for Artist info request + WCHAR* title; // track title + WCHAR* tags; // tags + WCHAR* info; // artist bio or wiki article + WCHAR* image; // photo/cover link + WCHAR* similar; + WCHAR* release; + UINT trknum; +}PLASTFMINFO, *LPLASTFMINFO; + +#define MS_WAT_LASTFMINFO "WATrack/LastFMInfo" + +// --------- Templates ---------- + +/* + wParam: 0 (standard Info) or pSongInfo + lParam: Unicode template + returns: New Unicode (replaced) string +*/ +#define MS_WAT_REPLACETEXT "WATrack/ReplaceText" + +/* + event types for History + Blob structure for EVENTTYPE_WAT_ANSWER: + Uniciode artist#0title#0album#0answer +*/ +#define EVENTTYPE_WAT_REQUEST 9601 +#define EVENTTYPE_WAT_ANSWER 9602 +#define EVENTTYPE_WAT_ERROR 9603 +#define EVENTTYPE_WAT_MESSAGE 9604 + +/* + wParam: 0 or parent window + lParam: 0 + note: Shows Macro help window with edit aliases ability +*/ +#define MS_WAT_MACROHELP "WATrack/MacroHelp" + +#endif diff --git a/plugins/Watrack/docs/m_music.inc b/plugins/Watrack/docs/m_music.inc new file mode 100644 index 0000000000..1850de52ba --- /dev/null +++ b/plugins/Watrack/docs/m_music.inc @@ -0,0 +1,404 @@ +{$IFNDEF M_MUSIC} +{$DEFINE M_MUSIC} + +// defined in interfaces.inc +//const MIID_WATRACK:MUUID='{FC6C81F4-837E-4430-9601-A0AA43177AE3}'; + +type + pSongInfoA = ^tSongInfoA; + tSongInfoA = packed record + artist :PAnsiChar; + title :PAnsiChar; + album :PAnsiChar; + genre :PAnsiChar; + comment :PAnsiChar; + year :PAnsiChar; + mfile :PAnsiChar; // media file + kbps :dword; + khz :dword; + channels :dword; + track :dword; + total :dword; // music length + time :dword; // elapsed time + wndtext :PAnsiChar; // window title + player :PAnsiChar; // player name + plyver :dword; // player version + icon :THANDLE; // player icon + fsize :dword; // media file size + vbr :dword; + status :integer; // WAT_MES_* const + plwnd :HWND; // player window + // video part + codec :dword; + width :dword; + height :dword; + fps :dword; + date :int64; + txtver :PAnsiChar; + lyric :PAnsiChar; + cover :PAnsiChar; + volume :dword; + url :PAnsiChar; // player homepage + winampwnd:HWND; + end; +type + pSongInfo=^tSongInfo; + tSongInfo = packed record + artist :pWideChar; + title :pWideChar; + album :pWideChar; + genre :pWideChar; + comment :pWideChar; + year :pWideChar; + mfile :pWideChar; // media file + kbps :dword; + khz :dword; + channels :dword; + track :dword; + total :dword; // music length + time :dword; // elapsed time + wndtext :pWideChar; // window title + player :pWideChar; // player name + plyver :dword; // player version + icon :THANDLE; // player icon + fsize :dword; // media file size + vbr :dword; + status :integer; // WAT_MES_* const + plwnd :HWND; // player window + // video part + codec :dword; + width :dword; + height :dword; + fps :dword; + date :int64; + txtver :pWideChar; + lyric :pWideChar; + cover :pWideChar; // cover path + volume :dword; + url :PWideChar; // player homepage + winampwnd:HWND; + end; + pSongInfoW = pSongInfo; + tSongInfoW = tSongInfo; + +const + // result codes + WAT_RES_UNKNOWN = -2; + WAT_RES_NOTFOUND = -1; + WAT_RES_ERROR = WAT_RES_NOTFOUND; + WAT_RES_OK = 0; + WAT_RES_ENABLED = WAT_RES_OK; + WAT_RES_DISABLED = 1; + // internal + WAT_RES_NEWFILE = 3; + WAT_RES_NEWPLAYER = 4; + +// result for MS_WAT_GETMUSICINFO service +const + WAT_PLS_NORMAL = WAT_RES_OK; + WAT_PLS_NOMUSIC = WAT_RES_DISABLED; + WAT_PLS_NOTFOUND = WAT_RES_NOTFOUND; + +const + WAT_INF_UNICODE = 0; + WAT_INF_ANSI = 1; + WAT_INF_UTF8 = 2; + WAT_INF_CHANGES = $100; + +const + MS_WAT_INSERT:PAnsiChar = 'WATrack/Insert'; + MS_WAT_EXPORT:PAnsiChar = 'WATrack/Export'; + +const +{ + wParam : WAT_INF_* constant + lParam : pointer to pSongInfo (Unicode) or pSongInfoA (ANSI/UTF8) + Affects: Fill structure by currently played music info + returns: WAT_PLS_* constant + note: pointer will be point to global SongInfo structure of plugin + warning: Non-Unicode data filled only by request + if lParam=0 only internal SongInfo structure will be filled + Example: + var p:pSongInfo; + PluginLink^.CallService(MS_WAT_GETMUSICINFO,0,dword(@p)); +} + MS_WAT_GETMUSICINFO:PAnsiChar = 'WATrack/GetMusicInfo'; +{ + wParam:0 + lParam : pointer to pSongInfo (Unicode) + Affects: Fill structure by info from file named in SongInfo.mfile + returns: 0, if success + note: fields, which values can't be obtained, leaves old values. + you must free given strings by miranda mmi.free +} + MS_WAT_GETFILEINFO:PAnsiChar = 'WATrack/GetFileInfo'; + +{ + wParam: encoding (WAT_INF_* consts, 0 = WAT_INF_UNICODE) + lParam: codepage (0 = ANSI) + Returns Global unicode SongInfo pointer or tranlated to Ansi/UTF8 structure +} + MS_WAT_RETURNGLOBAL:PAnsiChar = 'WATrack/GetMainStructure'; + +//!! DON'T CHANGE THESE VALUES! +const + WAT_CTRL_FIRST = 1; + + WAT_CTRL_PREV = 1; + WAT_CTRL_PLAY = 2; + WAT_CTRL_PAUSE = 3; + WAT_CTRL_STOP = 4; + WAT_CTRL_NEXT = 5; + WAT_CTRL_VOLDN = 6; + WAT_CTRL_VOLUP = 7; + WAT_CTRL_SEEK = 8; // lParam is new position (sec) + + WAT_CTRL_LAST = 8; + +{ + wParam: button code (WAT_CTRL_* const) + lParam: 0, or value (see WAT_CTRL_* const comments) + Affects: emulate player button pressing + returns: 0 if unsuccesful +} + MS_WAT_PRESSBUTTON:PAnsiChar = 'WATrack/PressButton'; + +{ + Get user's Music Info +} + MS_WAT_GETCONTACTINFO:PAnsiChar = 'WATrack/GetContactInfo'; + +// ------------ Plugin/player status ------------ + +{ + wParam: 1 - switch off plugin + 0 - switch on plugin + -1 - switch plugin status + 2 - get plugin version + other - get plugin status + lParam: 0 + Affects: Switch plugin status to enabled or disabled + returns: version, old plugin status, 0, if was enabled +} + MS_WAT_PLUGINSTATUS:PAnsiChar = 'WATrack/PluginStatus'; + + ME_WAT_MODULELOADED:PAnsiChar = 'WATrack/ModuleLoaded'; + +const + WAT_EVENT_PLAYERSTATUS = 1; // WAT_PLS_* const + WAT_EVENT_NEWTRACK = 2; // SongInfo ptr + WAT_EVENT_PLUGINSTATUS = 3; // 0-enabled; 1-dis.temporary; 2-dis.permanent + WAT_EVENT_NEWPLAYER = 4; // + WAT_EVENT_NEWTEMPLATE = 5; // TM_* constant + +{ + Plugin or player status changed: + wParam: type of event (see above) + lParam: value +} + ME_WAT_NEWSTATUS:PAnsiChar = 'WATrack/NewStatus'; + +// ---------- Popup module ------------ + +{ + wParam: not used + lParam: not used + Affects: Show popup or Info window with current music information + note: Only Info window will be showed if Popup plugin disabled +} + MS_WAT_SHOWMUSICINFO:PAnsiChar = 'WATrack/ShowMusicInfo'; + +// --------- Statistic (report) module ------------- + +{ + wParam: pointer to log file name or NIL + lParam: pointer to report file name or NIL + Affects: Create report from log and run it (if option is set) + returns: 0 if unsuccesful + note: if wParam or lParam is a NIL then file names from options are used +} + MS_WAT_MAKEREPORT :PAnsiChar = 'WATrack/MakeReport'; +// MS_WAT_MAKEREPORTW:PAnsiChar = 'WATrack/MakeReportW'; + +{ + wParam, lParam - not used + Affects: pack statistic file +} + MS_WAT_PACKLOG:PAnsiChar = 'WATrack/PackLog'; + +{ + wParam: not used + lParam: pointer to SongInfo +} + MS_WAT_ADDTOLOG:PAnsiChar = 'WATrack/AddToLog'; + +// ----------- Formats and players ----------- + +// media file status + +const + WAT_MES_STOPPED = 0; + WAT_MES_PLAYING = 1; + WAT_MES_PAUSED = 2; + WAT_MES_UNKNOWN = -1; + +const + WAT_ACT_REGISTER = 1; + WAT_ACT_UNREGISTER = 2; + WAT_ACT_DISABLE = 3; + WAT_ACT_ENABLE = 4; + WAT_ACT_GETSTATUS = 5; // not found/enabled/disabled + WAT_ACT_SETACTIVE = 6; + WAT_ACT_REPLACE = $10000; // can be combined with WAT_REGISTERFORMAT + +const + // flags + WAT_OPT_DISABLED = $00000001; // registered but disabled + WAT_OPT_ONLYONE = $00000002; // can't be overwriten + WAT_OPT_PLAYERINFO = $00000004; // song info from player + WAT_OPT_WINAMPAPI = $00000008; // Winamp API support + WAT_OPT_CHECKTIME = $00000010; // check file time for changes + WAT_OPT_VIDEO = $00000020; // only for format registering used + WAT_OPT_LAST = $00000040; // (internal-Winamp Clone) put to the end of queue + WAT_OPT_FIRST = $00000080; // (internal) + WAT_OPT_TEMPLATE = $00000100; // (internal) + WAT_OPT_IMPLANTANT = $00000200; // use process implantation + WAT_OPT_HASURL = $00000400; // (player registration) URL field present + WAT_OPT_CHANGES = $00000800; // obtain only chaged values + // (volume, status, window text, elapsed time) + WAT_OPT_APPCOMMAND = $00001000; // Special (multimedia) key support + WAT_OPT_CHECKALL = $00002000; // Check all players + WAT_OPT_KEEPOLD = $00004000; // Keep Old opened file + WAT_OPT_MULTITHREAD = $00008000; // Use multithread scan + WAT_OPT_SINGLEINST = $00010000; // Single player instance + WAT_OPT_PLAYERDATA = $00020000; // (internal) to obtain player data + +type + tReadFormatProc = function(var Info:tSongInfo):boolean; cdecl; + pMusicFormat = ^tMusicFormat; + tMusicFormat = packed record + proc :tReadFormatProc; + ext :array [0..7] of AnsiChar; + flags:cardinal; + end; + +const +{ + wParam: action + lParam: pointer to tMusicFormat if wParam = WAT_ACT_REGISTER, + else - pointer to extension string (ANSI) + returns: see result codes +} + MS_WAT_FORMAT:PAnsiChar = 'WATrack/Format'; + +{ + wParam: pointer to SongInfo structure (plwind field must be initialized) + lParam: flags + Affects: trying to fill SongInfo using Winamp API +} + MS_WAT_WINAMPINFO:PAnsiChar = 'WATrack/WinampInfo'; + +{ + wParam: window + lParam: LoWord - command; HiWord - value +} + MS_WAT_WINAMPCOMMAND:PAnsiChar = 'WATrack/WinampCommand'; + +type + tInitProc = function():integer;cdecl; + tDeInitProc = function():integer;cdecl; + tStatusProc = function(wnd:HWND):integer;cdecl; + tNameProc = function(wnd:HWND;flags:integer):pWideChar;cdecl; + tCheckProc = function(wnd:HWND;flags:integer):HWND;cdecl; + tInfoProc = function(var SongInfo:tSongInfo;flags:integer):integer;cdecl; + tCommandProc = function(wnd:HWND;command:integer;value:integer):integer;cdecl; + + pPlayerCell = ^tPlayerCell; + tPlayerCell = packed record + Desc :PAnsiChar; // Short player name + flags :cardinal; + Icon :HICON; // can be 0. for registration only + Init :pointer; // tInitProc; can be NIL. initialize any data + DeInit :pointer; // tDeInitProc; can be NIL. finalize player processing + Check :pointer; // tCheckProc; check player + GetStatus:pointer; // tStatusProc; can be NIL. get player status + GetName :pointer; // tNameProc; can be NIL. get media filename + GetInfo :pointer; // tInfoProc; can be NIL. get info from player + Command :pointer; // tCommandProc; can be NIL. send command to player + URL :PAnsiChar; // only if WAT_OPT_HASURL flag present + Notes :PWideChar; // any tips, notes etc for this player + end; + +const +{ + wParam: action + lParam: pointer to tPlayerCell if wParam = WAT_ACT_REGISTER, + else - pointer to player description string (ANSI) + returns: player window handle or value>0 if found + note: If you use GetName or GetInfo field, please, do not return empty + filename even when mediafile is remote! +} + MS_WAT_PLAYER:PAnsiChar = 'WATrack/Player'; + +// --------- Last FM --------- + +{ + Toggle LastFM scrobbling status + wParam,lParam=0 + Returns: previous state +} +const + MS_WAT_LASTFM:pAnsiChar = 'WATrack/LastFM'; + +{ + Get Info based on currently played song + wParam: pLastFMInfo + lParam: int language (first 2 bytes - 2-letters language code) +} +type + pLastFMInfo = ^tLastFMInfo; + tLastFMInfo = packed record + request:cardinal; // 0 - artist, 1 - album, 2 - track + artist :pWideChar; // artist + album :pWideChar; // album or similar artists for Artist info request + title :pWideChar; // track title + tags :pWideChar; // tags + info :pWideChar; // artist bio or wiki article + image :pAnsiChar; // photo/cover link + similar:pWideChar; + release:pWideChar; + trknum :cardinal; + end; +const + MS_WAT_LASTFMINFO:pAnsiChar = 'WATrack/LastFMInfo'; + +// --------- Templates ---------- + +const +{ + wParam: 0 (standard Info) or pSongInfo + lParam: Unicode template + returns: New Unicode (replaced) string +} + MS_WAT_REPLACETEXT:PAnsiChar = 'WATrack/ReplaceText'; + +{ + event types for History + Blob structure for EVENTTYPE_WAT_ANSWER: + Uniciode artist#0title#0album#0answer +} +const + EVENTTYPE_WAT_REQUEST = 9601; + EVENTTYPE_WAT_ANSWER = 9602; + EVENTTYPE_WAT_ERROR = 9603; + EVENTTYPE_WAT_MESSAGE = 9604; + +const +{ + wParam: 0 or parent window + lParam: 0 + note: Shows Macro help window with edit aliases ability +} + MS_WAT_MACROHELP:pAnsiChar = 'WATrack/MacroHelp'; + +{$ENDIF M_MUSIC} diff --git a/plugins/Watrack/docs/sampledll.dpr b/plugins/Watrack/docs/sampledll.dpr new file mode 100644 index 0000000000..908fe60597 --- /dev/null +++ b/plugins/Watrack/docs/sampledll.dpr @@ -0,0 +1,139 @@ +library testdll; + +uses m_api, Windows,common; + +{$include m_helpers.inc} +{$include m_music.inc} + +const + PluginInfo:TPLUGININFOEX=( + cbSize :sizeof(TPLUGININFOEX); + shortName :'Plugin Template'; + version :$00000001; + description:'The long description of your plugin, to go in the plugin options dialog'; + author :'J. Random Hacker'; + authorEmail:'noreply@sourceforge.net'; + copyright :'(c) 2003 J. Random Hacker'; + homepage :'http://miranda-icq.sourceforge.net/'; + flags :UNICODE_AWARE; + replacesDefaultModule:0; + uuid:'{00000000-0000-0000-0000-000000000000}' + ); +var + PluginInterfaces:array [0..1] of MUUID; + +var + hook:integer; + oldproc:tReadFormatProc; + +// -------- format -------- +Function mp3proc(var dst:tSongInfo):boolean;cdecl; +begin +{ + MP3 Handler here +} +//messagebox(0,'ok','',0); +// Example for old handler + if (int(@oldproc)<>WAT_RES_OK) and (int(@oldproc)<>WAT_RES_ERROR) then + result:=oldproc(dst) + else + result:=true; +end; + +// ---------- Player ---------- +var + plwnd:HWND; + +function Check(flags:integer):HWND;cdecl; +begin + result:=1; + plwnd:=12; +end; + +function GetFileName:pWideChar;cdecl; +begin + result:=nil; +end; + +function GetInfo(var SongInfo:tSongInfo;flags:integer):integer;cdecl; +begin + PluginLink^.CallService(MS_WAT_WINAMPINFO,integer(@SongInfo),flags); + SongInfo.plyver:=$1234; + result:=0; +end; + +function Command(command:integer;value:integer):integer;cdecl; +begin + result:=PluginLink^.CallService(MS_WAT_WINAMPCOMMAND,plwnd, + command+(value shl 16)); +end; + +function OnWATLoaded(wParam:WPARAM;lParam:LPARAM):int;cdecl; +var + tmp:tMusicFormat; + tmp1:tPlayerCell; +begin + PluginLink^.UnhookEvent(hook); + + FillChar(tmp,SizeOf(tMusicFormat),0); + lstrcpy(tmp.ext,'MP3'); + tmp.proc:=mp3proc; + oldproc:=tReadFormatProc(PluginLink^.CallService(MS_WAT_FORMAT, + WAT_ACT_REGISTER+WAT_ACT_REPLACE,dword(@tmp))); + + FillChar(tmp1,SizeOf(tPlayerCell),0); + tmp1.desc :='Sampler'; + tmp1.flags :=0;// WAT_OPT_WINAMPAPI + tmp1.Check :=@Check; + tmp1.GetInfo:=@GetInfo; + tmp1.Command:=@Command; + tmp1.GetName:=@GetFileName; + PluginLink^.CallService(MS_WAT_PLAYER,WAT_ACT_REGISTER+WAT_ACT_REPLACE,dword(@tmp1)); + result:=0; +end; + +function OnModuleLoaded(wParam:WPARAM;lParam:LPARAM):int;cdecl; +begin + hook:=HookEvent(ME_WAT_MODULELOADED,@OnWATLoaded); + result:=0; +end; + +function MirandaPluginInfo(mirandaVersion:DWORD):PPLUGININFO; cdecl; +begin + result:=@PluginInfo; + PluginInfo.cbSize:=SizeOf(TPLUGININFO); +end; + +function MirandaPluginInfoEx(mirandaVersion:DWORD):PPLUGININFOEX; cdecl; +begin + result:=@PluginInfo; + PluginInfo.cbSize:=SizeOf(TPLUGININFOEX); +end; + +function Load(link: PPLUGINLINK): int; cdecl; +begin + PLUGINLINK := Pointer(link); + InitMMI; + Result:=0; + hook:=HookEvent(ME_SYSTEM_MODULESLOADED,@OnModuleLoaded); +end; + +function Unload: int; cdecl; +begin + Result:=0; +end; + +function MirandaPluginInterfaces:PMUUID; cdecl; +begin + PluginInterfaces[0]:=PluginInfo.uuid; + PluginInterfaces[1]:=MIID_LAST; + result:=@PluginInterfaces; +end; + +exports + Load, Unload, + MirandaPluginInfo + ,MirandaPluginInterfaces,MirandaPluginInfoEx; + +begin +end. diff --git a/plugins/Watrack/docs/wat.php b/plugins/Watrack/docs/wat.php new file mode 100644 index 0000000000..d15049dd72 --- /dev/null +++ b/plugins/Watrack/docs/wat.php @@ -0,0 +1,28 @@ + \ No newline at end of file diff --git a/plugins/Watrack/docs/watrack_history.txt b/plugins/Watrack/docs/watrack_history.txt new file mode 100644 index 0000000000..bea80d4e85 --- /dev/null +++ b/plugins/Watrack/docs/watrack_history.txt @@ -0,0 +1,519 @@ +0.0.6.12 (17 nov 2009) + Added Last.FM scrobbling support +0.0.6.11 (14 sep 2009) + Added watrack parts admin page + Fixed cover reading from OGG files + Fixed mRadio work when no avatar plugin presents + Fixed wrong LastFM recognition +0.0.6.10 (28 aug 2008) + Added basic LastFM support + Added hidden option 'xstatpause',ms (word type) to make pause between XStatus changing + Added option to emulate multimedia keys + Added avatar as cover for mRadio contacts support +0.0.6.9 (28 jan 2008) + Fixes for FLV format + Added option to assign 'music' and 'video' xstatuses + Changed Handle checking (to avoid Thread handle leak) + First tab setting notes shows on mouse hover (not click) +0.0.6.8 (29 oct 2007) + Added two options to alter filename search method + Fixed: mRadio track changing not catched +0.0.6.7 (26 aug 2007) + Added lyric support for APev2 tags, WMA + Added cover support for APev2 tags, WMA, OGG, SPX and fLaC + Optimized APEv2, OGG, fLaC and WMA reading code + Fixed ID3v2.4 tag reading code + Optimized mediafile handle checking +0.0.6.6 (9 aug 2007) + AIMP player support code changed + Fixed some memoryleaks +0.0.6.5 (20 jun 2007) + 'Use existing XStatus' options changes only message text, not title + Optimized FLV reading code + Fixed and optimized MPG reading code +0.0.6.4 (13 jun 2007) + Added AIMP control +0.0.6.3 (10 jun 2007) + Added: mRadio %version% macro support + Fixed: in rare case covers can be renamed and deleted + Fixed: %cover% value can be wrong if cover not present + Fixed: %volume% value for mRadio not obtaining +0.0.6.2 (9 jun 2007) + Small players code fixes + Commented some thread code (due to AIMP 1.77 changes) + Fixed version number + Added seek ability for local mediafiles +0.0.6.1 (7 jun 2007) + Added extended control for mRadio Mod + Added compatibility with AIMP 1.77 + Added service to obtain not only played file info + Fixed: frame not change cover picture obtained from mediafile tags +(01 jun 2007) + Added %nstatus% macro (like %status% but w/o translation) +(29 may 2007) + Very small fixes (for mRadio too) +(25 may 2007) + Added ability to show popups only by request, not new track +(20 may 2007) + Changed: added threads for popups and statistic + Changed: Music/player Info obtaining code + Fixed: QCD player recognizing and processing +(16 may 2007) + Added actions support for Popup Plus 2.1.0.5 +(15 may 2007) + Added %playerhome% (Player homepage url) macro +(11 may 2007) + Small fixes + Statistic code optimized for speed +(09 may 2007) + Added two buttons to check player/format list + AIMP player now processed separately + Changed code for played filename obtaining +0.0.6.0 (05 may 2007) + Many small codechanges and fixes + Music info request can be send by ASKWAT text sending (received as message) + Settings saved only in profile db now +0.0.5.0 (18 feb 2007) + Fixed: cover is showed only when backround picture name is not empty + Cover files deleted at exit now + Added volume field (see readme) to SongInfo structure. + Fixed: Cover from ID3v2 tag saved incorrectly + Fixed: Miranda crashed when shutdowned + Code cleaning and optimization +0.0.4.30 (24 dec.2006) + Changed internal code library + Fixed comment reading from ID3v2 tag +0.0.4.29 (29 nov 2006) + Small Fixes + Changes for external icon support for player.ini file + Fixed: ini file modified constantly if player not found +0.0.4.28 (16 nov 2006) + Other bugfixes + Fixed: Contact menu handler chain was broken +0.0.4.27 (15 nov 2006) + Small player handles fixes + Fixed: crash with WAV file samplesize<8 bit + Added options to choose Music info sharing ability + Added context menu music info request + Fixed bug with Frame redraw/resizing + Added external player definition +0.0.4.26 (7 nov 2006) + Added album sort mode to report + Fixed some report errors + Changes for old miranda versions (before 0.6) compatibility +0.0.4.25 (31 oct 2006) + INI file (not database) used by default + Winamp video width and height recognizing returned (for test) + Fixed: log file rewrited always + Fixed: Report creating from Options tab was wrong + Fixed: "Export default" button on options tab not work +0.0.4.24 (29 oct 2006) + Report code was rewritten to template support + Current settings saved when saving place changed (switch at last!) + Loading settings from profile database works now normally + Fixed: Player name case conversion was after WAT_EVENT_NEWTRACK sending + Width and Height recognition through Winamp API disables due to wrong return values +0.0.4.23 (15 oct 2006) + Save in INI/profile base file option returned + API changes + ID3v2 tag reading code was changed + Rewritten and reorganized internal structure + mBot script sample added +0.0.4.22 (17 sep 2006) + INI-file structure changes (frame, report and popup options is separated) + CyberLink PowerDVD recognizing added + ALSong player recognizing added + MediaInfo obtained at plugin start now (if refresh time is not 0) + First version of new Player API is finished + Underscore replaces by spaces only in text macros (not media filename) + Fixed: wrong action on "Use Frame" checkbox +0.0.4.21 (28 aug 2006) (test) + Miranda memory manager used now + Fixed: ID3v2 tags cannot process Unicode strings with reverse byte order + Media format API rewrited, new service added + Added event notifier for plugin loading + Added event notifier for plugin/player status changing +0.0.4.20 (20 aug 2006) + Only songs with known length are addings to log + Added frame text centering + Small bugfixes + Fixed: Mirada crashes while report creating changed from menu + Added mRadio plugin support (test) + Fixed: sometimes trackbar is hidden + Added SongBird player support +0.0.4.19 (11 aug 2006) + XStatus 'Watching pro7 on TV' works like 'Listening to music' XStatus but for video + Show/hide trakbar option is separated now + Sources changed for delphi7_up compatibility + Fixed: Sometimes plugin show hotkey registration error + Fixed: Timer stopped when Options page is open + Added some additional settings for frame text scrolling + Fixed: iTunes volume control does not work + Added menu item and toolbar button to disable plugin + Fixed error with unknown format tag in the frame template + Added WiFiRadio player support + Added option to hide frame when player not found +0.0.4.18 (14 jul 2006) + Added GOM player detection + {cf#nnnnnn} and {bg#nnnnnn} is define color with hex trucolor value 'nnnnnn' + Added frame text format support + Added pushed/hovered button status support if watrack_buttons.dll is used +0.0.4.17 (10 jul 2006) + Fixed: frame button not unpress when pressed button mouse moves out of frame + Added option to use or not gap between frame buttons + Option tabs changed back to theme ability + Added "skin" trackbar ability +0.0.4.16 (9 jul 2006) + Small interface changes + Volume buttons on the frame changed and can be hided now + '\t' combination (Tabulation) changed to '{tab}' tag format + Fixed avoid '\n' combination conflict in templates + Holding mouse button on volume control make continuous decremet/increment + Fixed some bugs + Added frame transparency +0.0.4.15 (5 jul 2006) + Added right align frame picture option + Fixed: text insertion hotkey do not always register + Service for player control is created + Added "Next track" to popup click options + If timer value greater than 499, time signify as milliseconds +0.0.4.14 (3 jul 2006) + Added bottom align frame picture option + Fixed: Miranda freezes on W2K when some radiobuttons clicked + Returned modified old code for Foobar recognize +0.0.4.13 (29 jun 2006) + Updater data changed for new hosting compatibility + Added support \t in templates (expanded when used) + Frame text now can be edited + Frame background can be picture (with effects: center, tile, stretch) + Options saves in profile directory as default (if old settings not found) + Foobar2000 recognizing code changed + Jabber chat recognized now + Fixed: 'Try to use OLE interface' option not changed + Added frame bitmap background support + Fixed: control icons in IcoLib not shows then watrack_icons.dll is not found + Volume control added + New Frame options added +0.0.4.12 (18 jun 2006) + Fixed (i hope) bug with info refresh while MediaMonkey finished + Added frame support with IcoLib support + Added control procedures for some players + Small speed optimization + Introduced option to enable/disable players OLE interface +0.0.4.11 (14 jun 2006) + Fixed FLV bug + Added MPEG file support (only MPEG audio stream) +0.0.4.10 test (11 jun 2006) + New macro %txtver% (text version number representation) was introduced + Small fixes + Imroved Foobar2000 support if foo_comserver2 plugin is present +0.0.4.9 (06 jun 2006) + Added partial support for MOV and 3GP file formats + Added support for ID3v2 tag v.2 + Added option to skip some plugin error messages (mainly for hotkeys) + INI file is not rewritten now if default player was not changed + Added QuickTime player support +0.0.4.8 (31 may 2006) + Added New options to insert text in text field of other apps + Code compiled with KOL (smaller size) +0.0.4.7 + Version numeration changed for more Updater compatibility. Last number is for betas. + Trying to use XP theming in TABs + Changed XStatus recovery code +0.0.4.6 (23 may 2006) + Variables and NewAwaySys works now with Unicode + Small interface changes + Added FLVPlayer support + Added option to check file date/time changes while playing + Added option to set XStatus regardless of ICQ status + Added option to replace underline with spaces + Fixed NAS service call + Added partial FLV format support + Fixed: some unicode named files can't be processed + Macro help removed from resource +0.0.4.5 (11 may 2006) + Changed Macro help window - with localisation support now + Added NewAwaySys (unicode) support for status text changings + Added MPlayer support + Fixed MusikCube player code + Fixed template formatting in IRC channel + Added partial MKV, WMV and ASF formats support + Changed RM reading code to video info compatibility + Added AVI file support (test version) + Added OGM file support + %fps%, %width%, %height% and %codec% macro added + OGG file info reading changes + Fixes for large files + Finally fixed bug with Popup templates + Options dialog changed again (Templates and Protocols tabs is merged) +0.0.4.4 (24 apr 2006) + Fixed: Template macro help not work + Changed WavPack reading code for v.4* compatibility + Fixed bug with INI file name processing + Status message now uses 'Status Text' template (was 'Status Title') + MediaMonkey player class now partially uses OLE interface + Music XStatus can be cleared when miranda starts without music + Watrack.ini used if private INI file is absent + Notes in first option tab is Unicode now + Changed work with statuses (normal and extended) + Changed plugin behaviour when Miranda started without played song + Default template texts changed + Fixed: unused strings was keeped in INI file. + Fixed: can crash when Variables plugin not exists + Fixed: protocols enabling-disabling not works properly + Fixed: Crashes when music played and templates changed + MediaMonkey recognized as separate player now, not Winamp clone + All settings now saved in INI-file + Template option dialog was totally rewrited +0.0.4.3 (26 mar 2006) + Added option to return Variables value in ANSI + Small save-related changes + Added 'AudioPlayer' support + Player icons moved to separate file (must be in icons or plugins directory) + Added player window handle to SongInfo structure + Added popup option to activate player window + Fixed: wrong 'Total logged music time' value + Added Core Media Player support +0.0.4.2 (03 mar 2006) + Fixed RM file reading + Fixed ID3v2 tag reading (UTF8 encoding) + Small option dialog interface changes + Localisation sample file included (russian) + psapi.dll included (needed when plugin can't get song filename) + Fixed WMA tag reading + Fixed LA player recognition (wrong player status was returned) + Old XStatus restored now if player not found + Changed: if XStatus title is empty, it is cleared now + Changed %music% command translation code +0.0.4.1 (26 feb 2006) + Deleted ICQ XStatus old API code + Added Creative Media Source support + Added 'version' resource + Status and popup templates are separated now + Added Media Commander Express player support + Added IcoLib support + Added VLC player support + Added Helium Music Manager support + Added Musicmatch Jukebox player support + Added %music% command with BB-code formatting in message dialog + Added option for player title formatting + Fixed error with filename in File info called from popup + Added support for J.River Media Center + Fixed situation when player is stopped + Fixed: 511 byte per string only saved in INI-file + Fixed player status for unknown filetypes + Small fix for MP4/M4A reading + Added partial M4A file format tag support + Added option to get unknown music format info from player + Changed WMA tag reading code to obtain number-type values + All resource language is Neutral now + Changed MusicCubeOne and SAPS players recognition + When 'no-music text' is empty and player stopped status message cleared + When 'Keep Status' is 'on' status text cleared + Song time can show more than 99 hours now + Changed recognizing song filename when Apollo is 'stopped' + Added Pluton player support + Fixed: Clearing 'Music' XStatus doesn't work with new ICQ API +0.0.4.0 (29 jan 2006) + Added option to disable log + Changed XStatus setting code to compatibles with new ICQ API + Fixed: Popup service function works only with TopToolBar + Vorbis comment tag names now case insensitive + Changed FLAC reading code. Now with Vorbis comments + Current music format saves and checks firstly + Fixed: 'Save settings in INI-file' option cleared if Options dialog opens + Nearby twin record in statistic file is ignored now + Relative report or statistic file path calculated now from Miranda directory + Corrected status changing when player stopped + Added %status% macro (works with not all players!!!) + Added option to save CSS file separately + Added automatic report file extension adding/changing + Added VBR/CBR text to File Info from pupup + Added %year% macro help (i just forgot) + Empty report file not created if log file is invalid + Added menu item and service function for report creating + Added support for SAPS player + Added support for Zoom player + Changed QCDPlayer code to support new QMPlayer +0.0.3.8 (19 jan 2006) + Fixed MP3 VBR reading bug + Added simple statistic (UTF8 enc.) (just for fun) + Added %vbr% macro and option for it + Added template when player not found + Changed Options interface + Changed Service function interface (please, see comments!) + Fixed wrong %total% value when 'Variables' plugin used + Added MusicCube One player support + OGG tags now translated as UTF8 + Fixed some ID3v2 tag reading issues and errors + Fixed track number recognize in APEv2 tag + Active Player places on first place (save in settings - AI! :) ) + Now MP3 files checked firstly + Changed Foobar2000 main window search procedure + Deep code changes (translating to Unicode strings and other) +0.0.3.7 (26 dec 2005) + Added file size text formatting + Corrected formatted text output + Fixed WMA reading code (again) + Fixed internal ANSI to Unicode transformation + Changed Options dialog +0.0.3.6 (21 dec 2005) + Added Unicode support + Fixed wrong WMA tag reading + Advances PopUp settings + Toolbar button for popup window added + Small code optimisation + Fixed chat or message window recognition + Partially avoiding WMP10 playlist bug + Added XMPlayer support + Added macros %size% (file size) and %type% (file ext.) +0.0.3.5 (05 dec 2005) + Now Status not processes and Popup not shows when player is stopped + Popup settings dialog created + Added BSPlayer support +0.0.3.4 (28 nov 2005) + Some changes for Service function (mainly description, see header) + Fixed (i hope): Miranda crushes sometimes by pressing hotkey + 'No-music text' can processed by Variables plugin + Now Status changing works in separated protocols + Fixed: Popup shows not always + Status template now multiline + Added player icon in Popup window +0.0.3.3 (24 nov 2005) + Changed Foobar2000 recognition for new versions + Remove elapsed time recongition within Foobar2000 (sorry!) + Now with player shutdown XStatus changes to 'none' and no sets anymore + Added simply PopUp support (Status Template value) + Added option to change XStatus only for existing Music xstatus + Added option to keep or not Music XStatus on player exit + Fixed: Miranda can crush while use Variables plugin +0.0.3.2 (19 nov 2005) + File renamed for avoiding Updater plugin crash + Fixed: format tag at the end of template not translated + Fixed variables help + Added support for ViPlay3 player + Data for 'Variables' plugin updated by timer + Added ability to switch off some players + Added ability to change processed status mode + Added ability to save settings in INI-file + Settings saved only from Options dialog, not on exit + Some code changes +0.0.3.0 (29 oct 2005) + Genre name table moved to resource + ICQ XStatus changes only for non-offline user mode + Fixed: 'new line' code inserted at the end +0.0.2.9 (27 oct 2005) + Fixed: Stupid bug - text not inserted into CHAT window + Temporary: text formatting used in ordinal message window too (only for testing) +0.0.2.8 (27 oct 2005) + Added support for RA/RM format (experimental) + Changed text formatting algorithm (test for Asian text, please!) + Created version archive on http://awkward.front.ru/archive/ + Try to use simple Updater plugin compatibility +0.0.2.7 (25 oct 2005) + Fixed: Status message not changed by timer + Added: experimental Chat window text formatting (see readme) +0.0.2.6 (23 oct 2005) + Fixed some bugs. + Other small changes. +0.0.2.5 (23 oct 2005) + Modified Option Dialog and added translation ability + Added partial support for AAC file format + Added support for MP4 with MP3-coding format + Added support for MusikCube player + Added alternative ID3v2 tag frames +0.0.2.4 (19 oct 2005) + Changed hotkey processing (not global hook now) + Changed some players recognition + Changed Music info interface (see include file) + Added support for 'Variables' plugin (not fully tested) + Added support for MediaMonkey Player + Added support for RealPlayer + Added support for MPC file format (only 'MPC' extension) + Added partial support for SPX file format (not tested) + Added partial support for OFR file format (not tested) + Now Status sets only if changed +0.0.2.2 (10 oct 2005) + (Not fully tested, save previous version!) + Now HotKey work only with own Miranda copy + New tag processing algorithm + Added WAV format support + Added experimental APE,TTA and FLAC formats support (not tested) + Added iTunes and PlayNow! players recognize + Some internal changes + Macro %samplerate% and %bitrate% (%khz% and %kbps% synonims) added + Fixed: unwanted XStatus changing to 'Music' +0.0.1.8 (05 oct 2005) + Fixed: Sometime Foobar2000 main window not recognized properly + Small speed optimisation + Added LightAlloy recognize + Empty "No-Music text" keep original Miranda status messages now + Fixed: in Apollo and OGG-file Bitrate was Bps, not KBps, + Samplerate was Hz, not KHz +0.0.1.7 (04 oct 2005) + Added automatic Music info refresh by timer + Added option to NOT insert music info into message window + Fixed: crash on some comments in ID3v2 +0.0.1.6 (03 oct 2005) + Changed Options dialog + Added simple Away-message support (only by Hotkey pressing) + Macro %year% now work +0.0.1.5 (02 oct 2005) + Support for Unicode value in ID3v2 + Add WMA tag support + Fixed: macro %genre% not translated + Fixed: Winamp window title processing +0.0.1.4 (29 sep 2005) + Added JetAudio support + Fixed: VBR MP3 length not propely calculated + Fixed music file name recognition + Added APEv2+ID3v1 at one time tag support +0.0.1.3 (28 sep 2005) + Now get music info from file on local network +0.0.1.2 (27 sep 2005) + Changed 'year' field type in music info + Added APEv2 tag support for MP3 + Remove Win98-code part + Other small changes +0.0.1.1 (25 sep 2005) + Test version. + win2KXP-only compatible. + Service function added. + MP3 IDv2 tag data read fixed + Some other bugs fixed (sorry, not all!). +0.0.1.0 (25 sep 2005) + Test version: new music file search algorithm (MP3 OGG WMA only) + Windows media player wrapper not needed now +0.0.0.9 (24 sep 2005) + correct MP3 file processing with padding at start + cutting template strings tail fixed again :( + add %percent% macro + Modified source code uploaded +0.0.0.8 (22 sep 2005) + cutting template strings tail (sometime) fixed + %wndtext% macro turn "on" again :) +0.0.0.7 (19 sep 2005) + MP3 tag support extended + OGG file info (not length, sorry!) added + music info readed at one time now (for Winamp-like API - at request too) + Apollo samplerate show changed + %comment% macro added +0.0.0.6 (18 sep 2005) + Macro %track% value changed + audio MPEG 2 & 2,5 and layer 1 & 2 file support added + Some code cleaning + Correct data view from MP3 Tag + Changed Artist-Title determination algorithm + Changed Winamp search algorithm +0.0.0.5 (14 sep 2005) + Work improved, more players added + Default macro processing added + Fix some bugs + FooBar without Winamp wrapper supported (not full) + MP3 tag v1 partial support added +0.0.0.3 (12 sep 2005) + New option interface + New engine for many player support + Macro support added +0.0.0.1 (07 sep 2005) + First release diff --git a/plugins/Watrack/docs/watrack_readme.txt b/plugins/Watrack/docs/watrack_readme.txt new file mode 100644 index 0000000000..ef2ec81e98 --- /dev/null +++ b/plugins/Watrack/docs/watrack_readme.txt @@ -0,0 +1,110 @@ +For what: + Insert Played music info in message window or Status text. ICQ extended + status supported. + +Requirements: + Windows 2K/XP (SP2 better) + Miranda 0.6.x + +Supported Players: + Winamp (http://www.winamp.com/) + Apollo (http://www.iki.fi/hy/apollo/) + 1by1 (http://www.mpesch3.de/) + Media Player Classic (http://gabest.org/) + Window Media Player (http://www.microsoft.com/windows/windowsmedia/players.aspx) + FooBar2000 (http://www.foobar2000.org/) + LightAlloy (http://www.softella.com/) + Cowon JetAudio (http://www.jetaudio.com/) + Quintessential Player (http://quinnware.com/) + iTunes (http://www.itunes.com/) + MediaMonkey (http://www.mediamonkey.com/) + Real Player (http://www.real.com/) + MusikCube (http://www.musikcube.com/) + BSPlayer (http://www.bsplayer.org/) + MusicCube One (http://www.rodi.dk/musiccubeone) + Zoom Player (http://www.inmatrix.com/) + Pluton (http://pluton.oss.ru/) + J. River Media Center (http://www.jrmediacenter.com/) + Musicmatch Jukebox (http://wwwp.musicmatch.com/) + VideoLAN media player (http://www.videolan.org/) + mRadio miranda plugin (http://miranda.kom.pl/dev/bankrut/) + ALSong&ALShow (http://www.altools.net/) + + and others. List of other players see in player.ini + +Supported Formats: + MP3, OGG, WMA, WAV, APE, TTA, AAC, FLA/FLAC, MPC, OFR/OFS, SPX, MP4, M4A, + ASF, WMV, AVI, MKV, OGM, RA/RM/RAM, FLV, MOV, 3GP, MPEG/MPG + +In Chat (and maybe message) window, you can use text formatting: +{b}text{/b} - 'bold' text +{i}text{/i} - 'italic' text +{u}text{/u} - 'undeline' text +{cf##}text{/cf} - text with color ## (0-15) +{bg##}text{/bg} - text with background color ## (0-15) +Sample:/me {b}listen{/b} {cf5}{i}%artist%{/i}{/cf} - {bg10}{u}"%title%"{/u}{/bg} + +Macros: + %album% - album + %artist% - artist + %bitrate% - bitrate + %channels% - number of channels + %codec% - video codec like 0x30355844 (DX50) + %comment% - comment from tag + %cover% - cover file name + %file% - media file name + %fps% - 100*FPS (Frames Per Second) for video files + %height% - video height in pixels + %genre% - genre + %kbps% - bitrate + %khz% - samplerate + %length% - total song length (sec) + %lyric% - lyric text + %mono% - "mono"/"stereo" + %nstatus%' - player status (stopped,playing,paused) - nontranslated + %percent% - %time% / %total% * 100% + %player% - player + %samplerate% - samplerate + %size% - media file size + %status%' - player status (stopped,playing,paused) + %time% - current song position (sec) + %title% - song title + %total% - total song length (sec) + %track% - track number + %txtver% - player version in text format + %type% - media file type (extension) + %vbr% - 'VBR' if VBR :) + %version% - player version + %width% - video width in pixels + %wndtext% - title from player window (usually "artist" - "title") + %year% - song year (from tag) + +Notes: + - Volume field has a original volume value in hiword and scaled to 0-15 range + in loword. Not all players supported. + - Frame background picture transparence is not implemented + - To obtain more information from foobar2000 player, you must download plugin + http://foosion.foobar2000.org/0.9/foo_comserver2-0.7-setup.exe + or use foo_winampspam plugin + - FileInfo (called from popup) not shows Video file properties + - FPS saves as FPS*100 + - Frame text output is Left-to-Right only now + +Known BUGs: + - if Frame text uses %time% macro, text can't scroll + - Foobar seeking with foo_winamp_spam may not work + - Miranda can freeze if Foobar OLE interface used + - Player can start again if OLE checks while it shutdown + - ICQLite and ICQ2003 users cannot see XStatus text changes + - in MP3 with VBR total song time sometime is not properly calculated + - default color of formated text is color of text at insert position + - some macros don't work with some players. Replaced by '' and 0 + - 1by1 player can show wrong elapsed time value + - some players version not properly displayed + - bad MP3 headers not properly handled + - plugin can show wrong song when Player scans directory for music files + +PS. To compile plugin you must use something like this: + dcc32 -$A+ -$H+ watrack.dpr + +All comments, errors & wishes please send to awkward@land.ru or panda75@bk.ru -- cgit v1.2.3