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:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user