winamp/Src/Plugins/General/gen_ml/main.h
2024-09-24 14:54:57 +02:00

142 lines
4.1 KiB
C++

#ifndef _MAIN_H
#define _MAIN_H
#include <windows.h>
#include <windowsx.h>
#include <commctrl.h>
#include "../winamp/wa_dlg.h"
#include "../winamp/wa_ipc.h"
#include "./itemlist.h"
#include "./config.h"
#include "../winamp/gen.h"
#include "../Agave/Config/ifc_configitem.h"
#define PLUGIN_VERSION 0x0378
#include "./ml.h"
#include "./skinning.h"
#include "../nu/trace.h"
#define WA_MENUITEM_ID 23123
#define WINAMP_VIDEO_TVBUTTON 40338 // we hook this =)
#define WINAMP_LIGHTNING_CLICK 40339 // this three
#define WINAMP_NEXT_WINDOW 40063
#define WINAMP_SHOWLIBRARY 40379
#define WINAMP_CLOSELIBRARY 40380
#define CSTR_INVARIANT MAKELCID(MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US), SORT_DEFAULT)
#define MSGRESULT(__hwnd, __result) { SetWindowLongPtrW((__hwnd), DWLP_MSGRESULT, ((LONGX86)(LONG_PTR)(__result))); return TRUE; }
#ifndef LONGX86
#ifdef _WIN64
#define LONGX86 LONG_PTR
#else /*_WIN64*/
#define LONGX86 LONG
#endif /*_WIN64*/
#endif // LONGX86
BOOL FlickerFixWindow(HWND hwnd, INT mode);
extern "C" winampGeneralPurposePlugin plugin;
extern "C" int getFileInfo(const char *filename, const char *metadata, char *dest, int len);
extern LARGE_INTEGER freq;
extern int profile;
extern HCURSOR hDragNDropCursor;
extern wchar_t WINAMP_INI[MAX_PATH], WINAMP_INI_DIR[MAX_PATH];
extern wchar_t pluginPath[];
extern C_Config *g_config;
extern HMENU g_context_menus;
extern HWND g_PEWindow, g_hwnd, prefsWnd;
extern int g_safeMode, sneak;
extern int config_use_ff_scrollbars;
extern int config_use_alternate_colors;
extern C_Config *g_view_metaconf;
void main_playItemRecordList (itemRecordList *obj, int enqueue, int startplaying=1);
void main_playItemRecordListW(itemRecordListW *obj, int enqueue, int startplaying=1);
int handleDragDropMove(HWND hwndDlg, int type, POINT p, int do_cursors);
void MLVisibleChanged(BOOL fVisible);
INT MediaLibrary_TrackPopupEx(HMENU hMenu, UINT fuFlags, INT x, INT y, HWND hwnd, LPTPMPARAMS lptpm, HMLIMGLST hmlil,
INT width, UINT skinStyle, MENUCUSTOMIZEPROC customProc, ULONG_PTR customParam);
INT MediaLibrary_TrackPopup(HMENU hMenu, UINT fuFlags, INT x, INT y, HWND hwnd);
HANDLE MediaLibrary_InitSkinnedPopupHook(HWND hwnd, HMLIMGLST hmlil, INT width, UINT skinStyle,
MENUCUSTOMIZEPROC customProc, ULONG_PTR customParam);
BOOL
MediaLibrary_OpenUrl(HWND ownerWindow, const wchar_t *url, BOOL forceExternal);
BOOL
MediaLibrary_OpenHelpUrl(const wchar_t *helpUrl);
/*
//gracenote.cpp
void gracenoteInit();
int gracenoteQueryFile(const char *filename);
void gracenoteCancelRequest();
int gracenoteDoTimerStuff();
void gracenoteSetValues(char *artist, char *album, char *title);
char *gracenoteGetTuid();
int gracenoteIsWorking();
*/
//listheader.cpp
INT_PTR handleListViewHeaderMsgs(HWND hwndDlg,
HWND headerWnd,
HWND listWnd,
UINT uMsg,
WPARAM wParam,
LPARAM lParam,
BOOL sortShow,
BOOL sortAscending,
int sortIndex);
INT_PTR handleListViewHeaderPaintMsgs(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
//plugin.cpp
void loadMlPlugins();
void unloadMlPlugins();
INT_PTR pluginHandleIpcMessage(HWND hwndML, int msg, INT_PTR param);
INT_PTR plugin_SendMessage(int message_type, INT_PTR param1, INT_PTR param2, INT_PTR param3);
INT_PTR CALLBACK PluginsProc(HWND hwndDlg, UINT uMsg, WPARAM wParam,LPARAM lParam);
//prefs.cpp
INT_PTR CALLBACK PrefsProc(HWND hwndDlg, UINT uMsg, WPARAM wParam,LPARAM lParam);
void refreshPrefs(INT_PTR screen);
void openPrefs(INT_PTR screen); //-1 for default
void FixAmps(char *str, size_t len);
LPWSTR FixAmpsW(LPWSTR pszText, INT cchMaxText);
//view_devices.cpp
INT_PTR CALLBACK view_devicesDialogProc(HWND hwndDlg, UINT uMsg, WPARAM wParam,LPARAM lParam);
// webinfo_dlg
HWND CreateWebInfoWindow(HWND hwndParent, UINT uMsgQuery, INT x, INT y, INT cx, INT cy, INT ctrlId);
extern int winampVersion;
void toggleVisible(int closecb = 0);
bool IsVisible();
void myOpenURLWithFallback(HWND hwnd, wchar_t *loc, wchar_t *fallbackLoc);
bool IsVista();
void SkinnedScrollWnd_Init();
void SkinnedScrollWnd_Quit();
class ifc_configitem;
extern ifc_configitem *ieDisableSEH;
#endif