Rivendellaudio/lib/rdsettings.h
Fred Gleason 8d70a79387 2015-08-29 Fred Gleason <fredg@paravelsystems.com>
* Added an 'RDAudioConvert::Stage3Pcm24()' method in
	'lib/rdaudioconvert.cpp' and 'lib/rdaudioconvert.h'.
	* Added a 'Format::Pcm24' value to the 'RDSettings::Format'
	enumeration in 'lib/rdsettings.h'.
	* Modified the 'RDAudioConvert' class to support generating PCM24
	output in 'lib/rdaudioconvert.cpp' and 'lib/rdaudioconvert.h'.
	* Modified the 'RDPlayStream' class to support playing PCM24
	data in 'rdhpi/rdplaystream.cpp'.
	* Modified the 'RDRecordStream' class to support capturing PCM24
	data in 'rdhpi/rdrecordstream.cpp'.
	* Added an 'audio_peaks_test' harness in 'tests/audio_peaks_test.cpp'
	and 'tests/audio_peaks_test.h'.
	* Added 'PCM24' to the list of available formats in
	'rdadmin/edit_rdlibrary.cpp' and 'rdadmin/edit_rdlibrary.h'.
	* Added 'PCM24' to the list of available formats in
	'rdadmin/edit_decks.cpp'.
	* Added PCM24 support for file importation in
	'web/rdxport/import.cpp'.
	* Added an 'RDCae::Pcm24' value to the 'RDCae::AudioCoding
	enumeration in 'lib/rdcae.h'.
2015-08-30 07:49:44 -04:00

78 lines
2.3 KiB
C++

// rdsettings.h
//
// Audio Format Settings
//
// (C) Copyright 2002-2015 Fred Gleason <fredg@paravelsystems.com>
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License version 2 as
// published by the Free Software Foundation.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public
// License along with this program; if not, write to the Free Software
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
//
#ifndef RDSETTINGS_H
#define RDSETTINGS_H
#include <qstring.h>
class RDSettings
{
public:
enum Format {Pcm16=0,MpegL1=1,MpegL2=2,MpegL3=3,Flac=4,OggVorbis=5,
MpegL2Wav=6,Pcm24=7};
RDSettings();
RDSettings::Format format() const;
void setFormat(Format format);
QString formatName() const;
void setFormatName(const QString &str);
unsigned channels() const;
void setChannels(unsigned channels);
unsigned sampleRate() const;
void setSampleRate(unsigned rate);
unsigned layer() const;
void setLayer(unsigned layer);
unsigned bitRate() const;
void setBitRate(unsigned rate);
unsigned quality() const;
void setQuality(unsigned qual);
int normalizationLevel() const;
void setNormalizationLevel(int level);
int autotrimLevel() const;
void setAutotrimLevel(int level);
QString description();
QString customCommandLine() const;
void setCustomCommandLine(const QString &str);
QString resolvedCustomCommandLine(const QString &destfile);
static QString pathName(const QString &stationname,QString pathname,
RDSettings::Format fmt);
static QString defaultExtension(const QString &stationname,
RDSettings::Format fmt);
static unsigned bytesPerSec(const QString &stationname,
RDSettings::Format fmt,unsigned quality);
void clear();
private:
Format set_format;
QString set_format_name;
unsigned set_channels;
unsigned set_sample_rate;
unsigned set_layer;
unsigned set_bit_rate;
unsigned set_quality;
int set_normalization_level;
int set_autotrim_level;
QString set_custom_command_line;
};
#endif