Browse Source

Correct JackEngine inheritance graph.

git-svn-id: http://subversion.jackaudio.org/jack/jack2/trunk/jackmp@2311 0c269be4-1314-0410-8aa9-9f06e86f4224
tags/1.90
sletz 17 years ago
parent
commit
db408b7caa
24 changed files with 87 additions and 30 deletions
  1. +1
    -1
      common/JackAudioDriver.cpp
  2. +1
    -1
      common/JackAudioDriver.h
  3. +1
    -1
      common/JackDriver.cpp
  4. +3
    -3
      common/JackDriver.h
  5. +2
    -2
      common/JackDriverLoader.h
  6. +1
    -1
      common/JackDummyDriver.cpp
  7. +1
    -1
      common/JackDummyDriver.h
  8. +1
    -0
      common/JackEngine.cpp
  9. +57
    -1
      common/JackEngine.h
  10. +1
    -1
      common/JackFreewheelDriver.h
  11. +1
    -1
      common/JackInternalClientChannel.h
  12. +1
    -1
      common/JackLockedEngine.h
  13. +1
    -1
      common/JackLoopbackDriver.h
  14. +1
    -1
      common/JackServer.cpp
  15. +3
    -3
      common/JackServer.h
  16. +1
    -1
      linux/alsa/JackAlsaDriver.cpp
  17. +1
    -1
      linux/firewire/JackFFADODriver.cpp
  18. +1
    -1
      linux/freebob/JackFreebobDriver.cpp
  19. +2
    -2
      macosx/JackCoreAudioDriver.cpp
  20. +1
    -1
      macosx/JackCoreAudioDriver.h
  21. +1
    -1
      macosx/JackMachServerChannel.cpp
  22. +2
    -2
      macosx/JackMachServerChannel.h
  23. +1
    -1
      windows/JackPortAudioDriver.cpp
  24. +1
    -1
      windows/JackPortAudioDriver.h

+ 1
- 1
common/JackAudioDriver.cpp View File

