1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- #include "main.h"
- #include "Process.h"
- int ProcessReplayGain::Open(int _mode)
- {
- mode=_mode;
- if (mode != RG_INDIVIDUAL_TRACKS
- && mode != RG_ALBUM)
- return RG_MODE_NOT_SUPPORTED;
- context=CreateRG();
- if (!context)
- return RG_FAILURE;
- StartRG(context);
- return RG_SUCCESS;
- }
- int ProcessReplayGain::ProcessTrack(const wchar_t *filename)
- {
- int killSwitch=0;
- RGWorkFile workFile(filename);
-
- CalculateRG(context, workFile.filename, workFile.track_gain, workFile.track_peak, 0, &killSwitch, albumPeak);
- queue.push_back(workFile);
- return RG_SUCCESS;
- }
- int ProcessReplayGain::Write()
- {
- if (mode == RG_ALBUM)
- {
- wchar_t album_gain[64]=L"", album_peak[64]=L"";
- CalculateAlbumRG(context, album_gain, album_peak, albumPeak);
- CopyAlbumData(queue, album_gain, album_peak);
- }
- WriteAlbum(queue);
- return RG_SUCCESS;
- }
- void ProcessReplayGain::Close()
- {
- DestroyRG(context);
- }
- #define CBCLASS ProcessReplayGain
- START_DISPATCH;
- CB(OBJ_REPLAYGAIN_OPEN, Open)
- CB(OBJ_REPLAYGAIN_PROCESSTRACK, ProcessTrack)
- CB(OBJ_REPLAYGAIN_WRITE, Write)
- VCB(OBJ_REPLAYGAIN_CLOSE,Close)
- END_DISPATCH;
|