1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
|
/**********************************************************************
Audacity: A Digital Audio Editor
ExportMP3.h
Dominic Mazzoni
**********************************************************************/
#ifndef __AUDACITY_EXPORTMP3__
#define __AUDACITY_EXPORTMP3__
#include <wx/string.h>
class AudacityProject;
class MP3Exporter {
public:
MP3Exporter();
virtual wxString GetLibraryName() = 0;
virtual wxString GetLibraryMessage() = 0;
virtual wxString GetLibraryTypeString() = 0;
virtual bool FindLibrary(wxWindow *parent);
virtual bool LoadLibrary() = 0;
virtual bool ValidLibraryLoaded() = 0;
virtual const char *GetLibraryVersion() = 0;
/* returns the number of samples PER CHANNEL to send for each call to EncodeBuffer */
virtual int InitializeStream(int channels, int sampleRate) = 0;
/* In bytes. must be called AFTER InitializeStream */
virtual int GetOutBufferSize() = 0;
/* returns the number of bytes written. input is interleaved if stereo*/
virtual int EncodeBuffer(short int inbuffer[], unsigned char outbuffer[]) = 0;
virtual int EncodeRemainder(short int inbuffer[], int nSamples,
unsigned char outbuffer[]) = 0;
virtual int FinishStream(unsigned char outbuffer[]) = 0;
virtual void CancelEncoding() = 0;
/* The number of different quality settings */
virtual int GetQualityVariance() = 0;
/* These global settings keep state over the life of the object */
virtual int GetConfigurationCaps() = 0;
virtual void SetBitrate(int rate) = 0;
virtual int GetBitrate() = 0;
virtual void SetQuality(int quality) = 0;
virtual int GetQuality() = 0;
virtual ~MP3Exporter() { };
protected:
wxString mLibPath;
};
#define MP3CONFIG_BITRATE 0x00000001
#define MP3CONFIG_QUALITY 0x00000002
MP3Exporter *GetMP3Exporter();
bool ExportMP3(AudacityProject *project,
bool stereo, wxString fName,
bool selectionOnly, double t0, double t1);
#endif
|