diff --git a/dap_stream_ch.c b/dap_stream_ch.c index 8573eaa1a39c01bcc2b694676fe76d6b9e62e504..4cd6c5f0428edf58e0fe206e23fdd86cd803d743 100755 --- a/dap_stream_ch.c +++ b/dap_stream_ch.c @@ -115,6 +115,34 @@ void dap_stream_ch_delete(dap_stream_ch_t*ch) //free(ch); } +/** + * @brief dap_stream_ch_set_ready_to_read + * @param a_ch + * @param a_is_ready + */ +void dap_stream_ch_set_ready_to_read(dap_stream_ch_t * a_ch,bool a_is_ready) +{ + pthread_mutex_lock(&a_ch->mutex); + if( a_ch->ready_to_read != a_is_ready){ + //log_it(L_DEBUG,"Change channel '%c' to %s", (char) ch->proc->id, is_ready?"true":"false"); + a_ch->ready_to_read=a_is_ready; + if(a_ch->stream->conn_udp) + dap_udp_client_ready_to_read(a_ch->stream->conn,a_is_ready); + // for stream server + else if(a_ch->stream->conn) + dap_client_remote_ready_to_read( a_ch->stream->conn,a_is_ready); + // for stream client + else if(a_ch->stream->events_socket) + dap_events_socket_set_readable( a_ch->stream->events_socket, a_is_ready); + } + pthread_mutex_unlock(&a_ch->mutex); +} + +/** + * @brief dap_stream_ch_set_ready_to_write + * @param ch + * @param is_ready + */ void dap_stream_ch_set_ready_to_write(dap_stream_ch_t * ch,bool is_ready) { pthread_mutex_lock(&ch->mutex); diff --git a/dap_stream_ch.h b/dap_stream_ch.h index ad7180ed45f7a79024f9aa34129c37aca93ea6a6..2b8a72c3e529255655644c7c845f192cb6776935 100755 --- a/dap_stream_ch.h +++ b/dap_stream_ch.h @@ -55,6 +55,7 @@ void dap_stream_ch_deinit(); dap_stream_ch_t* dap_stream_ch_new( dap_stream_t * dap_stream,uint8_t id); +void dap_stream_ch_set_ready_to_read(dap_stream_ch_t * ch,bool is_ready); void dap_stream_ch_set_ready_to_write(dap_stream_ch_t * ch,bool is_ready); void dap_stream_ch_delete(dap_stream_ch_t*ch);