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 68 69 70 71 72 73
|
/**********************************************************************
Audacity: A Digital Audio Editor
ExportUtils.h
Dominic Mazzoni
Vitaly Sverchinsky split from ExportPlugin.h
**********************************************************************/
#pragma once
#include "ExportTypes.h"
#include "ExportPlugin.h"
#include <functional>
class AudacityProject;
class TrackList;
class WaveTrack;
template <typename TrackType> struct TrackIterRange;
enum class AudiocomTrace
{
ignore,
ShareAudioButton,
ShareAudioMenu,
ShareAudioExportMenu,
ShareAudioExportExtraMenu,
SaveToCloudMenu,
SaveProjectSaveToCloudMenu, // user chose "Save Project" and then saw the
// dialog and chose "Save to Cloud"
PrefsPanel, // The Cloud preference panel also has a "Link Account" button
ProjectOpenedAndUploadResumed,
UpdateCloudAudioPreviewMenu,
LinkAudiocomAccountHelpMenu,
OpenFromCloudMenu,
TaskService,
};
class IMPORT_EXPORT_API ExportUtils final
{
public:
static TrackIterRange<const WaveTrack> FindExportWaveTracks(const TrackList& tracks, bool selectedOnly);
static bool HasSelectedAudio(const AudacityProject& project);
static ExportProcessor::Parameters ParametersFromEditor(const ExportOptionsEditor& editor);
enum class ExportHookResult
{
Handled,
Continue,
Cancel,
};
using ExportHook = std::function<ExportHookResult(
AudacityProject&, const FileExtension&,
AudiocomTrace, bool)>;
using Priority = unsigned;
static constexpr Priority DEFAULT_EXPORT_HOOK_PRIORITY = 0;
static void RegisterExportHook(ExportHook hook, Priority = DEFAULT_EXPORT_HOOK_PRIORITY);
static void PerformInteractiveExport(
AudacityProject& project, const FileExtension& format,
AudiocomTrace trace, bool selectedOnly);
};
|