we only expose first two digital channels when card is echo3g and rate is more than 50000, it's a restriction noticed in C3g::Start()

it should enable playback/record at 88/92kHz


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16246 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Jérôme Duval
2006-02-06 11:25:06 +00:00
parent bb160ab5f6
commit 0098d20af2
@@ -918,8 +918,17 @@ echo_open(const char *name, uint32 flags, void** cookie)
#endif
LOG(("creating play streams\n"));
i = card->caps.wNumPipesOut - 2;
first_record_channel = card->caps.wNumPipesOut;
#ifdef ECHO3G_FAMILY
if (current_settings.sample_rate > 50000) {
i = card->caps.wFirstDigitalBusOut;
first_record_channel = card->caps.wFirstDigitalBusOut + 2;
}
#endif
for (i=card->caps.wNumPipesOut - 2; i >=0 ; i-=2) {
for (; i >=0 ; i-=2) {
stream = echo_stream_new(card, ECHO_USE_PLAY, current_settings.buffer_frames, current_settings.buffer_count);
if (!card->pstream)
card->pstream = stream;
@@ -928,11 +937,15 @@ echo_open(const char *name, uint32 flags, void** cookie)
stream->first_channel = i;
}
first_record_channel = card->caps.wNumPipesOut;
LOG(("creating record streams\n"));
i = card->caps.wNumPipesIn - 2;
#ifdef ECHO3G_FAMILY
if (current_settings.sample_rate > 50000) {
i = card->caps.wFirstDigitalBusIn;
}
#endif
for (i=card->caps.wNumPipesIn - 2; i >= 0; i-=2) {
for (; i >= 0; i-=2) {
stream = echo_stream_new(card, ECHO_USE_RECORD, current_settings.buffer_frames, current_settings.buffer_count);
if (!card->rstream)
card->rstream = stream;