00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef __JackGenericClientChannel__
00021 #define __JackGenericClientChannel__
00022
00023 #include "JackChannel.h"
00024
00025 namespace Jack
00026 {
00027
00028 struct JackRequest;
00029 struct JackResult;
00030
00035 class JackGenericClientChannel : public detail::JackClientChannelInterface
00036 {
00037
00038 protected:
00039
00040 detail::JackClientRequestInterface* fRequest;
00041
00042 void ServerSyncCall(JackRequest* req, JackResult* res, int* result);
00043 void ServerAsyncCall(JackRequest* req, JackResult* res, int* result);
00044
00045 public:
00046
00047 JackGenericClientChannel();
00048 virtual ~JackGenericClientChannel();
00049
00050 virtual int Open(const char* server_name, const char* name, int uuid, char* name_res, JackClient* obj, jack_options_t options, jack_status_t* status) { return -1; }
00051 virtual void Close() {}
00052
00053 virtual int Start() { return -1; }
00054 virtual void Stop() {}
00055
00056 int ServerCheck(const char* server_name);
00057
00058 void ClientCheck(const char* name, int uuid, char* name_res, int protocol, int options, int* status, int* result, int open);
00059 void ClientOpen(const char* name, int pid, int uuid, 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 is_real_time, int* result);
00063 void ClientDeactivate(int refnum, int* result);
00064
00065 void PortRegister(int refnum, const char* name, const char* type, 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 PortRename(int refnum, jack_port_id_t port, const char* name, int* result);
00075
00076 void SetBufferSize(jack_nframes_t buffer_size, int* result);
00077 void SetFreewheel(int onoff, int* result);
00078
00079 void ComputeTotalLatencies(int* result);
00080
00081 void ReleaseTimebase(int refnum, int* result);
00082 void SetTimebaseCallback(int refnum, int conditional, int* result);
00083
00084 void GetInternalClientName(int refnum, int int_ref, char* name_res, int* result);
00085 void InternalClientHandle(int refnum, const char* client_name, int* status, int* int_ref, int* result);
00086 void InternalClientLoad(int refnum, const char* client_name, const char* so_name, const char* objet_data, int options, int* status, int* int_ref, int uuid, int* result);
00087 void InternalClientUnload(int refnum, int int_ref, int* status, int* result);
00088
00089
00090 void SessionNotify(int refnum, const char* target, jack_session_event_type_t type, const char* path, jack_session_command_t** result);
00091 void SessionReply(int refnum, int* result);
00092 void GetUUIDForClientName(int refnum, const char* client_name, char* uuid_res, int* result);
00093 void GetClientNameForUUID(int refnum, const char* uuid, char* name_res, int* result);
00094 void ReserveClientName(int refnum, const char* client_name, const char *uuid, int* result);
00095 void ClientHasSessionCallback(const char* client_name, int* result);
00096 };
00097
00098 }
00099
00100 #endif
00101