Lines Matching refs:card

48 auvia_ac97_get_mix(void *card, const void *cookie, int32 type, float *values) {
49 auvia_dev *dev = (auvia_dev*)card;
106 auvia_ac97_set_mix(void *card, const void *cookie, int32 type, float *values) {
107 auvia_dev *dev = (auvia_dev*)card;
399 auvia_get_mix(auvia_dev *card, multi_mix_value_info * mmvi)
405 if (id < 0 || (uint32)id >= card->multi.control_count) {
410 control = &card->multi.controls[id];
415 control->get(card, control->cookie, control->type, values);
425 control->get(card, control->cookie, control->type, values);
431 control->get(card, control->cookie, control->type, values);
440 auvia_set_mix(auvia_dev *card, multi_mix_value_info * mmvi)
446 if (id < 0 || (uint32)id >= card->multi.control_count) {
451 control = &card->multi.controls[id];
457 if (id < 0 || (uint32)id >= card->multi.control_count) {
461 control2 = &card->multi.controls[id];
480 control->set(card, control->cookie, control->type, values);
491 control->set(card, control->cookie, control->type, values);
498 control->set(card, control->cookie, control->type, values);
506 auvia_list_mix_controls(auvia_dev *card, multi_mix_control_info * mmci)
515 if (auvia_create_controls_list(&card->multi) < B_OK)
517 for (i = 0; i < card->multi.control_count; i++) {
518 mmc[i] = card->multi.controls[i].mix_control;
521 mmci->control_count = card->multi.control_count;
527 auvia_list_mix_connections(auvia_dev *card, multi_mix_connection_info * data)
534 auvia_list_mix_channels(auvia_dev *card, multi_mix_channel_info *data)
593 LIST_FOREACH(stream, &((auvia_dev*)multi->card)->streams, next) {
654 auvia_get_description(auvia_dev *card, multi_description *data)
661 if (IS_686(&card->config))
663 else if (IS_8233(&card->config)) {
664 switch (card->info.revision) {
695 data->output_channel_count = card->multi.output_channel_count;
696 data->input_channel_count = card->multi.input_channel_count;
697 data->output_bus_channel_count = card->multi.output_bus_channel_count;
698 data->input_bus_channel_count = card->multi.input_bus_channel_count;
699 data->aux_bus_channel_count = card->multi.aux_bus_channel_count;
701 size = card->multi.output_channel_count + card->multi.input_channel_count
702 + card->multi.output_bus_channel_count + card->multi.input_bus_channel_count
703 + card->multi.aux_bus_channel_count;
713 memcpy(data->channels, card->multi.chans, size * sizeof(card->multi.chans[0]));
738 auvia_get_enabled_channels(auvia_dev *card, multi_channel_enable *data)
756 auvia_set_enabled_channels(auvia_dev *card, multi_channel_enable *data)
767 auvia_get_global_format(auvia_dev *card, multi_format_info *data)
789 auvia_get_buffers(auvia_dev *card, multi_buffer_list *data)
801 pchannels = card->pstream->channels;
802 rchannels = card->rstream->channels;
822 auvia_stream_get_nth_buffer(card->pstream, j, i,
832 auvia_stream_get_nth_buffer(card->rstream, j, i,
856 //get_sem_count(stream->card->buffer_ready_sem, &count);
858 release_sem_etc(stream->card->buffer_ready_sem, 1, B_DO_NOT_RESCHEDULE);
878 //get_sem_count(stream->card->buffer_ready_sem, &count);
880 release_sem_etc(stream->card->buffer_ready_sem, 1, B_DO_NOT_RESCHEDULE);
885 auvia_buffer_exchange(auvia_dev *card, multi_buffer_info *data)
900 if (!(card->pstream->state & AUVIA_STATE_STARTED))
901 auvia_stream_start(card->pstream, auvia_play_inth, card->pstream);
903 if (!(card->rstream->state & AUVIA_STATE_STARTED))
904 auvia_stream_start(card->rstream, auvia_record_inth, card->rstream);
906 if (acquire_sem_etc(card->buffer_ready_sem, 1, B_RELATIVE_TIMEOUT | B_CAN_INTERRUPT, 50000)
913 LIST_FOREACH(pstream, &card->streams, next) {
921 LIST_FOREACH(rstream, &card->streams, next) {
930 pstream = card->pstream;
932 rstream = card->rstream;
962 auvia_buffer_force_stop(auvia_dev *card)
964 //auvia_voice_halt(card->pvoice);
972 auvia_dev *card = (auvia_dev *)cookie;
977 return auvia_get_description(card, (multi_description *)data);
989 return auvia_get_enabled_channels(card, (multi_channel_enable *)data);
992 return auvia_set_enabled_channels(card, (multi_channel_enable *)data);
995 return auvia_get_global_format(card, (multi_format_info *)data);
1009 return auvia_get_mix(card, (multi_mix_value_info *)data);
1012 return auvia_set_mix(card, (multi_mix_value_info *)data);
1015 return auvia_list_mix_channels(card, (multi_mix_channel_info *)data);
1018 return auvia_list_mix_controls(card, (multi_mix_control_info *)data);
1021 return auvia_list_mix_connections(card, (multi_mix_connection_info *)data);
1024 return auvia_get_buffers(card, data);
1033 return auvia_buffer_exchange(card, (multi_buffer_info *)data);
1036 return auvia_buffer_force_stop(card);
1066 auvia_dev *card = NULL;
1073 card = &cards[ix];
1077 if (card == NULL) {
1078 LOG(("open() card not found %s\n", name));
1080 LOG(("open() card available %s\n", cards[ix].name));
1085 LOG(("open() got card\n"));
1087 if (card->pstream !=NULL)
1089 if (card->rstream !=NULL)
1092 *cookie = card;
1093 card->multi.card = card;
1097 card->rstream = auvia_stream_new(card, AUVIA_USE_RECORD, BUFFER_FRAMES, BUFFER_COUNT);
1098 card->pstream = auvia_stream_new(card, AUVIA_USE_PLAY, BUFFER_FRAMES, BUFFER_COUNT);
1100 card->buffer_ready_sem = create_sem(0, "pbuffer ready");
1104 auvia_stream_set_audioparms(card->pstream, 2, true, 48000);
1105 auvia_stream_set_audioparms(card->rstream, 2, true, 48000);
1107 card->pstream->first_channel = 0;
1108 card->rstream->first_channel = 2;
1110 auvia_stream_commit_parms(card->pstream);
1111 auvia_stream_commit_parms(card->rstream);
1113 auvia_create_channels_list(&card->multi);
1122 //auvia_dev *card = cookie;
1132 auvia_dev *card = cookie;
1136 if (card->buffer_ready_sem > B_OK)
1137 delete_sem(card->buffer_ready_sem);
1139 LIST_FOREACH(stream, &card->streams, next) {
1143 while (!LIST_EMPTY(&card->streams)) {
1144 auvia_stream_delete(LIST_FIRST(&card->streams));
1147 card->pstream = NULL;
1148 card->rstream = NULL;