X-Git-Url: http://git.eversberg.eu/gitweb.cgi?p=lcr.git;a=blobdiff_plain;f=joinremote.cpp;h=ec65f350addc1ce1670cec73633bef29e03dfe51;hp=ba0612c684ff3910c6fdf872c68e80b047396d82;hb=27b95197734350cc99c29929c2527f2c6d5541d6;hpb=b359d75e7deafce687e4e25abbb30b65738d64f0 diff --git a/joinremote.cpp b/joinremote.cpp index ba0612c..ec65f35 100644 --- a/joinremote.cpp +++ b/joinremote.cpp @@ -91,7 +91,7 @@ void JoinRemote::message_epoint(unsigned long epoint_id, int message_type, union void JoinRemote::message_remote(int message_type, union parameter *param) { - struct message *message; + struct lcr_msg *message; /* create relation if no relation exists */ if (!j_epoint_id) @@ -101,7 +101,7 @@ void JoinRemote::message_remote(int message_type, union parameter *param) if (!(epoint = new Endpoint(0, j_serial))) FATAL("No memory for Endpoint instance\n"); j_epoint_id = epoint->ep_serial; - if (!(epoint->ep_app = new DEFAULT_ENDPOINT_APP(epoint))) + if (!(epoint->ep_app = new DEFAULT_ENDPOINT_APP(epoint, 1))) // outgoing FATAL("No memory for Endpoint Application instance\n"); } @@ -109,11 +109,11 @@ void JoinRemote::message_remote(int message_type, union parameter *param) * also ref is given, so we send message with ref */ if (message_type == MESSAGE_BCHANNEL) { - message_bchannel_from_join(this, param->bchannel.type, param->bchannel.addr); + message_bchannel_from_join(this, param->bchannel.type, param->bchannel.handle); return; } - /* cannot just forward, because param is not of container "struct message" */ + /* cannot just forward, because param is not of container "struct lcr_msg" */ message = message_create(j_serial, j_epoint_id, JOIN_TO_EPOINT, message_type); memcpy(&message->param, param, sizeof(message->param)); message_put(message); @@ -125,13 +125,20 @@ void JoinRemote::message_remote(int message_type, union parameter *param) } } -void message_bchannel_to_join(unsigned long remote_id, unsigned long ref, int type, unsigned long addr) +void message_bchannel_to_join(unsigned long remote_id, unsigned long ref, int type, unsigned long handle, int tx_gain, int rx_gain, char *pipeline, unsigned char *crypt, int crypt_len, int crypt_type) { union parameter param; memset(¶m, 0, sizeof(union parameter)); param.bchannel.type = type; - param.bchannel.addr = addr; + param.bchannel.handle = handle; + param.bchannel.tx_gain = tx_gain; + param.bchannel.rx_gain = rx_gain; + if (pipeline) + SCPY(param.bchannel.pipeline, pipeline); + if (crypt_len) + memcpy(param.bchannel.crypt, crypt, crypt_len); + param.bchannel.crypt_type = crypt_type; if (admin_message_from_join(remote_id, ref, MESSAGE_BCHANNEL, ¶m)<0) { PERROR("No socket with remote id %d found, this happens, if the socket is closed before all bchannels are imported.\n", remote_id);