00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef __JackWinNamedPipeClientChannel__
00021 #define __JackWinNamedPipeClientChannel__
00022
00023 #include "JackChannel.h"
00024 #include "JackWinNamedPipe.h"
00025 #include "JackThread.h"
00026 #include "JackRequest.h"
00027
00028 namespace Jack
00029 {
00030
00035 class JackWinNamedPipeClientChannel : public JackClientChannelInterface, public JackRunnableInterface
00036 {
00037
00038 private:
00039
00040 JackWinNamedPipeClient fRequestPipe;
00041 JackWinNamedPipeServer fNotificationListenPipe;
00042 JackThread* fThread;
00043 JackClient* fClient;
00044
00045 void ServerSyncCall(JackRequest* req, JackResult* res, int* result);
00046 void ServerAsyncCall(JackRequest* req, JackResult* res, int* result);
00047
00048 public:
00049
00050 JackWinNamedPipeClientChannel();
00051 virtual ~JackWinNamedPipeClientChannel();
00052
00053 int Open(const char* name, JackClient* obj);
00054 void Close();
00055
00056 int Start();
00057 void Stop();
00058
00059 void ClientNew(const char* name, int* shared_engine, int* shared_client, int* shared_graph, int* result);
00060 void ClientClose(int refnum, int* result);
00061
00062 void ClientActivate(int refnum, int* result);
00063 void ClientDeactivate(int refnum, int* result);
00064
00065 void PortRegister(int refnum, const char* name, unsigned int flags, unsigned int buffer_size, jack_port_id_t* port_index, int* result);
00066 void PortUnRegister(int refnum, jack_port_id_t port_index, int* result);
00067
00068 void PortConnect(int refnum, const char* src, const char* dst, int* result);
00069 void PortDisconnect(int refnum, const char* src, const char* dst, int* result);
00070
00071 void PortConnect(int refnum, jack_port_id_t src, jack_port_id_t dst, int* result);
00072 void PortDisconnect(int refnum, jack_port_id_t src, jack_port_id_t dst, int* result);
00073
00074 void SetBufferSize(jack_nframes_t buffer_size, int* result);
00075 void SetFreewheel(int onoff, int* result);
00076
00077 void ReleaseTimebase(int refnum, int* result);
00078 void SetTimebaseCallback(int refnum, int conditional, int* result);
00079
00080
00081 bool Init();
00082 bool Execute();
00083 };
00084
00085 }
00086
00087 #endif
00088