winamp/Src/gracenote/CDDBPluginWorkOrderManager.h
2024-09-24 14:54:57 +02:00

90 lines
2.4 KiB
C

#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 */