mirror of
				https://github.com/cookiengineer/audacity
				synced 2025-11-04 16:14:00 +01:00 
			
		
		
		
	ScriptCommandRelay.cpp doesn't depend on AudacityProject.cpp ...
... This doesn't break any dependency cycles yet.
This commit is contained in:
		@@ -24,8 +24,8 @@ code out of ModuleManager.
 | 
			
		||||
#include "CommandTargets.h"
 | 
			
		||||
#include "CommandBuilder.h"
 | 
			
		||||
#include "AppCommandEvent.h"
 | 
			
		||||
#include "../Project.h"
 | 
			
		||||
#include <wx/app.h>
 | 
			
		||||
#include <wx/window.h>
 | 
			
		||||
#include <wx/string.h>
 | 
			
		||||
 | 
			
		||||
// Declare static class members
 | 
			
		||||
@@ -52,13 +52,16 @@ void ScriptCommandRelay::Run()
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/// Send a command to a project, to be applied in that context.
 | 
			
		||||
void ScriptCommandRelay::PostCommand(AudacityProject *project, const OldStyleCommandPointer &cmd)
 | 
			
		||||
void ScriptCommandRelay::PostCommand(
 | 
			
		||||
   wxWindow *pWindow, const OldStyleCommandPointer &cmd)
 | 
			
		||||
{
 | 
			
		||||
   wxASSERT(project != NULL);
 | 
			
		||||
   wxASSERT( pWindow );
 | 
			
		||||
   wxASSERT(cmd != NULL);
 | 
			
		||||
   AppCommandEvent ev;
 | 
			
		||||
   ev.SetCommand(cmd);
 | 
			
		||||
   project->GetEventHandler()->AddPendingEvent(ev);
 | 
			
		||||
   if ( pWindow ) {
 | 
			
		||||
      AppCommandEvent ev;
 | 
			
		||||
      ev.SetCommand(cmd);
 | 
			
		||||
      pWindow->GetEventHandler()->AddPendingEvent(ev);
 | 
			
		||||
   }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/// This is the function which actually obeys one command.  Rather than applying
 | 
			
		||||
@@ -71,9 +74,8 @@ int ExecCommand(wxString *pIn, wxString *pOut)
 | 
			
		||||
      CommandBuilder builder(*pIn);
 | 
			
		||||
      if (builder.WasValid())
 | 
			
		||||
      {
 | 
			
		||||
         AudacityProject *project = GetActiveProject();
 | 
			
		||||
         OldStyleCommandPointer cmd = builder.GetCommand();
 | 
			
		||||
         ScriptCommandRelay::PostCommand(project, cmd);
 | 
			
		||||
         ScriptCommandRelay::PostCommand(wxTheApp->GetTopWindow(), cmd);
 | 
			
		||||
 | 
			
		||||
         *pOut = wxEmptyString;
 | 
			
		||||
      }
 | 
			
		||||
 
 | 
			
		||||
@@ -20,11 +20,11 @@
 | 
			
		||||
 | 
			
		||||
#include "../MemoryX.h"
 | 
			
		||||
 | 
			
		||||
class wxWindow;
 | 
			
		||||
class CommandHandler;
 | 
			
		||||
class ResponseQueue;
 | 
			
		||||
class Response;
 | 
			
		||||
class ResponseQueueTarget;
 | 
			
		||||
class AudacityProject;
 | 
			
		||||
class OldStyleCommand;
 | 
			
		||||
using OldStyleCommandPointer = std::shared_ptr<OldStyleCommand>;
 | 
			
		||||
class wxString;
 | 
			
		||||
@@ -50,7 +50,8 @@ class ScriptCommandRelay
 | 
			
		||||
      static void SetCommandHandler(CommandHandler &ch);
 | 
			
		||||
 | 
			
		||||
      static void Run();
 | 
			
		||||
      static void PostCommand(AudacityProject *project, const OldStyleCommandPointer &cmd);
 | 
			
		||||
      static void PostCommand(
 | 
			
		||||
         wxWindow *pWindow, const OldStyleCommandPointer &cmd);
 | 
			
		||||
      static void SendResponse(const wxString &response);
 | 
			
		||||
      static Response ReceiveResponse();
 | 
			
		||||
      static std::shared_ptr<ResponseQueueTarget> GetResponseTarget();
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user