mirror of
https://github.com/vale981/openAV-Luppp
synced 2025-03-05 09:01:39 -05:00
-Updated Controller, ControllerUpdater and TimeObserver for auto-registering.
This commit is contained in:
parent
97aff38375
commit
d31cf4012f
8 changed files with 37 additions and 13 deletions
|
@ -13,7 +13,6 @@ AkaiAPC::AkaiAPC() :
|
|||
Controller(),
|
||||
MidiObserver("apc")
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void AkaiAPC::recordArm(int t, bool enabled)
|
||||
|
|
14
src/controller/controller.cxx
Normal file
14
src/controller/controller.cxx
Normal file
|
@ -0,0 +1,14 @@
|
|||
|
||||
#include "controller.hxx"
|
||||
|
||||
#include <iostream>
|
||||
|
||||
#include "../jack.hxx"
|
||||
#include "../controllerupdater.hxx"
|
||||
|
||||
extern Jack* jack;
|
||||
|
||||
Controller::Controller()
|
||||
{
|
||||
jack->getControllerUpdater()->registerController( this );
|
||||
}
|
|
@ -10,7 +10,9 @@
|
|||
class Controller
|
||||
{
|
||||
public:
|
||||
Controller(){};
|
||||
/// registers subclass instance with ControllerUpdater.
|
||||
Controller();
|
||||
|
||||
virtual ~Controller(){};
|
||||
|
||||
/// name string to show in UI
|
||||
|
|
|
@ -13,7 +13,6 @@ extern Jack* jack;
|
|||
LupppGUI::LupppGUI() :
|
||||
Controller()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void LupppGUI::masterVolume(float f)
|
||||
|
|
|
@ -28,12 +28,10 @@ using namespace std;
|
|||
class ControllerUpdater
|
||||
{
|
||||
public:
|
||||
ControllerUpdater() {}
|
||||
ControllerUpdater(){}
|
||||
|
||||
void registerController( Controller* controller )
|
||||
{
|
||||
std::cout << "ControllerUpdater registering " << controller->getName()
|
||||
<< endl;
|
||||
c.push_back( controller );
|
||||
}
|
||||
|
||||
|
|
23
src/jack.cxx
23
src/jack.cxx
|
@ -13,17 +13,28 @@ using namespace std;
|
|||
|
||||
int AudioBuffer::privateID = 0;
|
||||
|
||||
// static pointer from main.
|
||||
extern Jack* jack;
|
||||
|
||||
extern int jackSamplerate;
|
||||
|
||||
Jack::Jack() :
|
||||
client( jack_client_open ( "Luppp", JackNullOption , 0 , 0 ) ),
|
||||
timeManager(),
|
||||
metronome( new Metronome() ),
|
||||
logic( new Logic() ),
|
||||
gridLogic( new GridLogic() ),
|
||||
controllerUpdater( new ControllerUpdater() ),
|
||||
clientActive(false)
|
||||
{
|
||||
jack = this;
|
||||
// construct Observer classes here, not in the initializer list as the Jack*
|
||||
// will be 0x0 until then.
|
||||
metronome = new Metronome();
|
||||
logic = new Logic();
|
||||
gridLogic = new GridLogic();
|
||||
|
||||
Controller* c = new AkaiAPC();
|
||||
Controller* g = new LupppGUI();
|
||||
|
||||
|
||||
buffers.nframes = jack_get_buffer_size( client );
|
||||
buffers.samplerate = jack_get_sample_rate( client );
|
||||
|
||||
|
@ -116,15 +127,17 @@ Jack::Jack() :
|
|||
|
||||
void Jack::activate()
|
||||
{
|
||||
/*
|
||||
// move to "settings" class or so
|
||||
Controller* c = new AkaiAPC();
|
||||
controllerUpdater->registerController( c );
|
||||
Controller* g = new LupppGUI();
|
||||
controllerUpdater->registerController( g );
|
||||
*/
|
||||
|
||||
// move to time class, get instantiate order right
|
||||
jack->getTimeManager()->registerObserver( metronome );
|
||||
jack->getTimeManager()->registerObserver( gridLogic );
|
||||
//jack->getTimeManager()->registerObserver( metronome );
|
||||
//jack->getTimeManager()->registerObserver( gridLogic );
|
||||
|
||||
jack_activate( client );
|
||||
jack_transport_start(client);
|
||||
|
|
|
@ -37,7 +37,6 @@ class Jack
|
|||
int getBuffersize();
|
||||
int getSamplerate();
|
||||
|
||||
|
||||
/// get functions for components owned by Jack
|
||||
Looper* getLooper(int t) {return loopers.at(t); }
|
||||
Metronome* getMetronome(){return metronome;}
|
||||
|
|
|
@ -6,6 +6,6 @@ extern Jack* jack;
|
|||
|
||||
TimeObserver::TimeObserver()
|
||||
{
|
||||
//jack->getTimeManager()->registerObserver( this );
|
||||
jack->getTimeManager()->registerObserver( this );
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue