1
0
mirror of https://github.com/cookiengineer/audacity synced 2026-02-10 05:30:01 +01:00
Files
audacity/src/commands/ScriptCommandRelay.h

68 lines
1.8 KiB
C++

/**********************************************************************
Audacity - A Digital Audio Editor
Copyright 1999-2009 Audacity Team
File License: wxWidgets
Dan Horgan
******************************************************************//**
\file ScriptCommandRelay.h
\brief Contains declarations for ScriptCommandRelay
*//*******************************************************************/
#ifndef __SCRIPTCOMMANDRELAY__
#define __SCRIPTCOMMANDRELAY__
#include "../Audacity.h"
class CommandHandler;
class ResponseQueue;
class Response;
class ResponseQueueTarget;
class AudacityProject;
class Command;
class wxString;
typedef int (*tpExecScriptServerFunc)( wxString * pIn, wxString * pOut);
typedef int (*tpRegScriptServerFunc)(tpExecScriptServerFunc pFn);
extern "C" {
AUDACITY_DLL_API int ExecCommand(wxString *pIn, wxString *pOut);
} // End 'extern C'
class ScriptCommandRelay
{
private:
// N.B. Static class members also have to be declared in the .cpp file
static CommandHandler *sCmdHandler;
static tpRegScriptServerFunc sScriptFn;
static ResponseQueue sResponseQueue;
public:
static void SetRegScriptServerFunc(tpRegScriptServerFunc scriptFn);
static void SetCommandHandler(CommandHandler &ch);
static void Run();
static void PostCommand(AudacityProject *project, Command *cmd);
static void SendResponse(const wxString &response);
static Response ReceiveResponse();
static ResponseQueueTarget *GetResponseTarget();
};
#endif /* End of include guard: __SCRIPTCOMMANDRELAY__ */
// 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