Audacity 3.2.0
Public Member Functions | Private Member Functions | Private Attributes | List of all members
anonymous_namespace{ExportWavPack.cpp}::ExportOptionsWavPackEditor Class Referencefinal
Inheritance diagram for anonymous_namespace{ExportWavPack.cpp}::ExportOptionsWavPackEditor:
[legend]
Collaboration diagram for anonymous_namespace{ExportWavPack.cpp}::ExportOptionsWavPackEditor:
[legend]

Public Member Functions

 ExportOptionsWavPackEditor (Listener *listener)
 
int GetOptionsCount () const override
 
bool GetOption (int index, ExportOption &option) const override
 
bool GetValue (ExportOptionID id, ExportValue &value) const override
 
bool SetValue (ExportOptionID id, const ExportValue &value) override
 
SampleRateList GetSampleRateList () const override
 
void Load (const audacity::BasicSettings &config) override
 
void Store (audacity::BasicSettings &config) const override
 
- Public Member Functions inherited from ExportOptionsEditor
virtual ~ExportOptionsEditor ()
 
virtual int GetOptionsCount () const =0
 
virtual bool GetOption (int index, ExportOption &option) const =0
 
virtual bool GetValue (ExportOptionID id, ExportValue &value) const =0
 
virtual bool SetValue (ExportOptionID id, const ExportValue &value)=0
 
virtual SampleRateList GetSampleRateList () const =0
 
virtual void Store (audacity::BasicSettings &settings) const =0
 
virtual void Load (const audacity::BasicSettings &config)=0
 

Private Member Functions

void OnHybridModeChange (bool hybridMode)
 

Private Attributes

ListenermListener {nullptr}
 
std::vector< ExportOptionmOptions = ExportWavPackOptions
 
std::unordered_map< ExportOptionID, ExportValuemValues
 

Additional Inherited Members

- Public Types inherited from ExportOptionsEditor
using SampleRateList = std::vector< int >
 

Detailed Description

Definition at line 113 of file ExportWavPack.cpp.

Constructor & Destructor Documentation

◆ ExportOptionsWavPackEditor()

anonymous_namespace{ExportWavPack.cpp}::ExportOptionsWavPackEditor::ExportOptionsWavPackEditor ( Listener listener)
inline

Definition at line 120 of file ExportWavPack.cpp.

121 : mListener(listener)
122 {
123 for(const auto& option : mOptions)
124 mValues[option.id] = option.defaultValue;
125 }
std::unordered_map< ExportOptionID, ExportValue > mValues

Member Function Documentation

◆ GetOption()

bool anonymous_namespace{ExportWavPack.cpp}::ExportOptionsWavPackEditor::GetOption ( int  index,
ExportOption option 
) const
inlineoverridevirtual

Implements ExportOptionsEditor.

Definition at line 132 of file ExportWavPack.cpp.

133 {
134 if(index >= 0 && index < mOptions.size())
135 {
136 option = mOptions[index];
137 return true;
138 }
139 return false;
140 }

◆ GetOptionsCount()

int anonymous_namespace{ExportWavPack.cpp}::ExportOptionsWavPackEditor::GetOptionsCount ( ) const
inlineoverridevirtual

Implements ExportOptionsEditor.

Definition at line 127 of file ExportWavPack.cpp.

128 {
129 return static_cast<int>(mOptions.size());
130 }

◆ GetSampleRateList()

SampleRateList anonymous_namespace{ExportWavPack.cpp}::ExportOptionsWavPackEditor::GetSampleRateList ( ) const
inlineoverridevirtual

Implements ExportOptionsEditor.

Definition at line 175 of file ExportWavPack.cpp.

176 {
177 return {};
178 }

◆ GetValue()

bool anonymous_namespace{ExportWavPack.cpp}::ExportOptionsWavPackEditor::GetValue ( ExportOptionID  id,
ExportValue value 
) const
inlineoverride

Definition at line 142 of file ExportWavPack.cpp.

143 {
144 const auto it = mValues.find(id);
145 if(it != mValues.end())
146 {
147 value = it->second;
148 return true;
149 }
150 return false;
151 }

◆ Load()

void anonymous_namespace{ExportWavPack.cpp}::ExportOptionsWavPackEditor::Load ( const audacity::BasicSettings config)
inlineoverridevirtual

Implements ExportOptionsEditor.

Definition at line 180 of file ExportWavPack.cpp.

181 {
182 auto quality = std::get_if<int>(&mValues[OptionIDQuality]);
183 auto bitDepth = std::get_if<int>(&mValues[OptionIDBitDepth]);
184 auto hybridMode = std::get_if<bool>(&mValues[OptionIDHybridMode]);
185 auto createCorrection = std::get_if<bool>(&mValues[OptionIDCreateCorrection]);
186 auto bitRate = std::get_if<int>(&mValues[OptionIDBitRate]);
187
188 config.Read(L"/FileFormats/WavPackEncodeQuality", quality);
189 config.Read(L"/FileFormats/WavPackBitDepth", bitDepth);
190 config.Read(L"/FileFormats/WavPackHybridMode", hybridMode);
191 config.Read(L"/FileFormats/WavPackCreateCorrectionFile", createCorrection);
192 config.Read(L"/FileFormats/WavPackBitrate", bitRate);
193
194 OnHybridModeChange(*hybridMode);
195 }
virtual bool Read(const wxString &key, bool *value) const =0

