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
|
/**********************************************************************
Audacity: A Digital Audio Editor
FFmpegPresets.h
Audacity(R) is copyright (c) 1999-2010 Audacity Team.
License: GPL v2 or later. See License.txt.
LRN
Vitaly Sverchinsky split from ExportFFmpegDialogs.h
**********************************************************************/
#pragma once
#include <unordered_map>
#include "XMLTagHandler.h"
class FFmpegPreset
{
public:
FFmpegPreset();
~FFmpegPreset();
wxString mPresetName;
wxArrayString mControlState;
};
using FFmpegPresetMap = std::unordered_map<wxString, FFmpegPreset>;
class ExportFFmpegOptions;
class FFmpegPresets final : XMLTagHandler
{
public:
FFmpegPresets();
~FFmpegPresets() override;
void GetPresetList(wxArrayString &list);
void LoadPreset(ExportFFmpegOptions *parent, wxString &name);
bool SavePreset(ExportFFmpegOptions *parent, wxString &name);
void DeletePreset(wxString &name);
bool OverwriteIsOk( wxString &name );
FFmpegPreset *FindPreset(wxString &name);
void ImportPresets(wxString &filename);
void ExportPresets(wxString &filename);
bool HandleXMLTag(const std::string_view& tag, const AttributesList &attrs) override;
XMLTagHandler *HandleXMLChild(const std::string_view& tag) override;
void WriteXMLHeader(XMLWriter &xmlFile) const;
void WriteXML(XMLWriter &xmlFile) const;
private:
FFmpegPresetMap mPresets;
FFmpegPreset *mPreset; // valid during XML parsing only
bool mAbortImport; // tells importer to ignore the rest of the import
};
|