Audacity 3.2.0
ProjectFormatExtensionsRegistry.h
Go to the documentation of this file.
1/**********************************************************************
2
3 Audacity: A Digital Audio Editor
4
5 ProjectFormatExtensionsRegistry.h
6
7 Dmitry Vedenko
8
9**********************************************************************/
10
11#pragma once
12
13#include <mutex>
14#include <functional>
15
16#include "ClientData.h"
18
19class AudacityProject;
20
22class PROJECT_API ProjectFormatExtensionsRegistry final
23 : public ClientData::Base
24{
25public:
27
29
31 ProjectFormatVersion GetRequiredVersion(const AudacityProject& project) const;
32
34 struct PROJECT_API Extension final
35 {
37 };
38
39private:
40 void Register(ProjectVersionResolver resolver);
41
42 std::vector<ProjectVersionResolver> mRegisteredExtensions;
43};
Utility ClientData::Site to register hooks into a host class that attach client data.
const auto project
The top-level handle to an Audacity project. It serves as a source of events that other objects can b...
Definition: Project.h:90
The class that allows evaluating the minimum version of Audacity required to support the project.
ProjectFormatVersion(*)(const AudacityProject &) ProjectVersionResolver
std::vector< ProjectVersionResolver > mRegisteredExtensions
Services * Get()
Fetch the global instance, or nullptr if none is yet installed.
Definition: BasicUI.cpp:196
A convenient default parameter for class template Site.
Definition: ClientData.h:29
A struct to register the project extension that requires a different project version.
A structure that holds the project version.