aboutsummaryrefslogtreecommitdiff
path: root/Src/Plugins/Library/ml_online/Main.h
diff options
context:
space:
mode:
Diffstat (limited to 'Src/Plugins/Library/ml_online/Main.h')
-rw-r--r--Src/Plugins/Library/ml_online/Main.h79
1 files changed, 79 insertions, 0 deletions
diff --git a/Src/Plugins/Library/ml_online/Main.h b/Src/Plugins/Library/ml_online/Main.h
new file mode 100644
index 00000000..5b6c887d
--- /dev/null
+++ b/Src/Plugins/Library/ml_online/Main.h
@@ -0,0 +1,79 @@
+#ifndef NULLSOFT_MAINH
+#define NULLSOFT_MAINH
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+#pragma once
+#endif
+
+#include <wtypes.h>
+#include "../../General/gen_ml/ml.h"
+#include "./common.h"
+
+#include <string>
+#include <vector>
+#include "../nu/AutoLock.h"
+
+#define PLUGIN_VERSION_MAJOR 2
+#define PLUGIN_VERSION_MINOR 03
+
+HINSTANCE Plugin_GetInstance(void);
+HWND Plugin_GetWinamp(void);
+HWND Plugin_GetLibrary(void);
+
+class Navigation;
+HRESULT Plugin_GetNavigation(Navigation **instance);
+
+typedef void (CALLBACK *PLUGINUNLOADCALLBACK)(void);
+void Plugin_RegisterUnloadCallback(PLUGINUNLOADCALLBACK callback);
+
+
+extern int winampVersion;
+
+#define MUTEX_T CRITICAL_SECTION
+#define MUTEX_ENTER(n) EnterCriticalSection(&(n))
+#define MUTEX_LEAVE(n) LeaveCriticalSection(&(n))
+#define MUTEX_INIT(n) InitializeCriticalSection(&(n))
+#define MUTEX_DEL(n) DeleteCriticalSection(&(n))
+
+#define FILECACHEVERSION 0x00000001
+typedef struct FileCacheType {
+ INT64 version;
+ INT64 expires;
+ INT64 urllen;
+ INT64 datalen;
+ INT64 resv1; // Future use, older versions MUST ignore
+ INT64 resv2; // Future use, older versions MUST ignore
+ INT64 resv3; // Future use, older versions MUST ignore
+ INT64 resv4; // Future use, older versions MUST ignore
+} FileCacheType;
+#define FILECACHETYPE FileCacheType
+
+struct url_info
+{
+ std::wstring url;
+ size_t url_wcslen;
+ std::wstring title;
+ int length;
+} ;
+
+struct metadata_info
+{
+ std::wstring url;
+ std::wstring tag;
+ std::wstring metadata;
+} ;
+
+typedef std::vector<url_info> URLMap; // just to save some typing & template code ugliness
+typedef std::vector<metadata_info> MetadataMap;
+
+
+extern URLMap urlMap;
+extern MetadataMap metadataMap;
+
+extern Nullsoft::Utility::LockGuard urlMapGuard;
+
+typedef void (CALLBACK *PLUGINTIMERPROC)(UINT_PTR /*eventId*/, DWORD /*elapsedMs*/, ULONG_PTR /*data*/);
+UINT_PTR Plugin_SetTimer(UINT elapseMs, PLUGINTIMERPROC callback, ULONG_PTR data);
+void Plugin_KillTimer(UINT_PTR eventId);
+
+#endif \ No newline at end of file