more status checking, and more output

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6504 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
shatty
2004-02-05 04:48:54 +00:00
parent 59f2d9c1c7
commit 9524098cd8
+27 -6
View File
@@ -120,6 +120,8 @@ echo_mem_free(echo_dev *card, void *ptr)
/* Echo stream functions */
extern char * pStatusStrs[ECHOSTATUS_LAST];
status_t
echo_stream_set_audioparms(echo_stream *stream, uint8 channels,
uint8 b16, uint32 sample_rate)
@@ -129,18 +131,29 @@ echo_stream_set_audioparms(echo_stream *stream, uint8 channels,
ECHOGALS_OPENAUDIOPARAMETERS open_params;
ECHOGALS_CLOSEAUDIOPARAMETERS close_params;
ECHOGALS_AUDIOFORMAT format_params;
ECHOSTATUS status;
LOG(("echo_stream_set_audioparms\n"));
close_params.wPipeIndex = stream->pipe;
stream->card->pEG->CloseAudio(&close_params);
status = stream->card->pEG->CloseAudio(&close_params);
if(status!=ECHOSTATUS_OK) {
PRINT(("echo_stream_set_audioparms : CloseAudio failed\n"));
PRINT(("  status: %s \n", pStatusStrs[status]));
return B_ERROR;
}
open_params.bIsCyclic = TRUE;
open_params.Pipe.nPipe = 0;
open_params.Pipe.bIsInput = stream->use == ECHO_USE_RECORD ? TRUE : FALSE;
open_params.Pipe.wInterleave = stream->channels;
stream->card->pEG->OpenAudio(&open_params, &stream->pipe);
status = stream->card->pEG->OpenAudio(&open_params, &stream->pipe);
if(status!=ECHOSTATUS_OK) {
PRINT(("echo_stream_set_audioparms : OpenAudio failed\n"));
PRINT(("  status: %s \n", pStatusStrs[status]));
return B_ERROR;
}
if ((stream->channels == channels) &&
(stream->b16 == b16) &&
@@ -152,25 +165,33 @@ echo_stream_set_audioparms(echo_stream *stream, uint8 channels,
format_params.byMonoToStereo = 0;
format_params.wDataInterleave = channels == 1 ? 1 : 2;
if(stream->card->pEG->QueryAudioFormat(stream->pipe, &format_params)!=ECHOSTATUS_OK) {
status = stream->card->pEG->QueryAudioFormat(stream->pipe, &format_params);
if(status!=ECHOSTATUS_OK) {
PRINT(("echo_stream_set_audioparms : bad format when querying\n"));
PRINT(("  status: %s \n", pStatusStrs[status]));
return B_ERROR;
}
/* XXXX : setting sample rate is global in this driver */
if(stream->card->pEG->QueryAudioSampleRate(sample_rate)!=ECHOSTATUS_OK) {
status = stream->card->pEG->QueryAudioSampleRate(sample_rate);
if(status!=ECHOSTATUS_OK) {
PRINT(("echo_stream_set_audioparms : bad sample rate when querying\n"));
PRINT(("  status: %s \n", pStatusStrs[status]));
return B_ERROR;
}
if(stream->card->pEG->SetAudioFormat(stream->pipe, &format_params)!=ECHOSTATUS_OK) {
status = stream->card->pEG->SetAudioFormat(stream->pipe, &format_params);
if(status!=ECHOSTATUS_OK) {
PRINT(("echo_stream_set_audioparms : bad format when setting\n"));
PRINT(("  status: %s \n", pStatusStrs[status]));
return B_ERROR;
}
/* XXXX : setting sample rate is global in this driver */
if(stream->card->pEG->SetAudioSampleRate(sample_rate)!=ECHOSTATUS_OK) {
status = stream->card->pEG->SetAudioSampleRate(sample_rate);
if(status!=ECHOSTATUS_OK) {
PRINT(("echo_stream_set_audioparms : bad sample rate when setting\n"));
PRINT((" status: %s \n", pStatusStrs[status]));
return B_ERROR;
}