JackSocketClientChannel.h

00001 /*
00002 Copyright (C) 2004-2006 Grame  
00003   
00004   This program is free software; you can redistribute it and/or modify
00005   it under the terms of the GNU Lesser General Public License as published by
00006   the Free Software Foundation; either version 2.1 of the License, or
00007   (at your option) any later version.
00008   
00009   This program is distributed in the hope that it will be useful,
00010   but WITHOUT ANY WARRANTY; without even the implied warranty of
00011   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00012   GNU Lesser General Public License for more details.
00013   
00014   You should have received a copy of the GNU Lesser General Public License
00015   along with this program; if not, write to the Free Software 
00016   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
00017 
00018 */
00019 
00020 #ifndef __JackSocketClientChannel__
00021 #define __JackSocketClientChannel__
00022 
00023 #include "JackChannel.h"
00024 #include "JackSocket.h"
00025 #include "JackThread.h"
00026 #include "JackRequest.h"
00027 
00028 namespace Jack
00029 {
00030 
00035 class JackSocketClientChannel : public JackClientChannelInterface, public JackRunnableInterface
00036 {
00037 
00038     private:
00039 
00040         JackClientSocket fRequestSocket;                        // Socket to communicate with the server
00041         JackServerSocket fNotificationListenSocket;     // Socket listener for server notification
00042         JackClientSocket* fNotificationSocket;          // Socket for server notification
00043         JackThread*     fThread;                                                // Thread to execute the event loop
00044         JackClient*     fClient;
00045 
00046         void ServerSyncCall(JackRequest* req, JackResult* res, int* result);
00047         void ServerAsyncCall(JackRequest* req, JackResult* res, int* result);
00048 
00049     public:
00050 
00051         JackSocketClientChannel();
00052         virtual ~JackSocketClientChannel();
00053 
00054         int Open(const char* name, JackClient* obj);
00055         void Close();
00056 
00057         int Start();
00058         void Stop();
00059 
00060         void ClientNew(const char* name, int* shared_engine, int* shared_client, int* shared_graph, int* result);
00061         void ClientClose(int refnum, int* result);
00062 
00063         void ClientActivate(int refnum, int* result);
00064         void ClientDeactivate(int refnum, int* result);
00065 
00066         void PortRegister(int refnum, const char* name, unsigned int flags, unsigned int buffer_size, jack_port_id_t* port_index, int* result);
00067         void PortUnRegister(int refnum, jack_port_id_t port_index, int* result);
00068 
00069         void PortConnect(int refnum, const char* src, const char* dst, int* result);
00070         void PortDisconnect(int refnum, const char* src, const char* dst, int* result);
00071 
00072         void PortConnect(int refnum, jack_port_id_t src, jack_port_id_t dst, int* result);
00073         void PortDisconnect(int refnum, jack_port_id_t src, jack_port_id_t dst, int* result);
00074 
00075         void SetBufferSize(jack_nframes_t buffer_size, int* result);
00076         void SetFreewheel(int onoff, int* result);
00077 
00078         void ReleaseTimebase(int refnum, int* result);
00079         void SetTimebaseCallback(int refnum, int conditional, int* result);
00080 
00081         // JackRunnableInterface interface
00082         bool Init();
00083         bool Execute();
00084 };
00085 
00086 } // end of namespace
00087 
00088 #endif
00089 

Generated on Wed Jan 10 11:42:46 2007 for Jackdmp by  doxygen 1.4.5