/* destructor */ static tsk_object_t* tdav_consumer_audiounit_dtor(tsk_object_t * self) { tdav_consumer_audiounit_t *consumer = self; if(consumer){ /* deinit self */ // Stop the consumer if not done if(consumer->started){ tdav_consumer_audiounit_stop(self); } // destroy handle if(consumer->audioUnitHandle){ tdav_audiounit_handle_destroy(&consumer->audioUnitHandle); } TSK_FREE(consumer->ring.chunck.buffer); if(consumer->ring.buffer){ speex_buffer_destroy(consumer->ring.buffer); } if(consumer->ring.mutex){ tsk_mutex_destroy(&consumer->ring.mutex); } /* deinit base */ tdav_consumer_audio_deinit(TDAV_CONSUMER_AUDIO(consumer)); } return self; }
/* destructor */ static tsk_object_t* tdav_producer_audiounit_dtor(tsk_object_t * self) { tdav_producer_audiounit_t *producer = self; if(producer){ // Stop the producer if not done if(producer->started){ tdav_producer_audiounit_stop(self); } // Free all buffers and dispose the queue if (producer->audioUnitHandle) { tdav_audiounit_handle_destroy(&producer->audioUnitHandle); } TSK_FREE(producer->ring.chunck.buffer); if(producer->ring.buffer){ speex_buffer_destroy(producer->ring.buffer); } /* deinit base */ tdav_producer_audio_deinit(TDAV_PRODUCER_AUDIO(producer)); TSK_DEBUG_INFO("*** AudioUnit Producer destroyed ***"); } return self; }
/* destructor */ static tsk_object_t* tdav_producer_audiounit_dtor(tsk_object_t * self) { tdav_producer_audiounit_t *producer = self; if(producer){ // Stop the producer if not done if(producer->started){ tdav_producer_audiounit_stop(self); } // Free all buffers and dispose the queue if (producer->audioUnitHandle) { tdav_audiounit_handle_destroy(&producer->audioUnitHandle); } if(producer->ring.mutex){ tsk_mutex_destroy(&producer->ring.mutex); } TSK_FREE(producer->ring.chunck.buffer); if(producer->ring.buffer){ speex_buffer_destroy(producer->ring.buffer); } if(producer->senderCondWait){ tsk_condwait_destroy(&producer->senderCondWait); } /* deinit base */ tdav_producer_audio_deinit(TDAV_PRODUCER_AUDIO(producer)); } return self; }
/* destructor */ static tsk_object_t* tdav_consumer_audiounit_dtor(tsk_object_t * self) { tdav_consumer_audiounit_t *consumer = self; if(consumer) { /* deinit self */ tdav_consumer_audiounit_deinit(TMEDIA_CONSUMER(self)); TSK_FREE(consumer->ring.chunck.buffer); if(consumer->ring.buffer) { speex_buffer_destroy(consumer->ring.buffer); } if(consumer->ring.mutex) { tsk_mutex_destroy(&consumer->ring.mutex); } /* deinit base */ tdav_consumer_audio_deinit(TDAV_CONSUMER_AUDIO(consumer)); TSK_DEBUG_INFO("*** AudioUnit Consumer destroyed ***"); } return self; }