if (player_data->handle)
{
- mm_sound_pcm_play_stop(player_data->handle);
- mm_sound_pcm_play_close(player_data->handle);
+ if (mm_sound_pcm_play_stop(player_data->handle) < 0)
+ remix_set_error (env, REMIX_ERROR_SYSTEM);
+ else
+ mm_sound_pcm_play_close(player_data->handle);
player_data->handle = NULL;
}
player_data->old_buffer_size = player_data->buffer_size;
if (player_data->handle)
{
- mm_sound_pcm_play_stop(player_data->handle);
- mm_sound_pcm_play_close(player_data->handle);
+ if (mm_sound_pcm_play_stop(player_data->handle) < 0)
+ remix_set_error (env, REMIX_ERROR_SYSTEM);
+ else
+ mm_sound_pcm_play_close(player_data->handle);
+ player_data->handle = NULL;
}
if (player_data->timeout) ecore_timer_del(player_data->timeout);
if (player_data->playbuffer) free(player_data->playbuffer);
static RemixBase *
remix_player_prepare (RemixEnv *env, RemixBase *base)
{
- remix_player_reset_device (env, base);
+// remix_player_reset_device (env, base);
return base;
}
*(player->playbuffer + i) = (PLAYER_PCM) value;
}
- ret = mm_sound_pcm_play_write(player->handle,
+ if (player->handle)
+ ret = mm_sound_pcm_play_write(player->handle,
player->playbuffer,
length);
if (ret < 0)
if (!player_data) return ECORE_CALLBACK_CANCEL;
if (!player_data->handle) return ECORE_CALLBACK_CANCEL;
- mm_sound_pcm_play_stop(player_data->handle);
- mm_sound_pcm_play_close(player_data->handle);
+ if (mm_sound_pcm_play_stop(player_data->handle) < 0)
+ {
+ player_data->handle = NULL;
+ player_data->timeout = NULL;
+ return ECORE_CALLBACK_CANCEL;
+ }
+ else
+ mm_sound_pcm_play_close(player_data->handle);
player_data->handle = NULL;
player_data->timeout = NULL;