Skip to content
Snippets Groups Projects
AccessClass.cpp 3.23 KiB
Newer Older
  • Learn to ignore specific revisions
  • /*
       ------------------------------------------------------------------
    
       This file is part of the Open Ephys GUI
    
    jsiegle's avatar
    jsiegle committed
       Copyright (C) 2014 Open Ephys
    
    jsiegle's avatar
    jsiegle committed
    
    
       ------------------------------------------------------------------
    
    jsiegle's avatar
    jsiegle committed
    
    
       This program is free software: you can redistribute it and/or modify
       it under the terms of the GNU General Public License as published by
       the Free Software Foundation, either version 3 of the License, or
       (at your option) any later version.
    
    jsiegle's avatar
    jsiegle committed
    
    
       This program is distributed in the hope that it will be useful,
       but WITHOUT ANY WARRANTY; without even the implied warranty of
       MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
       GNU General Public License for more details.
    
    jsiegle's avatar
    jsiegle committed
    
    
       You should have received a copy of the GNU General Public License
       along with this program.  If not, see <http://www.gnu.org/licenses/>.
    
    #include "Processors/GenericProcessor/GenericProcessor.h"
    #include "Processors/MessageCenter/MessageCenterEditor.h"
    
    Aaron Cuevas Lopez's avatar
    Aaron Cuevas Lopez committed
    namespace
    {
    UIComponent* ui = nullptr;
    EditorViewport* ev = nullptr;
    ProcessorList* pl = nullptr;
    DataViewport* dv = nullptr;
    ProcessorGraph* pg = nullptr;
    ControlPanel* cp = nullptr;
    MessageCenterEditor* mc = nullptr;
    AudioComponent* ac = nullptr;
    GraphViewer* gv = nullptr;
    
    Aaron Cuevas Lopez's avatar
    Aaron Cuevas Lopez committed
    ScopedPointer<ActionBroadcaster> bc;
    }
    
    void setUIComponent(UIComponent* ui_)
    {
        if (ui != nullptr) return;
        ui = ui_;
    
        ev = ui->getEditorViewport();
        dv = ui->getDataViewport();
        pl = ui->getProcessorList();
        pg = ui->getProcessorGraph();
        cp = ui->getControlPanel();
        mc = ui->getMessageCenter();
        ac = ui->getAudioComponent();
        gv = ui->getGraphViewer();
    
    Aaron Cuevas Lopez's avatar
    Aaron Cuevas Lopez committed
        bc = new ActionBroadcaster();
        bc->addActionListener(mc);
    }
    
    void shutdownBroadcaster()
    {
        bc = nullptr;
    }
    
    /** Returns a pointer to the application's EditorViewport. */
    EditorViewport* getEditorViewport()
    {
        return ev;
    }
    
    /** Returns a pointer to the application's DataViewport. */
    DataViewport* getDataViewport()
    {
        return dv;
    }
    
    /** Returns a pointer to the application's ProcessorList. */
    ProcessorList* getProcessorList()
    {
        return pl;
    }
    
    /** Returns a pointer to the application's ProcessorGraph. */
    ProcessorGraph* getProcessorGraph()
    {
        return pg;
    }
    
    /** Returns a pointer to the application's DataViewport. */
    ControlPanel* getControlPanel()
    {
        return cp;
    }
    
    /** Returns a pointer to the application's MessageCenter. */
    MessageCenterEditor* getMessageCenter()
    {
        return mc;
    }
    
    /** Returns a pointer to the application's UIComponent. */
    UIComponent* getUIComponent()
    {
        return ui;
    }
    
    /** Returns a pointer to the application's AudioComponent. */
    AudioComponent* getAudioComponent()
    {
        return ac;
    }
    
    /** Returns a pointer to the application's GraphViewer. */
    GraphViewer* getGraphViewer()
    {
        return gv;
    }
    
    
    Aaron Cuevas Lopez's avatar
    Aaron Cuevas Lopez committed
    ActionBroadcaster* getBroadcaster()
    {
        return bc.get();
    }
    
    MidiBuffer* ExternalProcessorAccessor::getMidiBuffer(GenericProcessor* proc)
    
    {
    	return proc->m_currentMidiBuffer;
    }