123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- /*
- * StreamEncoderSettings.h
- * -----------------------
- * Purpose: Exporting streamed music files.
- * Notes : none
- * Authors: Joern Heusipp
- * OpenMPT Devs
- * The OpenMPT source code is released under the BSD license. Read LICENSE for more details.
- */
- #pragma once
- #include "openmpt/all/BuildSettings.hpp"
- #include "StreamEncoder.h"
- #include "Settings.h"
- OPENMPT_NAMESPACE_BEGIN
- template<> inline SettingValue ToSettingValue(const Encoder::Mode &val)
- {
- switch(val)
- {
- case Encoder::ModeCBR: return SettingValue(U_("CBR"), "Encoder::Mode"); break;
- case Encoder::ModeABR: return SettingValue(U_("ABR"), "Encoder::Mode"); break;
- case Encoder::ModeVBR: return SettingValue(U_("VBR"), "Encoder::Mode"); break;
- case Encoder::ModeQuality: return SettingValue(U_("Quality"), "Encoder::Mode"); break;
- case Encoder::ModeLossless: return SettingValue(U_("Lossless"), "Encoder::Mode"); break;
- default: return SettingValue(U_("Invalid"), "Encoder::Mode"); break;
- }
- }
- template<> inline Encoder::Mode FromSettingValue(const SettingValue &val)
- {
- ASSERT(val.GetTypeTag() == "Encoder::Mode");
- if(val.as<mpt::ustring>() == U_("")) { return Encoder::ModeInvalid; }
- else if(val.as<mpt::ustring>() == U_("CBR")) { return Encoder::ModeCBR; }
- else if(val.as<mpt::ustring>() == U_("ABR")) { return Encoder::ModeABR; }
- else if(val.as<mpt::ustring>() == U_("VBR")) { return Encoder::ModeVBR; }
- else if(val.as<mpt::ustring>() == U_("Quality")) { return Encoder::ModeQuality; }
- else if(val.as<mpt::ustring>() == U_("Lossless")) { return Encoder::ModeLossless; }
- else { return Encoder::ModeInvalid; }
- }
- template<> inline SettingValue ToSettingValue(const Encoder::Format &val)
- {
- return SettingValue(val.AsInt(), "Encoder::Format");
- }
- template<> inline Encoder::Format FromSettingValue(const SettingValue &val)
- {
- MPT_ASSERT(val.GetTypeTag() == "Encoder::Format");
- return Encoder::Format::FromInt(val.as<int32>());
- }
- struct StoredTags
- {
- Setting<mpt::ustring> artist;
- Setting<mpt::ustring> album;
- Setting<mpt::ustring> trackno;
- Setting<mpt::ustring> year;
- Setting<mpt::ustring> url;
- Setting<mpt::ustring> genre;
- StoredTags(SettingsContainer &conf);
- };
- struct EncoderSettingsConf
- {
- Setting<bool> Cues;
- Setting<bool> Tags;
- Setting<uint32> Samplerate;
- Setting<uint16> Channels;
- Setting<Encoder::Mode> Mode;
- Setting<int> Bitrate;
- Setting<float> Quality;
- Setting<Encoder::Format> Format2;
- Setting<int> Dither;
- EncoderSettingsConf(SettingsContainer &conf, const mpt::ustring &encoderName, bool cues, bool tags, uint32 samplerate, uint16 channels, Encoder::Mode mode, int bitrate, float quality, Encoder::Format format, int dither);
- explicit operator Encoder::Settings() const;
- };
- struct StreamEncoderSettingsConf
- {
- Setting<int32> FLACCompressionLevel;
- Setting<uint32> AUPaddingAlignHint;
- Setting<uint32> MP3ID3v2MinPadding;
- Setting<uint32> MP3ID3v2PaddingAlignHint;
- Setting<bool> MP3ID3v2WriteReplayGainTXXX;
- Setting<int32> MP3LameQuality;
- Setting<bool> MP3LameID3v2UseLame;
- Setting<bool> MP3LameCalculateReplayGain;
- Setting<bool> MP3LameCalculatePeakSample;
- Setting<int32> OpusComplexity;
- StreamEncoderSettingsConf(SettingsContainer &conf, const mpt::ustring §ion);
- explicit operator Encoder::StreamSettings() const;
- };
- OPENMPT_NAMESPACE_END
|