eARCONTROLLER_ERROR ARCONTROLLER_Stream_Start (ARCONTROLLER_Stream_t *streamController, ARNETWORK_Manager_t *networkManager) { // -- Start to read the stream -- eARCONTROLLER_ERROR error = ARCONTROLLER_OK; // Check parameters if (streamController == NULL) { error = ARCONTROLLER_ERROR_BAD_PARAMETER; } // No Else: the checking parameters sets error to ARNETWORK_ERROR_BAD_PARAMETER and stop the processing if ((error == ARCONTROLLER_OK) && (!streamController->isRunning)) { streamController->isRunning = 1; if (ARCONTROLLER_Stream2_IsInitilized(streamController->stream2Controller)) { error = ARCONTROLLER_Stream2_Start (streamController->stream2Controller); } else { error = ARCONTROLLER_Stream1_Start (streamController->stream1Controller, networkManager); } if (error != ARCONTROLLER_OK) { ARCONTROLLER_Stream_Stop (streamController); } } return error; }
void ARCONTROLLER_Network_Delete (ARCONTROLLER_Network_t **networkController) { // -- Delete the Network Controller -- if (networkController != NULL) { if ((*networkController) != NULL) { (*networkController)->state = ARCONTROLLER_NETWORK_STATE_STOPPED; ARSAL_Mutex_Destroy (&((*networkController)->mutex)); // Check if the device has video if ((*networkController)->hasVideo) { ARCONTROLLER_Stream_Stop ((*networkController)->videoController); } //NO else ; device has not video ARCONTROLLER_Network_StopReaderThreads (*networkController); //TODO read error !!!!!!!!!! ARCONTROLLER_Network_StopNetworkThreads (*networkController); //TODO read error !!!!!!!!!! ARNETWORK_Manager_Delete(&((*networkController)->networkManager)); ARDISCOVERY_Device_DeleteARNetworkAL ((*networkController)->discoveryDevice, &((*networkController)->networkALManager)); //TODO read error !!!!!!!!!! ARDISCOVERY_Device_Delete (&((*networkController)->discoveryDevice)); free (*networkController); (*networkController) = NULL; } } }
eARCONTROLLER_ERROR ARCONTROLLER_Network_StopVideoStream (ARCONTROLLER_Network_t *networkController) { // -- Stop Video stream -- eARCONTROLLER_ERROR error = ARCONTROLLER_OK; int locked = 0; // Check parameters if (networkController == NULL) { error = ARCONTROLLER_ERROR_BAD_PARAMETER; } // No Else: the checking parameters sets error to ARNETWORK_ERROR_BAD_PARAMETER and stop the processing if (error == ARCONTROLLER_OK) { if (ARSAL_Mutex_Lock (&(networkController->mutex)) != 0) { error = ARCONTROLLER_ERROR_MUTEX; } else { locked = 1; } } if (error == ARCONTROLLER_OK) { // Check if the device has video if (networkController->hasVideo) { error = ARCONTROLLER_Stream_Stop (networkController->videoController); } //NO else ; device has not video } // No else: skipped by an error if (locked) { ARSAL_Mutex_Unlock (&(networkController->mutex)); } return error; }
void ARCONTROLLER_Stream_Delete (ARCONTROLLER_Stream_t **streamController) { // -- Delete the Stream Controller -- if (streamController != NULL) { if ((*streamController) != NULL) { ARCONTROLLER_Stream_Stop (*streamController); //Delete stream 1 ARCONTROLLER_Stream1_Delete (&((*streamController)->stream1Controller)); //Delete stream 2 ARCONTROLLER_Stream2_Delete (&((*streamController)->stream2Controller)); free (*streamController); (*streamController) = NULL; } } }