Lines Matching defs:card

49 auich_ac97_get_mix(void *card, const void *cookie, int32 type, float *values) {
50 auich_dev *dev = (auich_dev*)card;
108 auich_ac97_set_mix(void *card, const void *cookie, int32 type, float *values) {
109 auich_dev *dev = (auich_dev*)card;
390 auich_get_mix(auich_dev *card, multi_mix_value_info * mmvi)
396 if (id < 0 || id >= card->multi.control_count) {
400 control = &card->multi.controls[id];
405 control->get(card, control->cookie, control->type, values);
415 control->get(card, control->cookie, control->type, values);
421 control->get(card, control->cookie, control->type, values);
430 auich_set_mix(auich_dev *card, multi_mix_value_info * mmvi)
436 if (id < 0 || id >= card->multi.control_count) {
440 control = &card->multi.controls[id];
446 if (id < 0 || id >= card->multi.control_count) {
449 control2 = &card->multi.controls[id];
468 control->set(card, control->cookie, control->type, values);
479 control->set(card, control->cookie, control->type, values);
486 control->set(card, control->cookie, control->type, values);
494 auich_list_mix_controls(auich_dev *card, multi_mix_control_info * mmci)
503 if (auich_create_controls_list(&card->multi) < B_OK)
505 for (i = 0; i < card->multi.control_count; i++) {
506 mmc[i] = card->multi.controls[i].mix_control;
509 mmci->control_count = card->multi.control_count;
515 auich_list_mix_connections(auich_dev *card, multi_mix_connection_info * data)
522 auich_list_mix_channels(auich_dev *card, multi_mix_channel_info *data)
580 LIST_FOREACH(stream, &((auich_dev*)multi->card)->streams, next) {
640 auich_get_description(auich_dev *card, multi_description *data)
647 switch(card->info.vendor_id) {
670 data->output_channel_count = card->multi.output_channel_count;
671 data->input_channel_count = card->multi.input_channel_count;
672 data->output_bus_channel_count = card->multi.output_bus_channel_count;
673 data->input_bus_channel_count = card->multi.input_bus_channel_count;
674 data->aux_bus_channel_count = card->multi.aux_bus_channel_count;
676 size = card->multi.output_channel_count + card->multi.input_channel_count
677 + card->multi.output_bus_channel_count + card->multi.input_bus_channel_count
678 + card->multi.aux_bus_channel_count;
688 memcpy(data->channels, card->multi.chans, size * sizeof(card->multi.chans[0]));
712 auich_get_enabled_channels(auich_dev *card, multi_channel_enable *data)
730 auich_set_enabled_channels(auich_dev *card, multi_channel_enable *data)
741 auich_get_global_format(auich_dev *card, multi_format_info *data)
762 auich_get_buffers(auich_dev *card, multi_buffer_list *data)
774 pchannels = card->pstream->channels;
775 rchannels = card->rstream->channels;
799 auich_stream_get_nth_buffer(card->pstream, j, i,
813 auich_stream_get_nth_buffer(card->rstream, j, i,
837 //get_sem_count(stream->card->buffer_ready_sem, &count);
839 release_sem_etc(stream->card->buffer_ready_sem, 1, B_DO_NOT_RESCHEDULE);
859 //get_sem_count(stream->card->buffer_ready_sem, &count);
861 release_sem_etc(stream->card->buffer_ready_sem, 1, B_DO_NOT_RESCHEDULE);
866 auich_buffer_exchange(auich_dev *card, multi_buffer_info *data)
881 if (!(card->pstream->state & AUICH_STATE_STARTED))
882 auich_stream_start(card->pstream, auich_play_inth, card->pstream);
884 if (!(card->rstream->state & AUICH_STATE_STARTED))
885 auich_stream_start(card->rstream, auich_record_inth, card->rstream);
887 if (acquire_sem_etc(card->buffer_ready_sem, 1, B_RELATIVE_TIMEOUT | B_CAN_INTERRUPT, 50000)
894 LIST_FOREACH(pstream, &card->streams, next) {
902 LIST_FOREACH(rstream, &card->streams, next) {
911 pstream = card->pstream;
913 rstream = card->rstream;
943 auich_buffer_force_stop(auich_dev *card)
945 //auich_voice_halt(card->pvoice);
953 auich_dev *card = (auich_dev *)cookie;
958 return auich_get_description(card, (multi_description *)data);
970 return auich_get_enabled_channels(card, (multi_channel_enable *)data);
973 return auich_set_enabled_channels(card, (multi_channel_enable *)data);
976 return auich_get_global_format(card, (multi_format_info *)data);
990 return auich_get_mix(card, (multi_mix_value_info *)data);
993 return auich_set_mix(card, (multi_mix_value_info *)data);
996 return auich_list_mix_channels(card, (multi_mix_channel_info *)data);
999 return auich_list_mix_controls(card, (multi_mix_control_info *)data);
1002 return auich_list_mix_connections(card, (multi_mix_connection_info *)data);
1005 return auich_get_buffers(card, data);
1014 return auich_buffer_exchange(card, (multi_buffer_info *)data);
1017 return auich_buffer_force_stop(card);
1047 auich_dev *card = NULL;
1055 card = &cards[ix];
1059 if (card == NULL) {
1060 LOG(("open() card not found %s\n", name));
1062 LOG(("open() card available %s\n", cards[ix].name));
1067 LOG(("open() got card\n"));
1069 if (card->pstream !=NULL)
1071 if (card->rstream !=NULL)
1074 *cookie = card;
1075 card->multi.card = card;
1104 card->rstream = auich_stream_new(card, AUICH_USE_RECORD, current_settings.buffer_frames, current_settings.buffer_count);
1105 card->pstream = auich_stream_new(card, AUICH_USE_PLAY, current_settings.buffer_frames, current_settings.buffer_count);
1107 card->buffer_ready_sem = create_sem(0, "pbuffer ready");
1111 auich_stream_set_audioparms(card->pstream, 2, true, current_settings.sample_rate);
1112 auich_stream_set_audioparms(card->rstream, 2, true, current_settings.sample_rate);
1114 card->pstream->first_channel = 0;
1115 card->rstream->first_channel = 2;
1117 auich_stream_commit_parms(card->pstream);
1118 auich_stream_commit_parms(card->rstream);
1120 auich_create_channels_list(&card->multi);
1129 //auich_dev *card = cookie;
1139 auich_dev *card = cookie;
1143 if (card->buffer_ready_sem > B_OK)
1144 delete_sem(card->buffer_ready_sem);
1146 LIST_FOREACH(stream, &card->streams, next) {
1150 while (!LIST_EMPTY(&card->streams)) {
1151 auich_stream_delete(LIST_FIRST(&card->streams));
1154 card->pstream = NULL;
1155 card->rstream = NULL;