aboutsummaryrefslogtreecommitdiff
path: root/Src/gracenote/CDDBPluginWorkOrderManager.h
diff options
context:
space:
mode:
authorJef <jef@targetspot.com>2024-09-24 08:54:57 -0400
committerJef <jef@targetspot.com>2024-09-24 08:54:57 -0400
commit20d28e80a5c861a9d5f449ea911ab75b4f37ad0d (patch)
tree12f17f78986871dd2cfb0a56e5e93b545c1ae0d0 /Src/gracenote/CDDBPluginWorkOrderManager.h
parent537bcbc86291b32fc04ae4133ce4d7cac8ebe9a7 (diff)
downloadwinamp-20d28e80a5c861a9d5f449ea911ab75b4f37ad0d.tar.gz
Initial community commit
Diffstat (limited to 'Src/gracenote/CDDBPluginWorkOrderManager.h')
-rw-r--r--Src/gracenote/CDDBPluginWorkOrderManager.h90
1 files changed, 90 insertions, 0 deletions
diff --git a/Src/gracenote/CDDBPluginWorkOrderManager.h b/Src/gracenote/CDDBPluginWorkOrderManager.h
new file mode 100644
index 00000000..4a2d9e3f
--- /dev/null
+++ b/Src/gracenote/CDDBPluginWorkOrderManager.h
@@ -0,0 +1,90 @@
+#ifndef CDDBPLUGIN_WORKORDERMGR_H
+#define CDDBPLUGIN_WORKORDERMGR_H
+
+// sig gen headers
+#include "CDDBPlugInBase.h"
+
+#define CDDBMODULE_WORKORDERMGR_IF_NAME "workordermanagerModuleID"
+#define CDDBMODULE_WORKORDERMGR 0x10000
+
+#define CDDBMODULE_QUERY_INTERFACE_NAME "CDDBModuleQueryInterface"
+
+// supported interfaces
+#define WORK_ORDER_MANAGER_BASE_INTERFACE "CDDBModuleInterface"
+#define WORK_ORDER_MANAGER_INTERFACE "workordermanager"
+#define WORK_ORDER_MANAGER_INTERFACE2 "workordermanager2"
+
+#ifndef CDDB_PLUGIN_SIGGEN_H
+
+typedef enum
+{
+ SG_NoError = 0,
+ SG_SignatureAcquired = 1,
+ SG_SignatureNotAcquired = 2,
+ SG_UnsupportedFormat = 3,
+ SG_ProcessingError = 4,
+ SG_InitializationError = 5,
+ SG_DeinitializationError = 6,
+ SG_InvalidParamError = 7,
+ SG_InternalError = 8,
+ SG_NotInitializedError = 9,
+ SG_OutOfMemory = 10,
+ SG_NotImplementedError = 11
+}
+SigGenResultCode;
+
+#endif //#ifndef CDDB_PLUGIN_SIGGEN_H
+
+
+//
+//
+//
+#ifndef CDDBMODULEWORKORDERMGR
+#define CDDBMODULEWORKORDERMGR
+
+#define CDDBMODULE_WORKORDER_MGR_VERSION 1
+
+typedef struct WorkOrderInstance* WorkOrderHandle;
+
+typedef struct
+{
+ CDDBModuleInterface base;
+
+ unsigned int version; /* current version is defined by CDDBMODULE_WORKORDER_MGR_VERSION */
+ unsigned int size; /* sizeof(CDDBModuleWorkOrder) */
+ unsigned int flags; /* nothing defined yet */
+
+ int (__stdcall *Initialize)(void* cddbcontrol, char* path);
+ int (__stdcall *Shutdown)(void);
+
+ int (__stdcall *GetSigHandle)(void** handle, void* disc, long track_num);
+ int (__stdcall *WriteSigData)(void* handle, void* data, long size);
+ int (__stdcall *CloseSig)(void* handle);
+ int (__stdcall *AbortSig)(void* handle);
+
+} CDDBModuleWorkOrderManagerInterface;
+
+typedef struct
+{
+ CDDBModuleInterface base;
+
+ /* SetAlwaysGenerate
+ * Description: Enables/disables a Work Order Plugin DLL to always generate
+ * a signature, regardless of work orders.
+ *
+ * Args: dll_filepath - full path and filename of the plugin DLL
+ * for example: (C:\App\Cddb12Tone.dll)
+ * b_always_generate - enable/disable ignoring work orders
+ * for example: (0 or 1)
+ *
+ * Returns: 0 for success or an error.
+ * Failure conditions include:
+ * Invalid argument
+ */
+ int (__stdcall *SetAlwaysGenerate)(char* dll_filepath,long b_always_generate);
+
+} CDDBModuleWorkOrderManagerInterface2;
+
+#endif /* CDDBMODULEWORKORDERMGR */
+
+#endif /* CDDBPLUGIN_WORKORDERMGR_H */