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

51 lines
1 KiB
C

#ifndef CDDB_PLUGIN_BASE_H
#define CDDB_PLUGIN_BASE_H
// Version of module interface
#define CDDBMODULE_VERSION 1
// Module Categories
// modules need to set this approprately to tell the manager what services it provides
#define CDDBMODULE_DECODER 0x10
#define CDDBMODULE_DECODERINFO 0x20
#define CDDBMODULE_ENCODER 0x40
#define CDDBMODULE_SIGNATURE 0x80
#define CDDBMODULE_FILEINFO 0x100
#define CDDBMODULE_SECURITY 0x200
//
// base module type
// all modules derive from this type
//
#ifndef CDDBMODULEINTERFACE
#define CDDBMODULEINTERFACE
typedef struct
{
void *handle;
char *moduleID;
int version;
int categories;
int initialized;
int (__stdcall *Init)(void*);
int (__stdcall *Deinit)();
} CDDBModuleInterface;
#endif
// entry point function type
typedef CDDBModuleInterface* (__cdecl *CDDBModuleQueryInterfaceFunc)(const char* lpszInterface);
//
// internal module handle
//
typedef struct
{
void *handle;
int initialized;
CDDBModuleInterface *baseInterface;
} CDDBModule;
#endif /* CDDB_PLUGIN_BASE_H */