winamp/Src/Plugins/Library/ml_rg/obj_replaygain.h
2024-09-24 14:54:57 +02:00

63 lines
1.3 KiB
C++

#ifndef NULLSOFT_ML_RG_OBJ_REPLAYGAIN_H
#define NULLSOFT_ML_RG_OBJ_REPLAYGAIN_H
#include <bfc/dispatch.h>
enum
{
RG_SUCCESS = 0,
RG_FAILURE = 1,
RG_MODE_NOT_SUPPORTED=2,
RG_INDIVIDUAL_TRACKS = 0, // use this mode to calculate each track sent individually
RG_ALBUM = 1, // use this mode to treat all tracks sent as belonging to the same album
RG_AUTO = 2, // retrieve tags from the files to determine album info
};
class obj_replaygain : public Dispatchable
{
protected:
obj_replaygain() {}
~obj_replaygain() {}
public:
int Open(int mode);
int ProcessTrack(const wchar_t *filename);
int Write();
void Close();
DISPATCH_CODES
{
OBJ_REPLAYGAIN_OPEN = 10,
OBJ_REPLAYGAIN_PROCESSTRACK = 20,
OBJ_REPLAYGAIN_WRITE = 30,
OBJ_REPLAYGAIN_CLOSE = 40,
};
};
inline int obj_replaygain::Open(int mode)
{
return _call(OBJ_REPLAYGAIN_OPEN, (int)RG_FAILURE, mode);
}
inline int obj_replaygain::ProcessTrack(const wchar_t *filename)
{
return _call(OBJ_REPLAYGAIN_PROCESSTRACK, (int)RG_FAILURE, filename);
}
inline int obj_replaygain::Write()
{
return _call(OBJ_REPLAYGAIN_WRITE, (int)RG_FAILURE);
}
inline void obj_replaygain::Close()
{
_voidcall(OBJ_REPLAYGAIN_CLOSE);
}
// {3A398A1B-D316-4094-993E-27EAEA553D19}
static const GUID RGGUID =
{ 0x3a398a1b, 0xd316, 0x4094, { 0x99, 0x3e, 0x27, 0xea, 0xea, 0x55, 0x3d, 0x19 } };
#endif