123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359 |
- #ifndef __WINAMP2FRONTEND_H
- #define __WINAMP2FRONTEND_H
- #define WA2_GETINFO_SAMPLERATE 0
- #define WA2_GETINFO_BITRATE 1
- #define WA2_GETINFO_CHANNELS 2
- #define WA2_NUMBANDS 10
- #define WA2_EQDATA_FIRSTBAND 0
- #define WA2_EQDATA_LASTBAND 9
- #define WA2_EQDATA_PREAMP 10
- #define WA2_EQDATA_ENABLED 11
- #define WA2_EQDATA_AUTO 12
- #define IPC_GETWND_EQ 0
- #define IPC_GETWND_PE 1
- #define IPC_GETWND_MB 2
- #define IPC_GETWND_VIDEO 3
- #define WA2_USERBUTTON_PREV 0
- #define WA2_USERBUTTON_PLAY 1
- #define WA2_USERBUTTON_PAUSE 2
- #define WA2_USERBUTTON_STOP 3
- #define WA2_USERBUTTON_NEXT 4
- #define WA2_USERBUTTONMOD_NONE 0
- #define WA2_USERBUTTONMOD_SHIFT 1
- #define WA2_USERBUTTONMOD_CTRL 2
- #define WINAMP_MAIN_WINDOW 40258
- #define WINAMP_OPTIONS_MINIBROWSER 40298
- #define WINAMP_OPTIONS_VIDEO 40328
- #define WINAMP_OPTIONS_PLEDIT 40040
- #define WINAMP_OPTIONS_EQ 40036
- #define WINAMP_FILE_LOC 40185
- #define WINAMP_FILE_PLAY 40029
- #define WINAMP_FILE_DIR 40187
- //-----------------------------------------------------------------------------------------------
- #include <windows.h>
- #include "../gen_ml/ml.h"
- #include "../winamp/wa_ipc.h"
- #include "../winamp/ipc_pe.h"
- //-----------------------------------------------------------------------------------------------
- class Winamp2FrontEnd {
- public:
- friend BOOL CALLBACK findVisWndProc(HWND hwnd, LPARAM lParam);
- Winamp2FrontEnd();
- virtual ~Winamp2FrontEnd();
-
- void init(HWND hwndParent);
- const char *getVersion();
- void enqueueFile(const wchar_t *file);
- /*
- WA2_USERBUTTON_PLAY
- WA2_USERBUTTON_PAUSE
- WA2_USERBUTTON_STOP
- WA2_USERBUTTON_NEXT
- WA2_USERBUTTON_PREV
- WA2_USERBUTTONMOD_SHIFT
- WA2_USERBUTTONMOD_CTRL
- */
- void userButton(int button, int modifier);
- int isPlaying(); // 0 (false) or 1 (true)
- int isPaused(); // 0 (false) or 1 (true)
- int isStopped(); // if !isPlaying() and !isStopped() and !isPaused(), we're between tracks
- int getPosition(); // in ms
- int getLength(); // in ms
- int seekTo(int ms); // in millisecond
- void setVolume(int v); // 0 (silence) to 255 (loud)
- int getVolume(); // 0 (silence) to 255 (loud)
- void setPanning(int p); // 0 (left) to 255 (right)
- int getPanning(); // 0 (left) to 255 (right)
- void setShuffle(int shuffle);
- int getShuffle();
- void setRepeat(int repeat);
- int getRepeat();
- void setManualPlaylistAdvance(int manual);
- int getManualPlaylistAdvance();
- /*
- WA2_GETINFO_SAMPLERATE : Samplerate (i.e. 44100)
- WA2_GETINFO_BITRATE : Bitrate (i.e. 128)
- WA2_GETINFO_CHANNELS : Channels (i.e. 2)
- */
- int getInfo(int wa2_getinfo);
- /*
- WA2_EQDATA_FIRSTBAND/LASTBAND (0 to 9) : The 10 bands of EQ data. 0-63 (+20db - -20db)
- WA2_EQDATA_PREAMP : The preamp value. 0-63 (+20db - -20db)
- WA2_EQDATA_ENABLED : Enabled. zero if disabled, nonzero if enabled.
- WA2_EQDATA_AUTO : Autoload. zero if disabled, nonzero if enabled.
- */
- int getEqData(int wa2_eqdata);
- void setEqData(int wa2_eqdata, int val);
- void enableWindows(int enabled);
- int areWindowsEnabled();
- void setWindowsVisible(int visible);
- int areWindowsVisible();
- int isMainWindowVisible();
- void *CanPlay(const wchar_t *);
- bool IsPlaylist(const wchar_t *fn);
- int getCurPlaylistEntry();
- int getPlaylistLength();
- const wchar_t *GetCurrentTitle();
- const wchar_t *GetCurrentFile();
- const wchar_t *getTitle(int plentry);
- const char *getFile(int plentry);
- const wchar_t *getFileW(int plentry);
- void setCurTitle(const wchar_t* new_title);
- void playAudioCD(int cd); // id of cd (0 to 4)
- void openFileDialog(HWND w);
- void openUrlDialog(HWND w);
- void openUrl(const wchar_t *url);
- void openDirectoryDialog(HWND w);
- void ejectPopupMenu();
- void previousPopupMenu();
- void nextPopupMenu();
- void playPopupMenu();
- void pausePopupMenu();
- void stopPopupMenu();
- void setDialogBoxParent(HWND w);
- void updateDialogBoxParent(HWND w);
- /*
- IPC_GETWND_EQ
- IPC_GETWND_PE
- IPC_GETWND_MB
- IPC_GETWND_VIDEO
- */
- HWND getWnd(int wnd);
- int isWindowVisible(intptr_t which);
- void setWindowVisible(intptr_t which, int visible);
- HWND getMediaLibrary();
- void ensureMediaLibraryLoaded();
- int isOnTop();
- void setOnTop(int ontop);
- void toggleOnTop();
- // screen coordinates
- void triggerPopupMenu(int x, int y);
- void triggerEQPresetMenu(int x, int y);
- int triggerFileMenu(int x, int y, int width, int height);
- int triggerPlayMenu(int x, int y, int width, int height);
- int triggerOptionsMenu(int x, int y, int width, int height);
- int triggerWindowsMenu(int x, int y, int width, int height);
- int triggerHelpMenu(int x, int y, int width, int height);
- int triggerPEFileMenu(int x, int y, int width, int height);
- int triggerPEPlaylistMenu(int x, int y, int width, int height);
- int triggerPESortMenu(int x, int y, int width, int height);
- int triggerPEHelpMenu(int x, int y, int width, int height);
- int triggerMLFileMenu(int x, int y, int width, int height);
- int triggerMLViewMenu(int x, int y, int width, int height);
- int triggerMLHelpMenu(int x, int y, int width, int height);
- int triggerPEListOfListsMenu(int x, int y);
-
- HMENU getTopMenu();
- HMENU getPopupMenu();
- int adjustOptionsPopupMenu(int direction);
-
- enum {
- WA2_MAINMENUBAR_FILE = 0,
- WA2_MAINMENUBAR_PLAY = 1,
- WA2_MAINMENUBAR_OPTIONS = 2,
- WA2_MAINMENUBAR_WINDOWS = 3,
- WA2_MAINUMENUBAR_HELP = 4,
- };
- HMENU getMenuBarMenu(int which);
- int adjustFFWindowsMenu(int direction);
- int adjustFFOptionsMenu(int direction);
- HWND getMainWindow();
- void quit();
- char * (*export_sa_get_deprecated)();
- char * (*export_sa_get)(char data[75*2+8]);
- void (*export_sa_setreq)(int);
- int (*export_vu_get)(int channel);
- enum {
- WA2_PLEDITPOPUP_ADD = 0,
- WA2_PLEDITPOPUP_REM = 1,
- WA2_PLEDITPOPUP_SEL = 2,
- WA2_PLEDITPOPUP_MISC = 3,
- WA2_PLEDITPOPUP_LIST = 4,
- };
- void sendPlCmd(int which, int x=0, int y=0, int menu_align_flag=0);
- enum {
- WA2_MBCMD_BACK = 0,
- WA2_MBCMD_FORWARD = 1,
- WA2_MBCMD_STOP = 2,
- WA2_MBCMD_RELOAD = 3,
- WA2_MBPOPUP_MISC = 4,
- };
- void registerGlobalHotkey(const char *name, int msg, int wparam, int lparam, int flags, const char *id);
- #ifdef MINIBROWSER_SUPPORT
- void sendMbCmd(int which, int x=0, int y=0, int menu_align_flag=0);
- #endif
- enum {
- WA2_VIDCMD_FULLSCREEN = 0,
- WA2_VIDCMD_1X = 1,
- WA2_VIDCMD_2X = 2,
- WA2_VIDCMD_LIB = 3,
- WA2_VIDPOPUP_MISC = 4,
- WA2_VIDCMD_EXIT_FS = 5,
- };
- void sendVidCmd(int which, int x=0, int y=0, int menu_align_flag=0);
- int hasVideoSupport();
- int isPlayingVideo();
- int isPlayingVideoFullscreen();
- int isDoubleSize();
- int getTimeDisplayMode();
- void toggleVis();
- int isVisRunning();
- HWND getVisWnd();
- IDropTarget *getDropTarget();
- int getBitrate(); // in kbps
- int getSamplerate(); // in khz
- int getChannels(); // 1 mono, 2 stereo ...
- int isValidEmbedWndState(embedWindowState *ws);
- int PE_getNumItems();
- fileinfo2 *PE_getFileTitle(int index);
- fileinfo2W *PE_getFileTitleW(int index);
- int PE_getCurrentIndex();
- void PE_setCurrentIndex(int i);
- void switchSkin(const wchar_t *skinname);
- void visNext();
- void visPrev();
- void visRandom(int set);
- void pollVisRandom();
- void visFullscreen();
- void visConfig();
- void visMenu();
- void setIdealVideoSize(int w, int h) { video_ideal_width = w; video_ideal_height = h; }
- void getIdealVideoSize(int *w, int *h);
- int getStopOnVideoClose();
- void setStopOnVideoClose(int stop);
- int GetVideoResize();
- void SetVideoResize(int stop);
- virtual int isVis(HWND hwnd); // checks children too
- HWND getPreferencesWindow();
- void setPlEditWidthHeight(int width, int height);
- HINSTANCE getLanguagePackInstance();
- void openTrackInfo();
- const char *getOutputPlugin();
- void setDrawBorders(int d);
- void disableSkinnedCursors(int disable);
- int getMetaData(const wchar_t *filename, const wchar_t *name, wchar_t *data, int data_len);
- void GetFileInfo(const wchar_t *filename, wchar_t *title, int titleCch, int *length);
- void invalidateCache();
- const char *getVideoInfoString();
- void playFile(const wchar_t *file);
- void rewind5s();
- void forward5s();
- void endOfPlaylist();
- void startOfPlaylist();
- void stopWithFade();
- void stopAfterCurrent();
- void clearPlaylist();
- int isWindowShade(int wnd);
- int getCurTrackRating();
- void setCurTrackRating(int rating);
- int isExitEnabled();
- int pushExitDisabled();
- int popExitDisabled();
- int DownloadFile(const char *url, const wchar_t *destfilepath = L"", bool addToMl = true, bool notifyDownloadsList = true);
- void getDownloadPath(wchar_t path2store[MAX_PATH]);
- void setDownloadPath(const wchar_t * path2store);
- bool GetAlbumArt(const wchar_t *filename);
- bool IsWinampPro();
- private:
- void setFoundVis() { foundvis = 1; }
- char *m_version;
- HWND hwnd_winamp;
- HWND hwnd_playlist;
- int foundvis;
- int enabled;
- int visible;
- int video_ideal_width;
- int video_ideal_height;
- DWORD cached_length_time;
- int got_length_cache;
- int cached_length;
- DWORD cached_pos_time;
- int got_pos_cache;
- int cached_pos;
- int saved_video,
- #ifdef MINIBROWSER_SUPPORT
- saved_mb,
- #endif
- saved_pe, saved_eq, saved_main;
- };
- //-----------------------------------------------------------------------------------------------
- extern Winamp2FrontEnd wa2;
- BOOL DoTrackPopup(HMENU hMenu, UINT fuFlags, int x, int y, HWND hwnd);
- #endif
|