References anonymous_namespace{ExportWavPack.cpp}::OptionIDBitDepth, anonymous_namespace{ExportWavPack.cpp}::OptionIDBitRate, anonymous_namespace{ExportWavPack.cpp}::OptionIDCreateCorrection, anonymous_namespace{ExportWavPack.cpp}::OptionIDHybridMode, anonymous_namespace{ExportWavPack.cpp}::OptionIDQuality, and audacity::BasicSettings::Read().

Here is the call graph for this function:

◆ OnHybridModeChange()

void anonymous_namespace{ExportWavPack.cpp}::ExportOptionsWavPackEditor::OnHybridModeChange ( bool  hybridMode)
inlineprivate

Definition at line 221 of file ExportWavPack.cpp.

222 {
223 if(hybridMode)
224 {
225 mOptions[OptionIDCreateCorrection].flags &= ~ExportOption::Flags::ReadOnly;
226 mOptions[OptionIDBitRate].flags &= ~ExportOption::Flags::ReadOnly;
227
228 } else {
229 mOptions[OptionIDCreateCorrection].flags |= ExportOption::Flags::ReadOnly;
230 mOptions[OptionIDBitRate].flags |= ExportOption::Flags::ReadOnly;
231 }
232 }
A type that provides a description of an exporting option. Isn't allowed to change except non-type re...
Definition: ExportTypes.h:43

References ExportOption::flags, anonymous_namespace{ExportWavPack.cpp}::OptionIDBitRate, and anonymous_namespace{ExportWavPack.cpp}::OptionIDCreateCorrection.

◆ SetValue()

bool anonymous_namespace{ExportWavPack.cpp}::ExportOptionsWavPackEditor::SetValue ( ExportOptionID  id,
const ExportValue value 
)
inlineoverride

Definition at line 153 of file ExportWavPack.cpp.

154 {
155 auto it = mValues.find(id);
156 if(it == mValues.end() || value.index() != it->second.index())
157 return false;
158
159 it->second = value;
160 if(id == OptionIDHybridMode)
161 {
162 OnHybridModeChange(*std::get_if<bool>(&value));
163
164 if(mListener)
165 {
170 }
171 }
172 return true;
173 }
virtual void OnExportOptionChangeEnd()=0
Called after OnExportOptionChange
virtual void OnExportOptionChangeBegin()=0
Called before OnExportOptionChange
virtual void OnExportOptionChange(const ExportOption &option)=0
Called when option change.

References anonymous_namespace{ExportWavPack.cpp}::OptionIDBitRate, anonymous_namespace{ExportWavPack.cpp}::OptionIDCreateCorrection, and anonymous_namespace{ExportWavPack.cpp}::OptionIDHybridMode.

◆ Store()

void anonymous_namespace{ExportWavPack.cpp}::ExportOptionsWavPackEditor::Store ( audacity::BasicSettings config) const
inlineoverridevirtual

Implements ExportOptionsEditor.

Definition at line 197 of file ExportWavPack.cpp.

198 {
199 auto it = mValues.find(OptionIDQuality);
200 if(it != mValues.end())
201 config.Write(L"/FileFormats/WavPackEncodeQuality", *std::get_if<int>(&it->second));
202
203 it = mValues.find(OptionIDBitDepth);
204 if(it != mValues.end())
205 config.Write(L"/FileFormats/WavPackBitDepth", *std::get_if<int>(&it->second));
206
207 it = mValues.find(OptionIDHybridMode);
208 if(it != mValues.end())
209 config.Write(L"/FileFormats/WavPackHybridMode", *std::get_if<bool>(&it->second));
210
212 if(it != mValues.end())
213 config.Write(L"/FileFormats/WavPackCreateCorrectionFile", *std::get_if<bool>(&it->second));
214
215 it = mValues.find(OptionIDBitRate);
216 if(it != mValues.end())
217 config.Write(L"/FileFormats/WavPackBitrate", *std::get_if<int>(&it->second));
218 }
virtual bool Write(const wxString &key, bool value)=0

References anonymous_namespace{ExportWavPack.cpp}::OptionIDBitDepth, anonymous_namespace{ExportWavPack.cpp}::OptionIDBitRate, anonymous_namespace{ExportWavPack.cpp}::OptionIDCreateCorrection, anonymous_namespace{ExportWavPack.cpp}::OptionIDHybridMode, anonymous_namespace{ExportWavPack.cpp}::OptionIDQuality, and audacity::BasicSettings::Write().

Here is the call graph for this function:

Member Data Documentation

◆ mListener

Listener* anonymous_namespace{ExportWavPack.cpp}::ExportOptionsWavPackEditor::mListener {nullptr}
private

Definition at line 115 of file ExportWavPack.cpp.

◆ mOptions

std::vector<ExportOption> anonymous_namespace{ExportWavPack.cpp}::ExportOptionsWavPackEditor::mOptions = ExportWavPackOptions
private

Definition at line 116 of file ExportWavPack.cpp.

◆ mValues

std::unordered_map<ExportOptionID, ExportValue> anonymous_namespace{ExportWavPack.cpp}::ExportOptionsWavPackEditor::mValues
private

Definition at line 117 of file ExportWavPack.cpp.


The documentation for this class was generated from the following file: