Skip to content
Snippets Groups Projects
AccessClass.h 2.88 KiB
Newer Older
  • Learn to ignore specific revisions
  • jsiegle's avatar
    jsiegle committed
        ------------------------------------------------------------------
    
    jsiegle's avatar
    jsiegle committed
        This file is part of the Open Ephys GUI
    
    jsiegle's avatar
    jsiegle committed
        Copyright (C) 2014 Open Ephys
    
    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.
    
        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.
    
        You should have received a copy of the GNU General Public License
        along with this program.  If not, see <http://www.gnu.org/licenses/>.
    
    
    */
    
    #ifndef __ACCESSCLASS_H_CE1DC2DE__
    #define __ACCESSCLASS_H_CE1DC2DE__
    
    
    jsiegle's avatar
    jsiegle committed
    #include "../JuceLibraryCode/JuceHeader.h"
    
    jsiegle's avatar
    jsiegle committed
    class EditorViewport;
    class ProcessorList;
    
    class DataViewport;
    class ProcessorGraph;
    
    class MessageCenterEditor;
    
    jsiegle's avatar
    jsiegle committed
    class AudioComponent;
    
    class GenericProcessor;
    
    jsiegle's avatar
    jsiegle committed
    
    
    Aaron Cuevas Lopez's avatar
    Aaron Cuevas Lopez committed
    namespace AccessClass
    
    Aaron Cuevas Lopez's avatar
    Aaron Cuevas Lopez committed
    /** Sets the object's UIComponent and copies all the necessary pointers
    	from the UIComponent.
    	*/
    void setUIComponent(UIComponent*);
    
    Aaron Cuevas Lopez's avatar
    Aaron Cuevas Lopez committed
    void shutdownBroadcaster();
    
    Aaron Cuevas Lopez's avatar
    Aaron Cuevas Lopez committed
    /** Returns a pointer to the application's EditorViewport. */
    EditorViewport* getEditorViewport();
    
    Aaron Cuevas Lopez's avatar
    Aaron Cuevas Lopez committed
    /** Returns a pointer to the application's DataViewport. */
    DataViewport* getDataViewport();
    
    Aaron Cuevas Lopez's avatar
    Aaron Cuevas Lopez committed
    /** Returns a pointer to the application's ProcessorList. */
    ProcessorList* getProcessorList();
    
    Aaron Cuevas Lopez's avatar
    Aaron Cuevas Lopez committed
    /** Returns a pointer to the application's ProcessorGraph. */
    ProcessorGraph* getProcessorGraph();
    
    Aaron Cuevas Lopez's avatar
    Aaron Cuevas Lopez committed
    /** Returns a pointer to the application's DataViewport. */
    ControlPanel* getControlPanel();
    
    Aaron Cuevas Lopez's avatar
    Aaron Cuevas Lopez committed
    /** Returns a pointer to the application's MessageCenter. */
    MessageCenterEditor* getMessageCenter();
    
    Aaron Cuevas Lopez's avatar
    Aaron Cuevas Lopez committed
    /** Returns a pointer to the application's UIComponent. */
    UIComponent* getUIComponent();
    
    Aaron Cuevas Lopez's avatar
    Aaron Cuevas Lopez committed
    /** Returns a pointer to the application's AudioComponent. */
    AudioComponent* getAudioComponent();
    
    /** Returns a pointer to the application's GraphViewer. */
    GraphViewer* getGraphViewer();
    
    
    /** Returns a pointer to the application's PluginManager. */
    PluginManager* getPluginManager();
    
    
    Aaron Cuevas Lopez's avatar
    Aaron Cuevas Lopez committed
    ActionBroadcaster* getBroadcaster();
    
    //Methods to access some private members of GenericProcessors.
    //Like all of the AccessClass methods, this ones are meant to be
    //used by various internal parts of the core GUI which need access
    //to those members, while keeping them inaccessible by normal plugins
    
    class ExternalProcessorAccessor
    
    	static MidiBuffer* getMidiBuffer(GenericProcessor* proc);
    };