@@ -36,7 +36,7 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
namespace Jack namespace Jack
{ {


JackAudioDriver::JackAudioDriver(const char* name, const char* alias, JackEngine* engine, JackSynchro** table)
JackAudioDriver::JackAudioDriver(const char* name, const char* alias, JackEngineInterface* engine, JackSynchro** table)
: JackDriver(name, alias, engine, table), : JackDriver(name, alias, engine, table),
fCaptureChannels(0), fCaptureChannels(0),
fPlaybackChannels(0), fPlaybackChannels(0),


+ 1
- 1
common/JackAudioDriver.h View File

@@ -57,7 +57,7 @@ class EXPORT JackAudioDriver : public JackDriver


public: public:


JackAudioDriver(const char* name, const char* alias, JackEngine* engine, JackSynchro** table);
JackAudioDriver(const char* name, const char* alias, JackEngineInterface* engine, JackSynchro** table);
virtual ~JackAudioDriver(); virtual ~JackAudioDriver();


virtual int Process(); virtual int Process();


+ 1
- 1
common/JackDriver.cpp View File

@@ -39,7 +39,7 @@ using namespace std;
namespace Jack namespace Jack
{ {


JackDriver::JackDriver(const char* name, const char* alias, JackEngine* engine, JackSynchro** table)
JackDriver::JackDriver(const char* name, const char* alias, JackEngineInterface* engine, JackSynchro** table)
{ {
assert(strlen(name) < JACK_CLIENT_NAME_SIZE); assert(strlen(name) < JACK_CLIENT_NAME_SIZE);
fSynchroTable = table; fSynchroTable = table;


+ 3
- 3
common/JackDriver.h View File

@@ -29,7 +29,7 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
namespace Jack namespace Jack
{ {


class JackEngine;
class JackEngineInterface;
class JackGraphManager; class JackGraphManager;
class JackSynchro; class JackSynchro;
struct JackEngineControl; struct JackEngineControl;
@@ -150,7 +150,7 @@ class EXPORT JackDriver : public JackDriverClient
jack_nframes_t fPlaybackLatency; jack_nframes_t fPlaybackLatency;
jack_time_t fLastWaitUst; jack_time_t fLastWaitUst;
float fDelayedUsecs; float fDelayedUsecs;
JackEngine* fEngine;
JackEngineInterface* fEngine;
JackGraphManager* fGraphManager; JackGraphManager* fGraphManager;
JackSynchro** fSynchroTable; JackSynchro** fSynchroTable;
JackEngineControl* fEngineControl; JackEngineControl* fEngineControl;
@@ -160,7 +160,7 @@ class EXPORT JackDriver : public JackDriverClient


public: public:


JackDriver(const char* name, const char* alias, JackEngine* engine, JackSynchro** table);
JackDriver(const char* name, const char* alias, JackEngineInterface* engine, JackSynchro** table);
JackDriver(); JackDriver();
virtual ~JackDriver(); virtual ~JackDriver();




+ 2
- 2
common/JackDriverLoader.h View File

@@ -44,11 +44,11 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#endif #endif


typedef jack_driver_desc_t * (*JackDriverDescFunction) (); typedef jack_driver_desc_t * (*JackDriverDescFunction) ();
typedef Jack::JackDriverClientInterface* (*initialize) (Jack::JackEngine*, Jack::JackSynchro**, const JSList *);
typedef Jack::JackDriverClientInterface* (*initialize) (Jack::JackEngineInterface*, Jack::JackSynchro**, const JSList *);


typedef struct _jack_driver_info typedef struct _jack_driver_info
{ {
Jack::JackDriverClientInterface* (*initialize)(Jack::JackEngine*, Jack::JackSynchro**, const JSList *);
Jack::JackDriverClientInterface* (*initialize)(Jack::JackEngineInterface*, Jack::JackSynchro**, const JSList *);
DRIVER_HANDLE handle; DRIVER_HANDLE handle;
} }
jack_driver_info_t; jack_driver_info_t;


+ 1
- 1
common/JackDummyDriver.cpp View File

@@ -134,7 +134,7 @@ extern "C"
return desc; return desc;
} }


Jack::JackDriverClientInterface* driver_initialize(Jack::JackEngine* engine, Jack::JackSynchro** table, const JSList* params) {
Jack::JackDriverClientInterface* driver_initialize(Jack::JackEngineInterface* engine, Jack::JackSynchro** table, const JSList* params) {
jack_nframes_t sample_rate = 48000; jack_nframes_t sample_rate = 48000;
jack_nframes_t period_size = 1024; jack_nframes_t period_size = 1024;
unsigned int capture_ports = 2; unsigned int capture_ports = 2;


+ 1
- 1
common/JackDummyDriver.h View File

@@ -38,7 +38,7 @@ class JackDummyDriver : public JackAudioDriver


public: public:


JackDummyDriver(const char* name, const char* alias, JackEngine* engine, JackSynchro** table, unsigned long wait_time)
JackDummyDriver(const char* name, const char* alias, JackEngineInterface* engine, JackSynchro** table, unsigned long wait_time)
: JackAudioDriver(name, alias, engine, table), fWaitTime(wait_time) : JackAudioDriver(name, alias, engine, table), fWaitTime(wait_time)
{} {}
virtual ~JackDummyDriver() virtual ~JackDummyDriver()


+ 1
- 0
common/JackEngine.cpp View File

@@ -53,6 +53,7 @@ JackEngine::JackEngine(JackGraphManager* manager,


JackEngine::~JackEngine() JackEngine::~JackEngine()
{ {
jack_log("JackEngine::~JackEngine");
delete fChannel; delete fChannel;
delete fSignal; delete fSignal;
} }


+ 57
- 1
common/JackEngine.h View File

@@ -33,12 +33,68 @@ struct JackEngineControl;
class JackServerNotifyChannelInterface; class JackServerNotifyChannelInterface;
class JackExternalClient; class JackExternalClient;
class JackSyncInterface; class JackSyncInterface;
class JackEngineInterface
{
public:
JackEngineInterface()
{}
JackEngineInterface(JackGraphManager* manager, JackSynchro** table, JackEngineControl* controler)
{}
virtual ~JackEngineInterface()
{}
virtual int Open() = 0;
virtual int Close() = 0;
// Client management
virtual int ClientCheck(const char* name, char* name_res, int protocol, int options, int* status) = 0;
virtual int ClientExternalOpen(const char* name, int pid, int* ref, int* shared_engine, int* shared_client, int* shared_graph_manager) = 0;
virtual int ClientInternalOpen(const char* name, int* ref, JackEngineControl** shared_engine, JackGraphManager** shared_manager, JackClientInterface* client, bool wait) = 0;
virtual int ClientExternalClose(int refnum) = 0;
virtual int ClientInternalClose(int refnum, bool wait) = 0;
virtual int ClientActivate(int refnum, bool state) = 0;
virtual int ClientDeactivate(int refnum) = 0;
virtual int GetClientPID(const char* name) = 0;
// Internal client management
virtual int GetInternalClientName(int int_ref, char* name_res) = 0;
virtual int InternalClientHandle(const char* client_name, int* status, int* int_ref) = 0;
virtual int InternalClientUnload(int refnum, int* status) = 0;
// Port management
virtual int PortRegister(int refnum, const char* name, const char *type, unsigned int flags, unsigned int buffer_size, unsigned int* port) = 0;
virtual int PortUnRegister(int refnum, jack_port_id_t port) = 0;
virtual int PortConnect(int refnum, const char* src, const char* dst) = 0;
virtual int PortDisconnect(int refnum, const char* src, const char* dst) = 0;
virtual int PortConnect(int refnum, jack_port_id_t src, jack_port_id_t dst) = 0;
virtual int PortDisconnect(int refnum, jack_port_id_t src, jack_port_id_t dst) = 0;
// Graph
virtual bool Process(jack_time_t callback_usecs) = 0;
// Notifications
virtual void NotifyXRun(jack_time_t callback_usecs, float delayed_usecs) = 0;
virtual void NotifyXRun(int refnum) = 0;
virtual void NotifyGraphReorder() = 0;
virtual void NotifyBufferSize(jack_nframes_t nframes) = 0;
virtual void NotifyFreewheel(bool onoff) = 0;
virtual void NotifyPortRegistation(jack_port_id_t port_index, bool onoff) = 0;
virtual void NotifyPortConnect(jack_port_id_t src, jack_port_id_t dst, bool onoff) = 0;
virtual void NotifyActivate(int refnum) = 0;
};


/*! /*!
\brief Engine description. \brief Engine description.
*/ */


class JackEngine
class JackEngine : public JackEngineInterface
{ {
private: private:




+ 1
- 1
common/JackFreewheelDriver.h View File

@@ -35,7 +35,7 @@ class JackFreewheelDriver : public JackDriver


public: public:


JackFreewheelDriver(JackEngine* engine, JackSynchro** table): JackDriver("freewheel", "", engine, table)
JackFreewheelDriver(JackEngineInterface* engine, JackSynchro** table): JackDriver("freewheel", "", engine, table)
{} {}
virtual ~JackFreewheelDriver() virtual ~JackFreewheelDriver()
{} {}


+ 1
- 1
common/JackInternalClientChannel.h View File

@@ -35,7 +35,7 @@ class JackInternalClientChannel : public JackClientChannelInterface
private: private:


JackServer* fServer; JackServer* fServer;
JackEngine* fEngine;
JackEngineInterface* fEngine;


public: public:




+ 1
- 1
common/JackLockedEngine.h View File

@@ -30,7 +30,7 @@ namespace Jack
\brief Locked Engine. \brief Locked Engine.
*/ */


class JackLockedEngine : public JackEngine, public JackLockAble
class JackLockedEngine : public JackEngineInterface, public JackLockAble
{ {
private: private:




+ 1
- 1
common/JackLoopbackDriver.h View File

@@ -35,7 +35,7 @@ class JackLoopbackDriver : public JackAudioDriver


public: public:


JackLoopbackDriver(JackEngine* engine, JackSynchro** table)
JackLoopbackDriver(JackEngineInterface* engine, JackSynchro** table)
: JackAudioDriver("loopback", "", engine, table) : JackAudioDriver("loopback", "", engine, table)
{} {}
virtual ~JackLoopbackDriver() virtual ~JackLoopbackDriver()


+ 1
- 1
common/JackServer.cpp View File

@@ -284,7 +284,7 @@ int JackServer::SetTimebaseCallback(int refnum, int conditional)
return fEngineControl->fTransport.SetTimebase(refnum, conditional); return fEngineControl->fTransport.SetTimebase(refnum, conditional);
} }


JackEngine* JackServer::GetEngine()
JackEngineInterface* JackServer::GetEngine()
{ {
return fEngine; return fEngine;
} }


+ 3
- 3
common/JackServer.h View File

@@ -35,7 +35,7 @@ class JackDriverClientInterface;
class JackServerChannelInterface; class JackServerChannelInterface;
class JackSyncInterface; class JackSyncInterface;
struct JackEngineControl; struct JackEngineControl;
class JackEngine;
class JackEngineInterface;


/*! /*!
\brief The Jack server. \brief The Jack server.
@@ -50,7 +50,7 @@ class EXPORT JackServer
JackDriverClientInterface* fAudioDriver; JackDriverClientInterface* fAudioDriver;
JackDriverClientInterface* fFreewheelDriver; JackDriverClientInterface* fFreewheelDriver;
JackDriverClientInterface* fLoopbackDriver; JackDriverClientInterface* fLoopbackDriver;
JackEngine* fEngine;
JackEngineInterface* fEngine;
JackEngineControl* fEngineControl; JackEngineControl* fEngineControl;
JackGraphManager* fGraphManager; JackGraphManager* fGraphManager;
JackServerChannelInterface* fChannel; JackServerChannelInterface* fChannel;
@@ -81,7 +81,7 @@ class EXPORT JackServer
int SetTimebaseCallback(int refnum, int conditional); int SetTimebaseCallback(int refnum, int conditional);


// Object access // Object access
JackEngine* GetEngine();
JackEngineInterface* GetEngine();
JackEngineControl* GetEngineControl(); JackEngineControl* GetEngineControl();
JackSynchro** GetSynchroTable(); JackSynchro** GetSynchroTable();
JackGraphManager* GetGraphManager(); JackGraphManager* GetGraphManager();


+ 1
- 1
linux/alsa/JackAlsaDriver.cpp View File

@@ -2597,7 +2597,7 @@ extern "C"
return desc; return desc;
} }


Jack::JackDriverClientInterface* driver_initialize(Jack::JackEngine* engine, Jack::JackSynchro** table, const JSList* params) {
Jack::JackDriverClientInterface* driver_initialize(Jack::JackEngineInterface* engine, Jack::JackSynchro** table, const JSList* params) {
jack_nframes_t srate = 48000; jack_nframes_t srate = 48000;
jack_nframes_t frames_per_interrupt = 1024; jack_nframes_t frames_per_interrupt = 1024;
unsigned long user_nperiods = 2; unsigned long user_nperiods = 2;


+ 1
- 1
linux/firewire/JackFFADODriver.cpp View File

@@ -915,7 +915,7 @@ extern "C"
return desc; return desc;
} }


Jack::JackDriverClientInterface* driver_initialize(Jack::JackEngine* engine, Jack::JackSynchro** table, const JSList* params) {
Jack::JackDriverClientInterface* driver_initialize(Jack::JackEngineInterface* engine, Jack::JackSynchro** table, const JSList* params) {
const JSList * node; const JSList * node;
const jack_driver_param_t * param; const jack_driver_param_t * param;




+ 1
- 1
linux/freebob/JackFreebobDriver.cpp View File

@@ -1039,7 +1039,7 @@ extern "C"
return desc; return desc;
} }


Jack::JackDriverClientInterface* driver_initialize(Jack::JackEngine* engine, Jack::JackSynchro** table, const JSList* params) {
Jack::JackDriverClientInterface* driver_initialize(Jack::JackEngineInterface* engine, Jack::JackSynchro** table, const JSList* params) {
unsigned int port = 0; unsigned int port = 0;
unsigned int node_id = -1; unsigned int node_id = -1;
int nbitems; int nbitems;


+ 2
- 2
macosx/JackCoreAudioDriver.cpp View File

@@ -419,7 +419,7 @@ OSStatus JackCoreAudioDriver::GetTotalChannels(AudioDeviceID device, int* channe
return err; return err;
} }


JackCoreAudioDriver::JackCoreAudioDriver(const char* name, const char* alias, JackEngine* engine, JackSynchro** table)
JackCoreAudioDriver::JackCoreAudioDriver(const char* name, const char* alias, JackEngineInterface* engine, JackSynchro** table)
: JackAudioDriver(name, alias, engine, table), fJackInputData(NULL), fDriverOutputData(NULL), fState(false), fIOUsage(1.f) : JackAudioDriver(name, alias, engine, table), fJackInputData(NULL), fDriverOutputData(NULL), fState(false), fIOUsage(1.f)
{} {}


@@ -1243,7 +1243,7 @@ extern "C"
return desc; return desc;
} }


Jack::JackDriverClientInterface* driver_initialize(Jack::JackEngine* engine, Jack::JackSynchro** table, const JSList* params) {
Jack::JackDriverClientInterface* driver_initialize(Jack::JackEngineInterface* engine, Jack::JackSynchro** table, const JSList* params) {
jack_nframes_t srate = 44100; jack_nframes_t srate = 44100;
jack_nframes_t frames_per_interrupt = 128; jack_nframes_t frames_per_interrupt = 128;
int capture = FALSE; int capture = FALSE;


+ 1
- 1
macosx/JackCoreAudioDriver.h View File

@@ -143,7 +143,7 @@ class JackCoreAudioDriver : public JackAudioDriver


public: public:


JackCoreAudioDriver(const char* name, const char* alias, JackEngine* engine, JackSynchro** table);
JackCoreAudioDriver(const char* name, const char* alias, JackEngineInterface* engine, JackSynchro** table);
virtual ~JackCoreAudioDriver(); virtual ~JackCoreAudioDriver();


int Open(jack_nframes_t frames_per_cycle, int Open(jack_nframes_t frames_per_cycle,


+ 1
- 1
macosx/JackMachServerChannel.cpp View File

@@ -70,7 +70,7 @@ void JackMachServerChannel::Close()
fServerPort.DestroyPort(); fServerPort.DestroyPort();
} }


JackEngine* JackMachServerChannel::GetEngine()
JackEngineInterface* JackMachServerChannel::GetEngine()
{ {
return fServer->GetEngine(); return fServer->GetEngine();
} }


+ 2
- 2
macosx/JackMachServerChannel.h View File

@@ -29,7 +29,7 @@ namespace Jack
{ {


class JackServer; class JackServer;
class JackEngine;
class JackEngineInterface;


/*! /*!
\brief JackServerChannel using Mach IPC. \brief JackServerChannel using Mach IPC.
@@ -55,7 +55,7 @@ class JackMachServerChannel : public JackServerChannelInterface, public JackRunn
int Open(const char* server_name, JackServer* server); // Open the Server/Client connection int Open(const char* server_name, JackServer* server); // Open the Server/Client connection
void Close(); // Close the Server/Client connection void Close(); // Close the Server/Client connection


JackEngine* GetEngine();
JackEngineInterface* GetEngine();
JackServer* GetServer(); JackServer* GetServer();


void ClientCheck(char* name, char* name_res, int protocol, int options, int* status, int* result); void ClientCheck(char* name, char* name_res, int protocol, int options, int* status, int* result);


+ 1
- 1
windows/JackPortAudioDriver.cpp View File

@@ -568,7 +568,7 @@ extern "C"
return desc; return desc;
} }


EXPORT Jack::JackDriverClientInterface* driver_initialize(Jack::JackEngine* engine, Jack::JackSynchro** table, const JSList* params) {
EXPORT Jack::JackDriverClientInterface* driver_initialize(Jack::JackEngineInterface* engine, Jack::JackSynchro** table, const JSList* params) {
jack_nframes_t srate = 44100; jack_nframes_t srate = 44100;
jack_nframes_t frames_per_interrupt = 512; jack_nframes_t frames_per_interrupt = 512;
int capture = FALSE; int capture = FALSE;


+ 1
- 1
windows/JackPortAudioDriver.h View File

@@ -53,7 +53,7 @@ class JackPortAudioDriver : public JackAudioDriver


public: public:


JackPortAudioDriver(const char* name, const char* alias, JackEngine* engine, JackSynchro** table)
JackPortAudioDriver(const char* name, const char* alias, JackEngineInterface* engine, JackSynchro** table)
: JackAudioDriver(name, alias, engine, table), fStream(NULL), fInputBuffer(NULL), fOutputBuffer(NULL), : JackAudioDriver(name, alias, engine, table), fStream(NULL), fInputBuffer(NULL), fOutputBuffer(NULL),
fInputDevice(paNoDevice), fOutputDevice(paNoDevice) fInputDevice(paNoDevice), fOutputDevice(paNoDevice)
{} {}


Loading…
Cancel
Save