00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef __JackMachClientChannel__
00021 #define __JackMachClientChannel__
00022
00023 #include "JackChannel.h"
00024 #include "JackMachPort.h"
00025 #include "JackThread.h"
00026
00027 namespace Jack
00028 {
00029
00030 class JackLibClient;
00031
00036 class JackMachClientChannel : public JackClientChannelInterface, public JackRunnableInterface
00037 {
00038
00039 private:
00040
00041 JackMachPort fClientPort;
00042 JackMachPort fServerPort;
00043 mach_port_t fPrivatePort;
00044 JackThread* fThread;
00046 public:
00047
00048 JackMachClientChannel();
00049 virtual ~JackMachClientChannel();
00050
00051 int Open(const char* server_name, const char* name, char* name_res, JackClient* client, jack_options_t options, jack_status_t* status);
00052 void Close();
00053
00054 int Start();
00055 void Stop();
00056
00057 int ServerCheck(const char* server_name);
00058
00059 void ClientCheck(const char* name, char* name_res, int protocol, int options, int* status, int* result);
00060 void ClientOpen(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, const char* type, unsigned int flags, unsigned int buffer_size, unsigned int* 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 void GetInternalClientName(int refnum, int int_ref, char* name_res, int* result);
00082 void InternalClientHandle(int refnum, const char* client_name, int* status, int* int_ref, int* result);
00083 void InternalClientLoad(int refnum, const char* client_name, const char* so_name, const char* objet_data, int options, int* status, int* int_ref, int* result);
00084 void InternalClientUnload(int refnum, int int_ref, int* status, int* result);
00085
00086
00087 bool Execute();
00088 };
00089
00090
00091 }
00092
00093 #endif
00094