Fixed the problem of not being able to work from Haiku. The main problem was that although the multi_audio API on BeOS hands the driver the settings as made in the Media prefs, the Haiku one just gives maximum values and assumes the driver will scale the values down. I didn't do that.
If you run Haiku on HDA hardware, you should have sound now too! :) git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21161 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
parent
abc3549242
commit
fa48b9d885
@ -30,6 +30,9 @@
|
||||
#define MAX_CODEC_RESPONSES 10
|
||||
#define MAXINPUTS 32
|
||||
|
||||
/* FIXME: Find out why we need so much! */
|
||||
#define DEFAULT_FRAMESPERBUF 4096
|
||||
|
||||
typedef struct hda_controller_s hda_controller;
|
||||
typedef struct hda_codec_s hda_codec;
|
||||
typedef struct hda_afg_s hda_afg;
|
||||
|
@ -153,12 +153,25 @@ get_buffers(hda_afg* afg, multi_buffer_list* data)
|
||||
dprintf("%s: record: %ld buffers, %ld channels, %ld samples\n", __func__,
|
||||
data->request_record_buffers, data->request_record_channels, data->request_record_buffer_size);
|
||||
|
||||
/* Workaround for Haiku multi_audio API, since it prefers to let the driver pick
|
||||
values, while the BeOS multi_audio actually gives the user's defaults. */
|
||||
if (data->request_playback_buffers > STRMAXBUF ||
|
||||
data->request_playback_buffers < STRMINBUF ||
|
||||
data->request_record_buffers > STRMAXBUF ||
|
||||
data->request_record_buffers < STRMINBUF) {
|
||||
return B_BAD_VALUE;
|
||||
data->request_playback_buffers < STRMINBUF) {
|
||||
data->request_playback_buffers = STRMINBUF;
|
||||
}
|
||||
|
||||
if (data->request_record_buffers > STRMAXBUF ||
|
||||
data->request_record_buffers < STRMINBUF) {
|
||||
data->request_record_buffers = STRMINBUF;
|
||||
}
|
||||
|
||||
if (data->request_playback_buffer_size == 0)
|
||||
data->request_playback_buffer_size = DEFAULT_FRAMESPERBUF;
|
||||
|
||||
if (data->request_record_buffer_size == 0)
|
||||
data->request_record_buffer_size = DEFAULT_FRAMESPERBUF;
|
||||
|
||||
/* ... from here on, we can assume again that a reasonable request is being made */
|
||||
|
||||
data->flags = 0;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user