git-svn-id: http://subversion.jackaudio.org/jack/jack2/trunk/jackmp@1806 0c269be4-1314-0410-8aa9-9f06e86f4224tags/0.70
| @@ -17,6 +17,10 @@ Tim Blechmann | |||||
| Jackdmp changes log | Jackdmp changes log | ||||
| --------------------------- | --------------------------- | ||||
| 2008-02-01 Stephane Letz <letz@grame.fr> | |||||
| * Move transport related methods from JackEngine to JackServer. | |||||
| 2008-01-31 Stephane Letz <letz@grame.fr> | 2008-01-31 Stephane Letz <letz@grame.fr> | ||||
| * Remove checking thread in CoreAudio driver, better device state change recovery strategy: the driver is stopped and restarted. | * Remove checking thread in CoreAudio driver, better device state change recovery strategy: the driver is stopped and restarted. | ||||
| @@ -739,19 +739,6 @@ int JackEngine::PortDisconnect(int refnum, jack_port_id_t src, jack_port_id_t ds | |||||
| } | } | ||||
| } | } | ||||
| //---------------------- | |||||
| // Transport management | |||||
| //---------------------- | |||||
| int JackEngine::ReleaseTimebase(int refnum) | |||||
| { | |||||
| return fEngineControl->fTransport.ResetTimebase(refnum); | |||||
| } | |||||
| int JackEngine::SetTimebaseCallback(int refnum, int conditional) | |||||
| { | |||||
| return fEngineControl->fTransport.SetTimebase(refnum, conditional); | |||||
| } | |||||
| } // end of namespace | } // end of namespace | ||||
| @@ -102,10 +102,6 @@ class JackEngine | |||||
| int PortConnect(int refnum, jack_port_id_t src, jack_port_id_t dst); | int PortConnect(int refnum, jack_port_id_t src, jack_port_id_t dst); | ||||
| int PortDisconnect(int refnum, jack_port_id_t src, jack_port_id_t dst); | int PortDisconnect(int refnum, jack_port_id_t src, jack_port_id_t dst); | ||||
| // Transport management | |||||
| int ReleaseTimebase(int refnum); | |||||
| int SetTimebaseCallback(int refnum, int conditional); | |||||
| // Graph | // Graph | ||||
| bool Process(jack_time_t callback_usecs); | bool Process(jack_time_t callback_usecs); | ||||
| @@ -108,15 +108,14 @@ class JackInternalClientChannel : public JackClientChannelInterface | |||||
| *result = fServer->SetFreewheel(onoff); | *result = fServer->SetFreewheel(onoff); | ||||
| } | } | ||||
| // A FINIR | |||||
| void ReleaseTimebase(int refnum, int* result) | |||||
| void ReleaseTimebase(int refnum, int* result) | |||||
| { | { | ||||
| *result = fEngine->ReleaseTimebase(refnum); | |||||
| *result = fServer->ReleaseTimebase(refnum); | |||||
| } | } | ||||
| void SetTimebaseCallback(int refnum, int conditional, int* result) | void SetTimebaseCallback(int refnum, int conditional, int* result) | ||||
| { | { | ||||
| *result = fEngine->SetTimebaseCallback(refnum, conditional); | |||||
| *result = fServer->SetTimebaseCallback(refnum, conditional); | |||||
| } | } | ||||
| }; | }; | ||||
| @@ -272,6 +272,20 @@ void JackServer::Notify(int refnum, int notify, int value) | |||||
| } | } | ||||
| } | } | ||||
| //---------------------- | |||||
| // Transport management | |||||
| //---------------------- | |||||
| int JackServer::ReleaseTimebase(int refnum) | |||||
| { | |||||
| return fEngineControl->fTransport.ResetTimebase(refnum); | |||||
| } | |||||
| int JackServer::SetTimebaseCallback(int refnum, int conditional) | |||||
| { | |||||
| return fEngineControl->fTransport.SetTimebase(refnum, conditional); | |||||
| } | |||||
| JackEngine* JackServer::GetEngine() | JackEngine* JackServer::GetEngine() | ||||
| { | { | ||||
| return fEngine; | return fEngine; | ||||
| @@ -75,7 +75,12 @@ class EXPORT JackServer | |||||
| void Notify(int refnum, int notify, int value); | void Notify(int refnum, int notify, int value); | ||||
| int InternalClientLoad(const char* client_name, const char* so_name, const char* objet_data, int options, int* int_ref, int* status); | int InternalClientLoad(const char* client_name, const char* so_name, const char* objet_data, int options, int* int_ref, int* status); | ||||
| // Transport management | |||||
| int ReleaseTimebase(int refnum); | |||||
| int SetTimebaseCallback(int refnum, int conditional); | |||||
| // Object access | |||||
| JackEngine* GetEngine(); | JackEngine* GetEngine(); | ||||
| JackEngineControl* GetEngineControl(); | JackEngineControl* GetEngineControl(); | ||||
| JackSynchro** GetSynchroTable(); | JackSynchro** GetSynchroTable(); | ||||
| @@ -287,7 +287,7 @@ int JackSocketServerChannel::HandleRequest(int fd) | |||||
| JackReleaseTimebaseRequest req; | JackReleaseTimebaseRequest req; | ||||
| JackResult res; | JackResult res; | ||||
| if (req.Read(socket) == 0) | if (req.Read(socket) == 0) | ||||
| res.fResult = fServer->GetEngine()->ReleaseTimebase(req.fRefNum); | |||||
| res.fResult = fServer->ReleaseTimebase(req.fRefNum); | |||||
| res.Write(socket); | res.Write(socket); | ||||
| break; | break; | ||||
| } | } | ||||
| @@ -297,7 +297,7 @@ int JackSocketServerChannel::HandleRequest(int fd) | |||||
| JackSetTimebaseCallbackRequest req; | JackSetTimebaseCallbackRequest req; | ||||
| JackResult res; | JackResult res; | ||||
| if (req.Read(socket) == 0) | if (req.Read(socket) == 0) | ||||
| res.fResult = fServer->GetEngine()->SetTimebaseCallback(req.fRefNum, req.fConditionnal); | |||||
| res.fResult = fServer->SetTimebaseCallback(req.fRefNum, req.fConditionnal); | |||||
| res.Write(socket); | res.Write(socket); | ||||
| break; | break; | ||||
| } | } | ||||
| @@ -166,7 +166,7 @@ rpc_type server_rpc_jack_release_timebase(mach_port_t private_port, int refnum, | |||||
| JackLog("server_rpc_jack_release_timebase\n"); | JackLog("server_rpc_jack_release_timebase\n"); | ||||
| JackMachServerChannel* channel = JackMachServerChannel::fPortTable[private_port]; | JackMachServerChannel* channel = JackMachServerChannel::fPortTable[private_port]; | ||||
| assert(channel); | assert(channel); | ||||
| *result = channel->GetServer()->GetEngine()->ReleaseTimebase(refnum); | |||||
| *result = channel->GetServer()->ReleaseTimebase(refnum); | |||||
| return KERN_SUCCESS; | return KERN_SUCCESS; | ||||
| } | } | ||||
| @@ -175,7 +175,7 @@ rpc_type server_rpc_jack_set_timebase_callback(mach_port_t private_port, int ref | |||||
| JackLog("server_rpc_jack_set_timebase_callback\n"); | JackLog("server_rpc_jack_set_timebase_callback\n"); | ||||
| JackMachServerChannel* channel = JackMachServerChannel::fPortTable[private_port]; | JackMachServerChannel* channel = JackMachServerChannel::fPortTable[private_port]; | ||||
| assert(channel); | assert(channel); | ||||
| *result = channel->GetServer()->GetEngine()->SetTimebaseCallback(refnum, conditional); | |||||
| *result = channel->GetServer()->SetTimebaseCallback(refnum, conditional); | |||||
| return KERN_SUCCESS; | return KERN_SUCCESS; | ||||
| } | } | ||||
| @@ -608,28 +608,28 @@ | |||||
| isa = PBXContainerItemProxy; | isa = PBXContainerItemProxy; | ||||
| containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; | containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; | ||||
| proxyType = 1; | proxyType = 1; | ||||
| remoteGlobalIDString = 4B0A28DC0D52073D002EFF74 /* jack_thread_wait */; | |||||
| remoteGlobalIDString = 4B0A28DC0D52073D002EFF74; | |||||
| remoteInfo = jack_thread_wait; | remoteInfo = jack_thread_wait; | ||||
| }; | }; | ||||
| 4B0A292F0D5210C4002EFF74 /* PBXContainerItemProxy */ = { | 4B0A292F0D5210C4002EFF74 /* PBXContainerItemProxy */ = { | ||||
| isa = PBXContainerItemProxy; | isa = PBXContainerItemProxy; | ||||
| containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; | containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; | ||||
| proxyType = 1; | proxyType = 1; | ||||
| remoteGlobalIDString = 4B0A29230D52108E002EFF74 /* jack_thread_wait 64 bits */; | |||||
| remoteGlobalIDString = 4B0A29230D52108E002EFF74; | |||||
| remoteInfo = "jack_thread_wait 64 bits"; | remoteInfo = "jack_thread_wait 64 bits"; | ||||
| }; | }; | ||||
| 4B0A2A6D0D524AF2002EFF74 /* PBXContainerItemProxy */ = { | 4B0A2A6D0D524AF2002EFF74 /* PBXContainerItemProxy */ = { | ||||
| isa = PBXContainerItemProxy; | isa = PBXContainerItemProxy; | ||||
| containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; | containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; | ||||
| proxyType = 1; | proxyType = 1; | ||||
| remoteGlobalIDString = 4B0A29630D5231DC002EFF74 /* jack_mp_thread_wait */; | |||||
| remoteGlobalIDString = 4B0A29630D5231DC002EFF74; | |||||
| remoteInfo = jack_mp_thread_wait; | remoteInfo = jack_mp_thread_wait; | ||||
| }; | }; | ||||
| 4B0A2A6F0D524B01002EFF74 /* PBXContainerItemProxy */ = { | 4B0A2A6F0D524B01002EFF74 /* PBXContainerItemProxy */ = { | ||||
| isa = PBXContainerItemProxy; | isa = PBXContainerItemProxy; | ||||
| containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; | containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; | ||||
| proxyType = 1; | proxyType = 1; | ||||
| remoteGlobalIDString = 4B0A2A5B0D524AB2002EFF74 /* jack_mp_thread_wait 64 bits */; | |||||
| remoteGlobalIDString = 4B0A2A5B0D524AB2002EFF74; | |||||
| remoteInfo = "jack_mp_thread_wait 64 bits"; | remoteInfo = "jack_mp_thread_wait 64 bits"; | ||||
| }; | }; | ||||
| 4B1C1ABF0CC61597005F551E /* PBXContainerItemProxy */ = { | 4B1C1ABF0CC61597005F551E /* PBXContainerItemProxy */ = { | ||||
| @@ -244,7 +244,7 @@ int JackClientPipeThread::HandleRequest() | |||||
| JackReleaseTimebaseRequest req; | JackReleaseTimebaseRequest req; | ||||
| JackResult res; | JackResult res; | ||||
| if (req.Read(fPipe) == 0) | if (req.Read(fPipe) == 0) | ||||
| res.fResult = fServer->GetEngine()->ReleaseTimebase(req.fRefNum); | |||||
| res.fResult = fServer->ReleaseTimebase(req.fRefNum); | |||||
| res.Write(fPipe); | res.Write(fPipe); | ||||
| break; | break; | ||||
| } | } | ||||
| @@ -254,7 +254,7 @@ int JackClientPipeThread::HandleRequest() | |||||
| JackSetTimebaseCallbackRequest req; | JackSetTimebaseCallbackRequest req; | ||||
| JackResult res; | JackResult res; | ||||
| if (req.Read(fPipe) == 0) | if (req.Read(fPipe) == 0) | ||||
| res.fResult = fServer->GetEngine()->SetTimebaseCallback(req.fRefNum, req.fConditionnal); | |||||
| res.fResult = fServer->SetTimebaseCallback(req.fRefNum, req.fConditionnal); | |||||
| res.Write(fPipe); | res.Write(fPipe); | ||||
| break; | break; | ||||
| } | } | ||||
| @@ -372,7 +372,7 @@ int JackWinNamedPipeServerChannel::Open(const char* server_name, JackServer* ser | |||||
| { | { | ||||
| JackLog("JackWinNamedPipeServerChannel::Open \n"); | JackLog("JackWinNamedPipeServerChannel::Open \n"); | ||||
| fServer = server; | |||||
| fServer = server; | |||||
| snprintf(fServerName, sizeof(fServerName), server_name); | snprintf(fServerName, sizeof(fServerName), server_name); | ||||
| // Needed for internal connection from JackWinNamedPipeServerNotifyChannel object | // Needed for internal connection from JackWinNamedPipeServerNotifyChannel object | ||||