mirror of
https://github.com/cookiengineer/audacity
synced 2025-10-21 14:02:57 +02:00
Locate and position the current Audacity source code, and clear a variety of old junk out of the way into junk-branches
This commit is contained in:
120
src/commands/CommandDirectory.cpp
Normal file
120
src/commands/CommandDirectory.cpp
Normal file
@@ -0,0 +1,120 @@
|
||||
/**********************************************************************
|
||||
|
||||
Audacity - A Digital Audio Editor
|
||||
Copyright 1999-2009 Audacity Team
|
||||
License: wxWidgets
|
||||
|
||||
Dan Horgan
|
||||
|
||||
******************************************************************//**
|
||||
|
||||
\file CommandDirectory.cpp
|
||||
\brief Contains definitions for the CommandDirectory class
|
||||
|
||||
*//*******************************************************************/
|
||||
|
||||
#include "CommandDirectory.h"
|
||||
#include "CommandMisc.h"
|
||||
|
||||
#include "ScreenshotCommand.h"
|
||||
#include "BatchEvalCommand.h"
|
||||
#include "ExecMenuCommand.h"
|
||||
#include "GetAllMenuCommands.h"
|
||||
#include "MessageCommand.h"
|
||||
#include "GetTrackInfoCommand.h"
|
||||
#include "GetProjectInfoCommand.h"
|
||||
#include "HelpCommand.h"
|
||||
#include "SelectCommand.h"
|
||||
#include "CompareAudioCommand.h"
|
||||
#include "SetTrackInfoCommand.h"
|
||||
#include "SetProjectInfoCommand.h"
|
||||
#include "PreferenceCommands.h"
|
||||
#include "ImportExportCommands.h"
|
||||
|
||||
CommandDirectory *CommandDirectory::mInstance = NULL;
|
||||
|
||||
CommandDirectory::CommandDirectory()
|
||||
{
|
||||
wxASSERT(mInstance == NULL);
|
||||
mInstance = this;
|
||||
|
||||
// Create the command map.
|
||||
// Adding an entry here is the easiest way to register a Command class.
|
||||
AddCommand(new ScreenshotCommandType());
|
||||
AddCommand(new BatchEvalCommandType());
|
||||
AddCommand(new ExecMenuCommandType());
|
||||
AddCommand(new GetAllMenuCommandsType());
|
||||
AddCommand(new MessageCommandType());
|
||||
AddCommand(new GetTrackInfoCommandType());
|
||||
AddCommand(new GetProjectInfoCommandType());
|
||||
|
||||
AddCommand(new HelpCommandType());
|
||||
AddCommand(new SelectCommandType());
|
||||
AddCommand(new CompareAudioCommandType());
|
||||
AddCommand(new SetTrackInfoCommandType());
|
||||
AddCommand(new SetProjectInfoCommandType());
|
||||
|
||||
AddCommand(new SetPreferenceCommandType());
|
||||
AddCommand(new GetPreferenceCommandType());
|
||||
AddCommand(new ImportCommandType());
|
||||
AddCommand(new ExportCommandType());
|
||||
}
|
||||
|
||||
CommandDirectory::~CommandDirectory()
|
||||
{
|
||||
// Delete the factories
|
||||
CommandMap::iterator iter;
|
||||
for (iter = mCmdMap.begin(); iter != mCmdMap.end(); ++iter)
|
||||
{
|
||||
delete iter->second;
|
||||
}
|
||||
}
|
||||
|
||||
CommandType *CommandDirectory::LookUp(const wxString &cmdName) const
|
||||
{
|
||||
CommandMap::const_iterator iter = mCmdMap.find(cmdName);
|
||||
if (iter == mCmdMap.end())
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
return iter->second;
|
||||
}
|
||||
|
||||
void CommandDirectory::AddCommand(CommandType *type)
|
||||
{
|
||||
wxASSERT(type != NULL);
|
||||
wxString cmdName = type->GetName();
|
||||
wxASSERT_MSG(mCmdMap.find(cmdName) == mCmdMap.end()
|
||||
, wxT("A command named ") + cmdName
|
||||
+ wxT(" already exists."));
|
||||
|
||||
mCmdMap[cmdName] = type;
|
||||
}
|
||||
|
||||
CommandDirectory *CommandDirectory::Get()
|
||||
{
|
||||
if (mInstance == NULL)
|
||||
{
|
||||
return new CommandDirectory();
|
||||
}
|
||||
return mInstance;
|
||||
}
|
||||
|
||||
void CommandDirectory::Destroy()
|
||||
{
|
||||
if (mInstance != NULL)
|
||||
{
|
||||
delete mInstance;
|
||||
}
|
||||
}
|
||||
|
||||
// Indentation settings for Vim and Emacs and unique identifier for Arch, a
|
||||
// version control system. Please do not modify past this point.
|
||||
//
|
||||
// Local Variables:
|
||||
// c-basic-offset: 3
|
||||
// indent-tabs-mode: nil
|
||||
// End:
|
||||
//
|
||||
// vim: et sts=3 sw=3
|
||||
// arch-tag: TBD
|
Reference in New Issue
Block a user