if(pConfig==NULL||pConfig->channels==0||pConfig->sampleRate==0)returnmal_post_error(pDevice,"mal_device_init() called with invalid arguments.",MAL_INVALID_ARGS);
if(pContext==NULL){
returnmal_post_error(pDevice,"mal_device_init() called with invalid arguments (pContext == NULL).",MAL_INVALID_ARGS);
}
// Basic config validation.
if(pConfig==NULL){
returnmal_post_error(pDevice,"mal_device_init() called with invalid arguments (pConfig == NULL).",MAL_INVALID_ARGS);
}
if(pConfig->channels==0){
returnmal_post_error(pDevice,"mal_device_init() called with an invalid config. Channel count must be greater than 0.",MAL_INVALID_DEVICE_CONFIG);
}
if(pConfig->channels>MAL_MAX_CHANNELS){
if(pConfig->channels>MAL_MAX_CHANNELS){
returnMAL_FORMAT_NOT_SUPPORTED;
returnmal_post_error(pDevice,"mal_device_init() called with an invalid config. Channel count cannot exceed 18.",MAL_INVALID_DEVICE_CONFIG);
}
if(pConfig->sampleRate==0){
returnmal_post_error(pDevice,"mal_device_init() called with an invalid config. Sample rate must be greater than 0.",MAL_INVALID_DEVICE_CONFIG);
if(pDevice==NULL)returnmal_post_error(pDevice,"mal_device_start() called with invalid arguments.",MAL_INVALID_ARGS);
if(pDevice==NULL)returnmal_post_error(pDevice,"mal_device_start() called with invalid arguments (pDevice == NULL).",MAL_INVALID_ARGS);
if(mal_device__get_state(pDevice)==MAL_STATE_UNINITIALIZED)returnmal_post_error(pDevice,"mal_device_start() called for an uninitialized device.",MAL_DEVICE_NOT_INITIALIZED);
if(mal_device__get_state(pDevice)==MAL_STATE_UNINITIALIZED)returnmal_post_error(pDevice,"mal_device_start() called for an uninitialized device.",MAL_DEVICE_NOT_INITIALIZED);
if(pDevice==NULL)returnmal_post_error(pDevice,"mal_device_stop() called with invalid arguments.",MAL_INVALID_ARGS);
if(pDevice==NULL)returnmal_post_error(pDevice,"mal_device_stop() called with invalid arguments (pDevice == NULL).",MAL_INVALID_ARGS);
if(mal_device__get_state(pDevice)==MAL_STATE_UNINITIALIZED)returnmal_post_error(pDevice,"mal_device_stop() called for an uninitialized device.",MAL_DEVICE_NOT_INITIALIZED);
if(mal_device__get_state(pDevice)==MAL_STATE_UNINITIALIZED)returnmal_post_error(pDevice,"mal_device_stop() called for an uninitialized device.",MAL_DEVICE_NOT_INITIALIZED);