mirror of
https://github.com/cookiengineer/audacity
synced 2025-06-15 15:49:36 +02:00
New library for components
Based off the work of Paul and adapted for Tenacity. Original commit: 54b5f7d12c167f3905e1030648fc21a79f881e9c Co-authored-by: Paul Licameli <paul.licameli@audacityteam.org> Signed-off-by: Panagiotis Vasilopoulos <hello@alwayslivid.com>
This commit is contained in:
parent
eb774a449c
commit
9d189dc3d2
@ -219,41 +219,4 @@ typedef const char *constSamplePtr;
|
|||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
typedef wxString PluginID;
|
typedef wxString PluginID;
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// Supported channel assignments
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
typedef enum
|
|
||||||
{
|
|
||||||
// Use to mark end of list
|
|
||||||
ChannelNameEOL = -1,
|
|
||||||
// The default channel assignment
|
|
||||||
ChannelNameMono,
|
|
||||||
// From this point, the channels follow the 22.2 surround sound format
|
|
||||||
ChannelNameFrontLeft,
|
|
||||||
ChannelNameFrontRight,
|
|
||||||
ChannelNameFrontCenter,
|
|
||||||
ChannelNameLowFrequency1,
|
|
||||||
ChannelNameBackLeft,
|
|
||||||
ChannelNameBackRight,
|
|
||||||
ChannelNameFrontLeftCenter,
|
|
||||||
ChannelNameFrontRightCenter,
|
|
||||||
ChannelNameBackCenter,
|
|
||||||
ChannelNameLowFrequency2,
|
|
||||||
ChannelNameSideLeft,
|
|
||||||
ChannelNameSideRight,
|
|
||||||
ChannelNameTopFrontLeft,
|
|
||||||
ChannelNameTopFrontRight,
|
|
||||||
ChannelNameTopFrontCenter,
|
|
||||||
ChannelNameTopCenter,
|
|
||||||
ChannelNameTopBackLeft,
|
|
||||||
ChannelNameTopBackRight,
|
|
||||||
ChannelNameTopSideLeft,
|
|
||||||
ChannelNameTopSideRight,
|
|
||||||
ChannelNameTopBackCenter,
|
|
||||||
ChannelNameBottomFrontCenter,
|
|
||||||
ChannelNameBottomFrontLeft,
|
|
||||||
ChannelNameBottomFrontRight,
|
|
||||||
} ChannelName, *ChannelNames;
|
|
||||||
|
|
||||||
#endif // __AUDACITY_TYPES_H__
|
#endif // __AUDACITY_TYPES_H__
|
||||||
|
@ -6,6 +6,7 @@ set( LIBRARIES
|
|||||||
lib-string-utils
|
lib-string-utils
|
||||||
lib-strings
|
lib-strings
|
||||||
lib-utility
|
lib-utility
|
||||||
|
lib-components
|
||||||
)
|
)
|
||||||
|
|
||||||
foreach( LIBRARY ${LIBRARIES} )
|
foreach( LIBRARY ${LIBRARIES} )
|
||||||
|
30
libraries/lib-components/CMakeLists.txt
Normal file
30
libraries/lib-components/CMakeLists.txt
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
#[[
|
||||||
|
Various abstract base classes related to modules and plugins.
|
||||||
|
|
||||||
|
ComponentInterfaceSymbol, which pairs an internal identifier string (suitable
|
||||||
|
for storing as a configuration file value) with a user-visible translatable
|
||||||
|
string. It serves to "name" various things.
|
||||||
|
|
||||||
|
CommandParameters, for write and reading key-value pairs to and from strings.
|
||||||
|
]]#
|
||||||
|
|
||||||
|
list( APPEND SOURCES
|
||||||
|
ComponentInterface.cpp
|
||||||
|
ComponentInterface.h
|
||||||
|
ComponentInterfaceSymbol.h
|
||||||
|
ConfigInterface.cpp
|
||||||
|
ConfigInterface.h
|
||||||
|
EffectAutomationParameters.cpp
|
||||||
|
EffectAutomationParameters.h
|
||||||
|
EffectInterface.cpp
|
||||||
|
EffectInterface.h
|
||||||
|
ModuleInterface.cpp
|
||||||
|
ModuleInterface.h
|
||||||
|
PluginInterface.cpp
|
||||||
|
PluginInterface.h
|
||||||
|
)
|
||||||
|
|
||||||
|
audacity_library( lib-components "${SOURCES}"
|
||||||
|
"lib-strings-interface;PRIVATE;wxWidgets::wxWidgets"
|
||||||
|
"" ""
|
||||||
|
)
|
10
libraries/lib-components/ComponentInterface.cpp
Normal file
10
libraries/lib-components/ComponentInterface.cpp
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
/**********************************************************************
|
||||||
|
|
||||||
|
Tenacity
|
||||||
|
|
||||||
|
@file ComponentInterface.cpp
|
||||||
|
|
||||||
|
**********************************************************************/
|
||||||
|
#include "ComponentInterface.h"
|
||||||
|
|
||||||
|
ComponentInterface::~ComponentInterface() = default;
|
@ -1,6 +1,6 @@
|
|||||||
/**********************************************************************
|
/**********************************************************************
|
||||||
|
|
||||||
Audacity: A Digital Audio Editor
|
Tenacity
|
||||||
|
|
||||||
ComponentInterface.h
|
ComponentInterface.h
|
||||||
|
|
||||||
@ -43,7 +43,7 @@
|
|||||||
#define __AUDACITY_COMPONENT_INTERFACE_H__
|
#define __AUDACITY_COMPONENT_INTERFACE_H__
|
||||||
|
|
||||||
#include "Identifier.h"
|
#include "Identifier.h"
|
||||||
#include "tenacity/Types.h"
|
#include "Internat.h"
|
||||||
#include <wx/string.h> // member variables
|
#include <wx/string.h> // member variables
|
||||||
|
|
||||||
class ComponentInterfaceSymbol;
|
class ComponentInterfaceSymbol;
|
||||||
@ -58,10 +58,10 @@ plugins. It is what makes a class a plug-in. Additionally it provides an
|
|||||||
optional parameter definitions function, for those components such as commands,
|
optional parameter definitions function, for those components such as commands,
|
||||||
effects and (soon) preference pagess that define parameters.
|
effects and (soon) preference pagess that define parameters.
|
||||||
********************************************************************************/
|
********************************************************************************/
|
||||||
class TENACITY_DLL_API ComponentInterface /* not final */
|
class COMPONENTS_API ComponentInterface /* not final */
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
virtual ~ComponentInterface() {};
|
virtual ~ComponentInterface();
|
||||||
|
|
||||||
// These should return an untranslated value
|
// These should return an untranslated value
|
||||||
virtual PluginPath GetPath() = 0;
|
virtual PluginPath GetPath() = 0;
|
10
libraries/lib-components/ConfigInterface.cpp
Normal file
10
libraries/lib-components/ConfigInterface.cpp
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
/**********************************************************************
|
||||||
|
|
||||||
|
Tenacity
|
||||||
|
|
||||||
|
@file ConfigInterface.cpp
|
||||||
|
|
||||||
|
**********************************************************************/
|
||||||
|
#include "ConfigInterface.h"
|
||||||
|
|
||||||
|
ConfigClientInterface::~ConfigClientInterface() = default;
|
@ -1,6 +1,6 @@
|
|||||||
/**********************************************************************
|
/**********************************************************************
|
||||||
|
|
||||||
Audacity: A Digital Audio Editor
|
Tenacity
|
||||||
|
|
||||||
ConfigInterface.h
|
ConfigInterface.h
|
||||||
|
|
||||||
@ -53,10 +53,10 @@ differentiates between private and shared config. It should probably be replace
|
|||||||
with a Shuttle.
|
with a Shuttle.
|
||||||
|
|
||||||
*******************************************************************************************/
|
*******************************************************************************************/
|
||||||
class TENACITY_DLL_API ConfigClientInterface /* not final */
|
class COMPONENTS_API ConfigClientInterface /* not final */
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
virtual ~ConfigClientInterface() {};
|
virtual ~ConfigClientInterface();
|
||||||
|
|
||||||
virtual bool HasSharedConfigGroup(const RegistryPath & group) = 0;
|
virtual bool HasSharedConfigGroup(const RegistryPath & group) = 0;
|
||||||
virtual bool GetSharedConfigSubgroups(const RegistryPath & group, RegistryPaths & subgroups) = 0;
|
virtual bool GetSharedConfigSubgroups(const RegistryPath & group, RegistryPaths & subgroups) = 0;
|
10
libraries/lib-components/EffectAutomationParameters.cpp
Normal file
10
libraries/lib-components/EffectAutomationParameters.cpp
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
/**********************************************************************
|
||||||
|
|
||||||
|
Tenacity
|
||||||
|
|
||||||
|
@file EffectAutomationParameters.cpp
|
||||||
|
|
||||||
|
**********************************************************************/
|
||||||
|
#include "EffectAutomationParameters.h"
|
||||||
|
|
||||||
|
CommandParameters::~CommandParameters() = default;
|
@ -1,6 +1,6 @@
|
|||||||
/**********************************************************************
|
/**********************************************************************
|
||||||
|
|
||||||
Audacity: A Digital Audio Editor
|
Tenacity
|
||||||
|
|
||||||
EffectAutomationParameters.h
|
EffectAutomationParameters.h
|
||||||
(defining CommandParameters)
|
(defining CommandParameters)
|
||||||
@ -64,7 +64,7 @@ wxWidget validators, and can create default dialogs. However until that convers
|
|||||||
done, we need this class, and we use a pointer to one from within a Shuttle when interfacing
|
done, we need this class, and we use a pointer to one from within a Shuttle when interfacing
|
||||||
with the code that still uses it.
|
with the code that still uses it.
|
||||||
*/
|
*/
|
||||||
class CommandParameters final : public wxFileConfig
|
class COMPONENTS_API CommandParameters final : public wxFileConfig
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
CommandParameters(const wxString & parms = {})
|
CommandParameters(const wxString & parms = {})
|
||||||
@ -78,9 +78,7 @@ public:
|
|||||||
SetParameters(parms);
|
SetParameters(parms);
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual ~CommandParameters()
|
virtual ~CommandParameters();
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
virtual bool HasGroup(const wxString & strName) const override
|
virtual bool HasGroup(const wxString & strName) const override
|
||||||
{
|
{
|
18
libraries/lib-components/EffectInterface.cpp
Normal file
18
libraries/lib-components/EffectInterface.cpp
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
/**********************************************************************
|
||||||
|
|
||||||
|
Tenacity
|
||||||
|
|
||||||
|
@file EffectInterface.cpp
|
||||||
|
|
||||||
|
**********************************************************************/
|
||||||
|
#include "EffectInterface.h"
|
||||||
|
|
||||||
|
EffectDefinitionInterface::~EffectDefinitionInterface() = default;
|
||||||
|
|
||||||
|
EffectHostInterface::~EffectHostInterface() = default;
|
||||||
|
|
||||||
|
EffectClientInterface::~EffectClientInterface() = default;
|
||||||
|
|
||||||
|
EffectUIHostInterface::~EffectUIHostInterface() = default;
|
||||||
|
|
||||||
|
EffectUIClientInterface::~EffectUIClientInterface() = default;
|
@ -1,6 +1,6 @@
|
|||||||
/**********************************************************************
|
/**********************************************************************
|
||||||
|
|
||||||
Audacity: A Digital Audio Editor
|
Tenacity
|
||||||
|
|
||||||
EffectInterface.h
|
EffectInterface.h
|
||||||
|
|
||||||
@ -44,11 +44,10 @@
|
|||||||
|
|
||||||
#include <functional>
|
#include <functional>
|
||||||
|
|
||||||
#include "Identifier.h"
|
#include "ComponentInterface.h"
|
||||||
#include "tenacity/ComponentInterface.h"
|
|
||||||
#include "ComponentInterfaceSymbol.h"
|
#include "ComponentInterfaceSymbol.h"
|
||||||
#include "tenacity/ConfigInterface.h"
|
#include "ConfigInterface.h"
|
||||||
#include "tenacity/EffectAutomationParameters.h" // for command automation
|
#include "EffectAutomationParameters.h" // for command automation
|
||||||
|
|
||||||
class ShuttleGui;
|
class ShuttleGui;
|
||||||
|
|
||||||
@ -63,6 +62,8 @@ typedef enum EffectType : int
|
|||||||
} EffectType;
|
} EffectType;
|
||||||
|
|
||||||
|
|
||||||
|
using EffectFamilySymbol = ComponentInterfaceSymbol;
|
||||||
|
|
||||||
/*************************************************************************************//**
|
/*************************************************************************************//**
|
||||||
|
|
||||||
\class EffectDefinitionInterface
|
\class EffectDefinitionInterface
|
||||||
@ -71,15 +72,15 @@ typedef enum EffectType : int
|
|||||||
flag-functions for interactivity, play-preview and whether the effect can run without a GUI.
|
flag-functions for interactivity, play-preview and whether the effect can run without a GUI.
|
||||||
|
|
||||||
*******************************************************************************************/
|
*******************************************************************************************/
|
||||||
class TENACITY_DLL_API EffectDefinitionInterface /* not final */ : public ComponentInterface
|
class COMPONENTS_API EffectDefinitionInterface /* not final */ : public ComponentInterface
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
virtual ~EffectDefinitionInterface() {};
|
virtual ~EffectDefinitionInterface();
|
||||||
|
|
||||||
// Type determines how it behaves.
|
// Type determines how it behaves.
|
||||||
virtual EffectType GetType() = 0;
|
virtual EffectType GetType() = 0;
|
||||||
// Classification determines which menu it appears in.
|
// Classification determines which menu it appears in.
|
||||||
virtual EffectType GetClassification() { return GetType();};
|
virtual EffectType GetClassification() { return GetType();}
|
||||||
|
|
||||||
virtual EffectFamilySymbol GetFamily() = 0;
|
virtual EffectFamilySymbol GetFamily() = 0;
|
||||||
|
|
||||||
@ -116,10 +117,10 @@ virtual (abstract) functions to get presets and actually apply the effect. It u
|
|||||||
ConfigClientInterface to add Getters/setters for private and shared configs.
|
ConfigClientInterface to add Getters/setters for private and shared configs.
|
||||||
|
|
||||||
*******************************************************************************************/
|
*******************************************************************************************/
|
||||||
class TENACITY_DLL_API EffectHostInterface /* not final */ : public ConfigClientInterface
|
class COMPONENTS_API EffectHostInterface /* not final */ : public ConfigClientInterface
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
virtual ~EffectHostInterface() {};
|
virtual ~EffectHostInterface();
|
||||||
|
|
||||||
virtual double GetDefaultDuration() = 0;
|
virtual double GetDefaultDuration() = 0;
|
||||||
virtual double GetDuration() = 0;
|
virtual double GetDuration() = 0;
|
||||||
@ -132,6 +133,45 @@ public:
|
|||||||
virtual RegistryPath GetFactoryDefaultsGroup() = 0;
|
virtual RegistryPath GetFactoryDefaultsGroup() = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class sampleCount;
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// Supported channel assignments
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
// Use to mark end of list
|
||||||
|
ChannelNameEOL = -1,
|
||||||
|
// The default channel assignment
|
||||||
|
ChannelNameMono,
|
||||||
|
// From this point, the channels follow the 22.2 surround sound format
|
||||||
|
ChannelNameFrontLeft,
|
||||||
|
ChannelNameFrontRight,
|
||||||
|
ChannelNameFrontCenter,
|
||||||
|
ChannelNameLowFrequency1,
|
||||||
|
ChannelNameBackLeft,
|
||||||
|
ChannelNameBackRight,
|
||||||
|
ChannelNameFrontLeftCenter,
|
||||||
|
ChannelNameFrontRightCenter,
|
||||||
|
ChannelNameBackCenter,
|
||||||
|
ChannelNameLowFrequency2,
|
||||||
|
ChannelNameSideLeft,
|
||||||
|
ChannelNameSideRight,
|
||||||
|
ChannelNameTopFrontLeft,
|
||||||
|
ChannelNameTopFrontRight,
|
||||||
|
ChannelNameTopFrontCenter,
|
||||||
|
ChannelNameTopCenter,
|
||||||
|
ChannelNameTopBackLeft,
|
||||||
|
ChannelNameTopBackRight,
|
||||||
|
ChannelNameTopSideLeft,
|
||||||
|
ChannelNameTopSideRight,
|
||||||
|
ChannelNameTopBackCenter,
|
||||||
|
ChannelNameBottomFrontCenter,
|
||||||
|
ChannelNameBottomFrontLeft,
|
||||||
|
ChannelNameBottomFrontRight,
|
||||||
|
} ChannelName, *ChannelNames;
|
||||||
|
|
||||||
/*************************************************************************************//**
|
/*************************************************************************************//**
|
||||||
|
|
||||||
\class EffectClientInterface
|
\class EffectClientInterface
|
||||||
@ -141,7 +181,7 @@ Effect into a plug-in command. It has functions for realtime that are not part
|
|||||||
AudacityCommand.
|
AudacityCommand.
|
||||||
|
|
||||||
*******************************************************************************************/
|
*******************************************************************************************/
|
||||||
class TENACITY_DLL_API EffectClientInterface /* not final */ : public EffectDefinitionInterface
|
class COMPONENTS_API EffectClientInterface /* not final */ : public EffectDefinitionInterface
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
using EffectDialogFactory = std::function<
|
using EffectDialogFactory = std::function<
|
||||||
@ -149,7 +189,7 @@ public:
|
|||||||
EffectHostInterface*, EffectUIClientInterface* )
|
EffectHostInterface*, EffectUIClientInterface* )
|
||||||
>;
|
>;
|
||||||
|
|
||||||
virtual ~EffectClientInterface() {};
|
virtual ~EffectClientInterface();
|
||||||
|
|
||||||
virtual bool SetHost(EffectHostInterface *host) = 0;
|
virtual bool SetHost(EffectHostInterface *host) = 0;
|
||||||
|
|
||||||
@ -213,10 +253,10 @@ can call SetHostUI passing in a pointer to an EffectUIHostInterface. It contain
|
|||||||
functionality and is provided, apparently, for type checking. Since only EffectUIHost
|
functionality and is provided, apparently, for type checking. Since only EffectUIHost
|
||||||
uses it, EffectUIHost could be used instead.
|
uses it, EffectUIHost could be used instead.
|
||||||
*******************************************************************************************/
|
*******************************************************************************************/
|
||||||
class TENACITY_DLL_API EffectUIHostInterface
|
class COMPONENTS_API EffectUIHostInterface
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
virtual ~EffectUIHostInterface() {};
|
virtual ~EffectUIHostInterface();
|
||||||
};
|
};
|
||||||
|
|
||||||
/*************************************************************************************//**
|
/*************************************************************************************//**
|
||||||
@ -227,10 +267,10 @@ public:
|
|||||||
values. It can import and export presets.
|
values. It can import and export presets.
|
||||||
|
|
||||||
*******************************************************************************************/
|
*******************************************************************************************/
|
||||||
class TENACITY_DLL_API EffectUIClientInterface /* not final */
|
class COMPONENTS_API EffectUIClientInterface /* not final */
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
virtual ~EffectUIClientInterface() {};
|
virtual ~EffectUIClientInterface();
|
||||||
|
|
||||||
virtual void SetHostUI(EffectUIHostInterface *host) = 0;
|
virtual void SetHostUI(EffectUIHostInterface *host) = 0;
|
||||||
virtual bool IsGraphicalUI() = 0;
|
virtual bool IsGraphicalUI() = 0;
|
10
libraries/lib-components/ModuleInterface.cpp
Normal file
10
libraries/lib-components/ModuleInterface.cpp
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
/**********************************************************************
|
||||||
|
|
||||||
|
Tenacity
|
||||||
|
|
||||||
|
@file ModuleInterface.cpp
|
||||||
|
|
||||||
|
**********************************************************************/
|
||||||
|
#include "ModuleInterface.h"
|
||||||
|
|
||||||
|
ModuleInterface::~ModuleInterface() = default;
|
@ -1,6 +1,6 @@
|
|||||||
/**********************************************************************
|
/**********************************************************************
|
||||||
|
|
||||||
Audacity: A Digital Audio Editor
|
Tenacity
|
||||||
|
|
||||||
ModuleInterface.h
|
ModuleInterface.h
|
||||||
|
|
||||||
@ -45,8 +45,8 @@
|
|||||||
#include <functional>
|
#include <functional>
|
||||||
#include <memory>
|
#include <memory>
|
||||||
#include "Identifier.h"
|
#include "Identifier.h"
|
||||||
#include "tenacity/ComponentInterface.h"
|
#include "ComponentInterface.h"
|
||||||
#include "tenacity/PluginInterface.h"
|
#include "PluginInterface.h"
|
||||||
|
|
||||||
// ============================================================================
|
// ============================================================================
|
||||||
//
|
//
|
||||||
@ -68,7 +68,7 @@
|
|||||||
class ModuleInterface /* not final */ : public ComponentInterface
|
class ModuleInterface /* not final */ : public ComponentInterface
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
virtual ~ModuleInterface() {};
|
virtual ~ModuleInterface();
|
||||||
|
|
||||||
// Called immediately after creation to give the instance a chance to
|
// Called immediately after creation to give the instance a chance to
|
||||||
// initialize. Return "true" if initialziation was successful.
|
// initialize. Return "true" if initialziation was successful.
|
10
libraries/lib-components/PluginInterface.cpp
Normal file
10
libraries/lib-components/PluginInterface.cpp
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
/**********************************************************************
|
||||||
|
|
||||||
|
Tenacity
|
||||||
|
|
||||||
|
@file PluginInterface.cpp
|
||||||
|
|
||||||
|
**********************************************************************/
|
||||||
|
#include "PluginInterface.h"
|
||||||
|
|
||||||
|
PluginManagerInterface::~PluginManagerInterface() = default;
|
@ -1,6 +1,6 @@
|
|||||||
/**********************************************************************
|
/**********************************************************************
|
||||||
|
|
||||||
Audacity: A Digital Audio Editor
|
Tenacity
|
||||||
|
|
||||||
PluginInterface.h
|
PluginInterface.h
|
||||||
|
|
||||||
@ -42,17 +42,19 @@
|
|||||||
#ifndef __AUDACITY_PLUGININTERFACE_H__
|
#ifndef __AUDACITY_PLUGININTERFACE_H__
|
||||||
#define __AUDACITY_PLUGININTERFACE_H__
|
#define __AUDACITY_PLUGININTERFACE_H__
|
||||||
|
|
||||||
#include "tenacity/ConfigInterface.h"
|
#include "ConfigInterface.h"
|
||||||
#include "tenacity/EffectInterface.h"
|
#include "EffectInterface.h"
|
||||||
#include "tenacity/ComponentInterface.h"
|
#include "ComponentInterface.h"
|
||||||
|
#include "Identifier.h"
|
||||||
|
|
||||||
class ModuleInterface;
|
class ModuleInterface;
|
||||||
|
using PluginID = wxString;
|
||||||
|
using PluginIDs = wxArrayString;
|
||||||
|
|
||||||
|
class COMPONENTS_API PluginManagerInterface /* not final */
|
||||||
class TENACITY_DLL_API PluginManagerInterface /* not final */
|
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
virtual ~PluginManagerInterface();
|
||||||
|
|
||||||
static const PluginID &DefaultRegistrationCallback(
|
static const PluginID &DefaultRegistrationCallback(
|
||||||
ModuleInterface *provider, ComponentInterface *ident );
|
ModuleInterface *provider, ComponentInterface *ident );
|
@ -14,9 +14,9 @@
|
|||||||
|
|
||||||
#include <wx/defs.h>
|
#include <wx/defs.h>
|
||||||
|
|
||||||
|
#include "ComponentInterface.h" // for ComponentInterfaceSymbol
|
||||||
#include "export/Export.h"
|
#include "export/Export.h"
|
||||||
#include "commands/CommandFlag.h"
|
#include "commands/CommandFlag.h"
|
||||||
#include "tenacity/ComponentInterface.h" // for ComponentInterfaceSymbol
|
|
||||||
|
|
||||||
class wxArrayString;
|
class wxArrayString;
|
||||||
class Effect;
|
class Effect;
|
||||||
|
@ -991,13 +991,7 @@ list( APPEND SOURCES PRIVATE Experimental.cmake )
|
|||||||
# General headers
|
# General headers
|
||||||
# ~~~
|
# ~~~
|
||||||
list( APPEND HEADERS
|
list( APPEND HEADERS
|
||||||
../include/tenacity/EffectInterface.h
|
|
||||||
../include/tenacity/Types.h
|
../include/tenacity/Types.h
|
||||||
../include/tenacity/ConfigInterface.h
|
|
||||||
../include/tenacity/ModuleInterface.h
|
|
||||||
../include/tenacity/PluginInterface.h
|
|
||||||
../include/tenacity/ComponentInterface.h
|
|
||||||
../include/tenacity/EffectAutomationParameters.h
|
|
||||||
)
|
)
|
||||||
|
|
||||||
# ~~~
|
# ~~~
|
||||||
|
@ -16,8 +16,7 @@ Describes shared object that is used to access FFmpeg libraries.
|
|||||||
#if !defined(__AUDACITY_FFMPEG__)
|
#if !defined(__AUDACITY_FFMPEG__)
|
||||||
#define __AUDACITY_FFMPEG__
|
#define __AUDACITY_FFMPEG__
|
||||||
|
|
||||||
|
#include "tenacity/Types.h"
|
||||||
|
|
||||||
#include "widgets/wxPanelWrapper.h" // to inherit
|
#include "widgets/wxPanelWrapper.h" // to inherit
|
||||||
|
|
||||||
#if defined(__WXMSW__)
|
#if defined(__WXMSW__)
|
||||||
|
@ -15,7 +15,7 @@
|
|||||||
#include <wx/defs.h>
|
#include <wx/defs.h>
|
||||||
|
|
||||||
#include "widgets/wxPanelWrapper.h" // to inherit
|
#include "widgets/wxPanelWrapper.h" // to inherit
|
||||||
#include "tenacity/ComponentInterface.h" // member variable
|
#include "ComponentInterface.h" // member variable
|
||||||
|
|
||||||
class wxArrayString;
|
class wxArrayString;
|
||||||
class wxGridEvent;
|
class wxGridEvent;
|
||||||
|
@ -20,7 +20,7 @@ i.e. an alternative to the usual interface, for Audacity.
|
|||||||
|
|
||||||
|
|
||||||
#include "ModuleManager.h"
|
#include "ModuleManager.h"
|
||||||
#include "tenacity/ModuleInterface.h"
|
#include "ModuleInterface.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -32,7 +32,7 @@ i.e. an alternative to the usual interface, for Audacity.
|
|||||||
#include "FileNames.h"
|
#include "FileNames.h"
|
||||||
#include "MemoryX.h"
|
#include "MemoryX.h"
|
||||||
|
|
||||||
#include "tenacity/PluginInterface.h"
|
#include "PluginInterface.h"
|
||||||
|
|
||||||
#ifdef EXPERIMENTAL_MODULE_PREFS
|
#ifdef EXPERIMENTAL_MODULE_PREFS
|
||||||
#include "Prefs.h"
|
#include "Prefs.h"
|
||||||
|
@ -66,7 +66,6 @@ using ModuleInterfaceHandle = std::unique_ptr<
|
|||||||
|
|
||||||
typedef std::map<wxString, ModuleInterfaceHandle> ModuleMap;
|
typedef std::map<wxString, ModuleInterfaceHandle> ModuleMap;
|
||||||
typedef std::map<ModuleInterface *, std::unique_ptr<wxDynamicLibrary>> LibraryMap;
|
typedef std::map<ModuleInterface *, std::unique_ptr<wxDynamicLibrary>> LibraryMap;
|
||||||
using PluginIDs = wxArrayString;
|
|
||||||
|
|
||||||
class TENACITY_DLL_API ModuleManager final
|
class TENACITY_DLL_API ModuleManager final
|
||||||
{
|
{
|
||||||
|
@ -28,7 +28,7 @@ for shared and private configs - which need to move out.
|
|||||||
#include <wx/log.h>
|
#include <wx/log.h>
|
||||||
#include <wx/tokenzr.h>
|
#include <wx/tokenzr.h>
|
||||||
|
|
||||||
#include "tenacity/ModuleInterface.h"
|
#include "ModuleInterface.h"
|
||||||
|
|
||||||
#include "AudacityFileConfig.h"
|
#include "AudacityFileConfig.h"
|
||||||
#include "Internat.h" // for macro XO
|
#include "Internat.h" // for macro XO
|
||||||
|
@ -17,8 +17,8 @@
|
|||||||
#include <map>
|
#include <map>
|
||||||
#include <memory>
|
#include <memory>
|
||||||
|
|
||||||
#include "tenacity/EffectInterface.h"
|
#include "EffectInterface.h"
|
||||||
#include "tenacity/PluginInterface.h"
|
#include "PluginInterface.h"
|
||||||
|
|
||||||
class wxArrayString;
|
class wxArrayString;
|
||||||
class FileConfig;
|
class FileConfig;
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
**********************************************************************/
|
**********************************************************************/
|
||||||
#include "PluginRegistrationDialog.h"
|
#include "PluginRegistrationDialog.h"
|
||||||
|
|
||||||
#include "tenacity/EffectInterface.h"
|
#include "EffectInterface.h"
|
||||||
#include "ModuleManager.h"
|
#include "ModuleManager.h"
|
||||||
#include "PluginManager.h"
|
#include "PluginManager.h"
|
||||||
#include "ShuttleGui.h"
|
#include "ShuttleGui.h"
|
||||||
|
@ -38,7 +38,7 @@
|
|||||||
|
|
||||||
#include <functional>
|
#include <functional>
|
||||||
|
|
||||||
#include "../include/tenacity/ComponentInterface.h"
|
#include "ComponentInterface.h"
|
||||||
#include "ComponentInterfaceSymbol.h"
|
#include "ComponentInterfaceSymbol.h"
|
||||||
#include "wxArrayStringEx.h"
|
#include "wxArrayStringEx.h"
|
||||||
#include "widgets/FileConfig.h"
|
#include "widgets/FileConfig.h"
|
||||||
|
@ -25,7 +25,7 @@
|
|||||||
#include "Resample.h"
|
#include "Resample.h"
|
||||||
#include "Prefs.h"
|
#include "Prefs.h"
|
||||||
#include "Internat.h"
|
#include "Internat.h"
|
||||||
#include "../include/tenacity/ComponentInterface.h"
|
#include "ComponentInterface.h"
|
||||||
|
|
||||||
#include <soxr.h>
|
#include <soxr.h>
|
||||||
|
|
||||||
|
@ -65,7 +65,7 @@ preferences.
|
|||||||
#include <wx/radiobut.h>
|
#include <wx/radiobut.h>
|
||||||
#include <wx/button.h>
|
#include <wx/button.h>
|
||||||
|
|
||||||
#include "../include/tenacity/EffectAutomationParameters.h" // for command automation
|
#include "EffectAutomationParameters.h" // for command automation
|
||||||
|
|
||||||
#include "WrappedType.h"
|
#include "WrappedType.h"
|
||||||
//#include "effects/Effect.h"
|
//#include "effects/Effect.h"
|
||||||
|
@ -11,7 +11,7 @@
|
|||||||
#ifndef __AUDACITY_SHUTTLE__
|
#ifndef __AUDACITY_SHUTTLE__
|
||||||
#define __AUDACITY_SHUTTLE__
|
#define __AUDACITY_SHUTTLE__
|
||||||
|
|
||||||
#include "../include/tenacity/ComponentInterface.h"
|
#include "ComponentInterface.h"
|
||||||
#include "ComponentInterfaceSymbol.h"
|
#include "ComponentInterfaceSymbol.h"
|
||||||
|
|
||||||
class ComponentInterfaceSymbol;
|
class ComponentInterfaceSymbol;
|
||||||
|
@ -115,7 +115,7 @@ for registering for changes.
|
|||||||
#include <wx/bmpbuttn.h>
|
#include <wx/bmpbuttn.h>
|
||||||
#include <wx/wrapsizer.h>
|
#include <wx/wrapsizer.h>
|
||||||
|
|
||||||
#include "../include/tenacity/ComponentInterface.h"
|
#include "ComponentInterface.h"
|
||||||
#include "widgets/ReadOnlyText.h"
|
#include "widgets/ReadOnlyText.h"
|
||||||
#include "widgets/wxPanelWrapper.h"
|
#include "widgets/wxPanelWrapper.h"
|
||||||
#include "widgets/wxTextCtrlWrapper.h"
|
#include "widgets/wxTextCtrlWrapper.h"
|
||||||
|
@ -24,6 +24,7 @@
|
|||||||
|
|
||||||
#include "Prefs.h"
|
#include "Prefs.h"
|
||||||
#include "WrappedType.h"
|
#include "WrappedType.h"
|
||||||
|
#include "ComponentInterfaceSymbol.h"
|
||||||
|
|
||||||
class ChoiceSetting;
|
class ChoiceSetting;
|
||||||
|
|
||||||
@ -759,8 +760,6 @@ public:
|
|||||||
teShuttleMode GetMode() { return mShuttleMode; };
|
teShuttleMode GetMode() { return mShuttleMode; };
|
||||||
};
|
};
|
||||||
|
|
||||||
class ComponentInterfaceSymbol;
|
|
||||||
|
|
||||||
//! Convenience function often useful when adding choice controls
|
//! Convenience function often useful when adding choice controls
|
||||||
TENACITY_DLL_API TranslatableStrings Msgids(
|
TENACITY_DLL_API TranslatableStrings Msgids(
|
||||||
const EnumValueSymbol strings[], size_t nStrings);
|
const EnumValueSymbol strings[], size_t nStrings);
|
||||||
|
@ -13,7 +13,7 @@
|
|||||||
|
|
||||||
#include <wx/defs.h>
|
#include <wx/defs.h>
|
||||||
|
|
||||||
#include "tenacity/ComponentInterface.h" // member variable
|
#include "ComponentInterface.h" // member variable
|
||||||
|
|
||||||
#include "widgets/wxPanelWrapper.h" // to inherit
|
#include "widgets/wxPanelWrapper.h" // to inherit
|
||||||
|
|
||||||
|
@ -35,7 +35,7 @@ ShuttleGui.
|
|||||||
#include <wx/utils.h>
|
#include <wx/utils.h>
|
||||||
#include <wx/log.h>
|
#include <wx/log.h>
|
||||||
|
|
||||||
#include "tenacity/ConfigInterface.h"
|
#include "ConfigInterface.h"
|
||||||
|
|
||||||
#include "../Shuttle.h"
|
#include "../Shuttle.h"
|
||||||
#include "../ShuttleGui.h"
|
#include "../ShuttleGui.h"
|
||||||
|
@ -20,8 +20,8 @@
|
|||||||
|
|
||||||
#include "../widgets/wxPanelWrapper.h" // to inherit
|
#include "../widgets/wxPanelWrapper.h" // to inherit
|
||||||
|
|
||||||
#include "../include/tenacity/ComponentInterface.h"
|
#include "ComponentInterface.h"
|
||||||
#include "../include/tenacity/EffectAutomationParameters.h" // for command automation
|
#include "EffectAutomationParameters.h" // for command automation
|
||||||
|
|
||||||
#include "../Registrar.h"
|
#include "../Registrar.h"
|
||||||
|
|
||||||
|
@ -12,7 +12,7 @@
|
|||||||
#ifndef __AUDACITY_LOAD_COMMANDS__
|
#ifndef __AUDACITY_LOAD_COMMANDS__
|
||||||
#define __AUDACITY_LOAD_COMMANDS__
|
#define __AUDACITY_LOAD_COMMANDS__
|
||||||
|
|
||||||
#include "tenacity/ModuleInterface.h"
|
#include "ModuleInterface.h"
|
||||||
|
|
||||||
#include <functional>
|
#include <functional>
|
||||||
#include <memory>
|
#include <memory>
|
||||||
|
@ -25,8 +25,8 @@ class wxChoice;
|
|||||||
class wxListBox;
|
class wxListBox;
|
||||||
class wxWindow;
|
class wxWindow;
|
||||||
|
|
||||||
#include "tenacity/ConfigInterface.h"
|
#include "ConfigInterface.h"
|
||||||
#include "tenacity/EffectInterface.h"
|
#include "EffectInterface.h"
|
||||||
|
|
||||||
#include "../SelectedRegion.h"
|
#include "../SelectedRegion.h"
|
||||||
|
|
||||||
|
@ -16,7 +16,7 @@
|
|||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
#include <unordered_map>
|
#include <unordered_map>
|
||||||
#include "tenacity/EffectInterface.h"
|
#include "EffectInterface.h"
|
||||||
#include "Identifier.h"
|
#include "Identifier.h"
|
||||||
|
|
||||||
class AudacityCommand;
|
class AudacityCommand;
|
||||||
|
@ -16,6 +16,9 @@
|
|||||||
|
|
||||||
#include <wx/bitmap.h> // member variables
|
#include <wx/bitmap.h> // member variables
|
||||||
|
|
||||||
|
#include "Identifier.h"
|
||||||
|
#include "PluginInterface.h"
|
||||||
|
|
||||||
#if defined(EXPERIMENTAL_EFFECTS_RACK)
|
#if defined(EXPERIMENTAL_EFFECTS_RACK)
|
||||||
|
|
||||||
#include <vector>
|
#include <vector>
|
||||||
@ -102,8 +105,8 @@ private:
|
|||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include "tenacity/EffectInterface.h"
|
#include "EffectInterface.h"
|
||||||
#include "../widgets/wxPanelWrapper.h" // to inherit
|
#include "widgets/wxPanelWrapper.h" // to inherit
|
||||||
|
|
||||||
#include "../SelectedRegion.h"
|
#include "../SelectedRegion.h"
|
||||||
|
|
||||||
|
@ -11,7 +11,7 @@
|
|||||||
#ifndef __AUDACITY_LOAD_EFFECTS__
|
#ifndef __AUDACITY_LOAD_EFFECTS__
|
||||||
#define __AUDACITY_LOAD_EFFECTS__
|
#define __AUDACITY_LOAD_EFFECTS__
|
||||||
|
|
||||||
#include "tenacity/ModuleInterface.h"
|
#include "ModuleInterface.h"
|
||||||
|
|
||||||
#include <functional>
|
#include <functional>
|
||||||
#include <memory>
|
#include <memory>
|
||||||
|
@ -11,7 +11,7 @@
|
|||||||
|
|
||||||
#include "RealtimeEffectManager.h"
|
#include "RealtimeEffectManager.h"
|
||||||
|
|
||||||
#include "tenacity/EffectInterface.h"
|
#include "EffectInterface.h"
|
||||||
#include <memory>
|
#include <memory>
|
||||||
|
|
||||||
#include <atomic>
|
#include <atomic>
|
||||||
|
@ -84,7 +84,7 @@
|
|||||||
#include "../../widgets/WindowAccessible.h"
|
#include "../../widgets/WindowAccessible.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include "tenacity/ConfigInterface.h"
|
#include "ConfigInterface.h"
|
||||||
|
|
||||||
#include <cstring>
|
#include <cstring>
|
||||||
|
|
||||||
|
@ -12,9 +12,9 @@
|
|||||||
|
|
||||||
#if USE_VST
|
#if USE_VST
|
||||||
|
|
||||||
#include "tenacity/EffectInterface.h"
|
#include "EffectInterface.h"
|
||||||
#include "tenacity/ModuleInterface.h"
|
#include "ModuleInterface.h"
|
||||||
#include "tenacity/PluginInterface.h"
|
#include "PluginInterface.h"
|
||||||
|
|
||||||
#include "../../SampleFormat.h"
|
#include "../../SampleFormat.h"
|
||||||
#include "../../xml/XMLTagHandler.h"
|
#include "../../xml/XMLTagHandler.h"
|
||||||
|
@ -21,9 +21,9 @@
|
|||||||
#include <AudioUnit/AudioUnit.h>
|
#include <AudioUnit/AudioUnit.h>
|
||||||
#include <AudioUnit/AudioUnitProperties.h>
|
#include <AudioUnit/AudioUnitProperties.h>
|
||||||
|
|
||||||
#include "tenacity/EffectInterface.h"
|
#include "EffectInterface.h"
|
||||||
#include "tenacity/ModuleInterface.h"
|
#include "ModuleInterface.h"
|
||||||
#include "tenacity/PluginInterface.h"
|
#include "PluginInterface.h"
|
||||||
|
|
||||||
#include "AUControl.h"
|
#include "AUControl.h"
|
||||||
|
|
||||||
|
@ -18,9 +18,9 @@ class NumericTextCtrl;
|
|||||||
#include <wx/dynlib.h> // member variable
|
#include <wx/dynlib.h> // member variable
|
||||||
#include <wx/event.h> // to inherit
|
#include <wx/event.h> // to inherit
|
||||||
|
|
||||||
#include "tenacity/EffectInterface.h"
|
#include "EffectInterface.h"
|
||||||
#include "tenacity/ModuleInterface.h"
|
#include "ModuleInterface.h"
|
||||||
#include "tenacity/PluginInterface.h"
|
#include "PluginInterface.h"
|
||||||
|
|
||||||
#include "ladspa.h"
|
#include "ladspa.h"
|
||||||
#include "../../SampleFormat.h"
|
#include "../../SampleFormat.h"
|
||||||
|
@ -31,9 +31,9 @@
|
|||||||
#include "lv2/uri-map/uri-map.h"
|
#include "lv2/uri-map/uri-map.h"
|
||||||
#include "lv2/units/units.h"
|
#include "lv2/units/units.h"
|
||||||
|
|
||||||
#include "tenacity/ModuleInterface.h"
|
#include "ModuleInterface.h"
|
||||||
#include "tenacity/EffectInterface.h"
|
#include "EffectInterface.h"
|
||||||
#include "tenacity/PluginInterface.h"
|
#include "PluginInterface.h"
|
||||||
|
|
||||||
#include "lv2_external_ui.h"
|
#include "lv2_external_ui.h"
|
||||||
|
|
||||||
|
@ -8,9 +8,9 @@
|
|||||||
|
|
||||||
**********************************************************************/
|
**********************************************************************/
|
||||||
|
|
||||||
#include "tenacity/ModuleInterface.h"
|
#include "ModuleInterface.h"
|
||||||
#include "tenacity/EffectInterface.h"
|
#include "EffectInterface.h"
|
||||||
#include "tenacity/PluginInterface.h"
|
#include "PluginInterface.h"
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
//
|
//
|
||||||
|
@ -14,9 +14,9 @@
|
|||||||
|
|
||||||
#include <memory>
|
#include <memory>
|
||||||
|
|
||||||
#include "tenacity/ModuleInterface.h"
|
#include "ModuleInterface.h"
|
||||||
#include "tenacity/EffectInterface.h"
|
#include "EffectInterface.h"
|
||||||
#include "tenacity/PluginInterface.h"
|
#include "PluginInterface.h"
|
||||||
|
|
||||||
#include <vamp-hostsdk/PluginLoader.h>
|
#include <vamp-hostsdk/PluginLoader.h>
|
||||||
|
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
|
|
||||||
|
|
||||||
#include "../CommonCommandFlags.h"
|
#include "../CommonCommandFlags.h"
|
||||||
#include "../Menus.h"
|
#include "../Menus.h"
|
||||||
#include "../Prefs.h"
|
#include "../Prefs.h"
|
||||||
|
@ -29,7 +29,7 @@ MousePrefs, QualityPrefs, SpectrumPrefs and ThemePrefs.
|
|||||||
|
|
||||||
#include <functional>
|
#include <functional>
|
||||||
#include "../widgets/wxPanelWrapper.h" // to inherit
|
#include "../widgets/wxPanelWrapper.h" // to inherit
|
||||||
#include "../include/tenacity/ComponentInterface.h"
|
#include "ComponentInterface.h"
|
||||||
#include "../Registry.h"
|
#include "../Registry.h"
|
||||||
|
|
||||||
/* A few constants for an attempt at semi-uniformity */
|
/* A few constants for an attempt at semi-uniformity */
|
||||||
|
@ -11,6 +11,7 @@
|
|||||||
#ifndef __AUDACITY_QUALITY_SETTINGS__
|
#ifndef __AUDACITY_QUALITY_SETTINGS__
|
||||||
#define __AUDACITY_QUALITY_SETTINGS__
|
#define __AUDACITY_QUALITY_SETTINGS__
|
||||||
|
|
||||||
|
#include <tenacity/Types.h>
|
||||||
#include "Prefs.h" // for EnumSetting
|
#include "Prefs.h" // for EnumSetting
|
||||||
|
|
||||||
class IntSetting;
|
class IntSetting;
|
||||||
|
@ -17,7 +17,7 @@
|
|||||||
|
|
||||||
#include <wx/brush.h> // member variable
|
#include <wx/brush.h> // member variable
|
||||||
|
|
||||||
#include "Identifier.h"
|
#include "tenacity/Types.h"
|
||||||
|
|
||||||
class wxChoice;
|
class wxChoice;
|
||||||
class wxCommandEvent;
|
class wxCommandEvent;
|
||||||
|
@ -13,6 +13,7 @@ Paul Licameli
|
|||||||
|
|
||||||
#include <functional>
|
#include <functional>
|
||||||
#include <unordered_map>
|
#include <unordered_map>
|
||||||
|
#include <vector>
|
||||||
|
|
||||||
#include "../../AttachedVirtualFunction.h"
|
#include "../../AttachedVirtualFunction.h"
|
||||||
#include "../../UIHandle.h"
|
#include "../../UIHandle.h"
|
||||||
|
@ -168,7 +168,7 @@ different formats.
|
|||||||
|
|
||||||
#include "NumericTextCtrl.h"
|
#include "NumericTextCtrl.h"
|
||||||
|
|
||||||
#include "Identifier.h"
|
#include "tenacity/Types.h"
|
||||||
#include "../AllThemeResources.h"
|
#include "../AllThemeResources.h"
|
||||||
#include "../AColor.h"
|
#include "../AColor.h"
|
||||||
#include "../KeyboardCapture.h"
|
#include "../KeyboardCapture.h"
|
||||||
|
@ -17,15 +17,14 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
#include <memory>
|
|
||||||
#include "../../include/tenacity/ComponentInterface.h"
|
|
||||||
#include "ComponentInterfaceSymbol.h"
|
|
||||||
#include <vector>
|
#include <vector>
|
||||||
#include <wx/setup.h> // for wxUSE_* macros
|
#include <wx/setup.h> // for wxUSE_* macros
|
||||||
#include <wx/defs.h>
|
#include <wx/defs.h>
|
||||||
#include <wx/control.h> // to inherit
|
#include <wx/control.h> // to inherit
|
||||||
|
|
||||||
|
#include "ComponentInterfaceSymbol.h"
|
||||||
#include "Internat.h"
|
#include "Internat.h"
|
||||||
|
#include "MemoryX.h"
|
||||||
|
|
||||||
// One event type for each type of control. Event is raised when a control
|
// One event type for each type of control. Event is raised when a control
|
||||||
// changes its format. Owners of controls of the same type can listen and
|
// changes its format. Owners of controls of the same type can listen and
|
||||||
|
@ -24,6 +24,8 @@
|
|||||||
|
|
||||||
#include "XMLTagHandler.h"
|
#include "XMLTagHandler.h"
|
||||||
|
|
||||||
|
#include "tenacity/Types.h"
|
||||||
|
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
#include <windows.h>
|
#include <windows.h>
|
||||||
#include <wx/msw/winundef.h>
|
#include <wx/msw/winundef.h>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user