1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-05-06 14:52:34 +02:00
audacity/src/Registrar.h
James Crook 466e9c179e Create ComponentInterface
It combines the old IdentInterface with the ParamsInterface, providing an identifier and parameters (if needed).
The main purpose of the change is to make the class hierarchy (as viewed via doxygen) much easier to follow.
2018-11-02 17:04:43 +00:00

50 lines
1.3 KiB
C++

/**********************************************************************
Audacity: A Digital Audio Editor
Registrar.h
James Crook
*******************************************************************//**
\class Registrar
\brief Base class for registration callback.
Audcaity will call providers RegisterNameOfThing() functions with
an &Registrar as the argument. RegisterNameOfThing() is then
responsible for calling the appropriate callback functions.
**********************************************************************/
#ifndef __AUDACITY_REGISTRAR__
#define __AUDACITY_REGISTRAR__
#include "Audacity.h"
#include "MemoryX.h"
class LoadableModule;
class ComponentInterface;
class Effect;
class AUDACITY_DLL_API Registrar
{
public:
Registrar(){
bWantsModules = false;
bWantsCommands= false;
bWantsCommandTypes= false;
bWantsEffects= false;
}
bool bWantsModules;
bool bWantsCommands;
bool bWantsCommandTypes;
bool bWantsEffects;
virtual void AddCommandType(std::unique_ptr<ComponentInterface> && WXUNUSED(comDef) ){;};
virtual void AddCommand(std::unique_ptr<AudacityCommand> && WXUNUSED(command) ){;};
virtual void AddModule(std::unique_ptr<LoadableModule> && WXUNUSED(module) ){;};
virtual void AddEffect(std::unique_ptr<Effect> && WXUNUSED(effect) ){;};
};
#endif