Lines Matching refs:card

49 emuxki_ac97_get_mix(void *card, const void *cookie, int32 type, float *values) {
50 emuxki_dev *dev = (emuxki_dev*)card;
107 emuxki_ac97_set_mix(void *card, const void *cookie, int32 type, float *values) {
108 emuxki_dev *dev = (emuxki_dev*)card;
179 emuxki_gpr_get_mix(void *card, const void *cookie, int32 type, float *values) {
180 emuxki_gpr_get((emuxki_dev*)card, (emuxki_gpr *)cookie, type, values);
184 emuxki_gpr_set_mix(void *card, const void *cookie, int32 type, float *values) {
185 emuxki_gpr_set((emuxki_dev*)card, (emuxki_gpr *)cookie, type, values);
189 emuxki_parameter_get_mix(void *card, const void *cookie, int32 type, float *values) {
191 emuxki_parameter_get((emuxki_dev*)card, cookie, type, &value);
196 emuxki_parameter_set_mix(void *card, const void *cookie, int32 type, float *values) {
199 emuxki_parameter_set((emuxki_dev*)card, cookie, type, &value);
265 emuxki_dev *card = (emuxki_dev*)multi->card;
270 for (i = EMU_GPR_FIRST_MIX; i < card->gpr_count; i++) {
271 const emuxki_gpr *gpr = &card->gpr[i];
284 for (i = EMU_GPR_FIRST_MIX; i < card->gpr_count; i++) {
285 const emuxki_gpr *gpr = &card->gpr[i];
404 if (IS_AUDIGY2(&card->config))
406 if (!IS_LIVE_5_1(&card->config) && !IS_AUDIGY(&card->config))
528 emuxki_get_mix(emuxki_dev *card, multi_mix_value_info * mmvi)
535 if (id < 0 || id >= card->multi.control_count) {
540 control = &card->multi.controls[id];
545 control->get(card, control->cookie, control->type, values);
555 control->get(card, control->cookie, control->type, values);
561 control->get(card, control->cookie, control->type, values);
569 emuxki_set_mix(emuxki_dev *card, multi_mix_value_info * mmvi)
576 if (id < 0 || id >= card->multi.control_count) {
581 control = &card->multi.controls[id];
587 if (id < 0 || id >= card->multi.control_count) {
591 control2 = &card->multi.controls[id];
610 control->set(card, control->cookie, control->type, values);
621 control->set(card, control->cookie, control->type, values);
628 control->set(card, control->cookie, control->type, values);
635 emuxki_list_mix_controls(emuxki_dev *card, multi_mix_control_info * mmci)
644 if (emuxki_create_controls_list(&card->multi) < B_OK)
646 for (i = 0; i < card->multi.control_count; i++) {
647 mmc[i] = card->multi.controls[i].mix_control;
650 mmci->control_count = card->multi.control_count;
655 emuxki_list_mix_connections(emuxki_dev *card, multi_mix_connection_info * data)
661 emuxki_list_mix_channels(emuxki_dev *card, multi_mix_channel_info *data)
720 LIST_FOREACH(stream, &((emuxki_dev*)multi->card)->streams, next) {
781 emuxki_get_description(emuxki_dev *card, multi_description *data)
788 if (IS_AUDIGY2_VALUE(&card->config))
790 else if (IS_AUDIGY2(&card->config))
792 else if (IS_AUDIGY(&card->config))
794 else if (IS_LIVE_5_1(&card->config))
806 data->output_channel_count = card->multi.output_channel_count;
807 data->input_channel_count = card->multi.input_channel_count;
808 data->output_bus_channel_count = card->multi.output_bus_channel_count;
809 data->input_bus_channel_count = card->multi.input_bus_channel_count;
810 data->aux_bus_channel_count = card->multi.aux_bus_channel_count;
812 size = card->multi.output_channel_count + card->multi.input_channel_count
813 + card->multi.output_bus_channel_count + card->multi.input_bus_channel_count
814 + card->multi.aux_bus_channel_count;
824 memcpy(data->channels, card->multi.chans, size * sizeof(card->multi.chans[0]));
853 emuxki_get_enabled_channels(emuxki_dev *card, multi_channel_enable *data)
870 emuxki_set_enabled_channels(emuxki_dev *card, multi_channel_enable *data)
880 emuxki_get_global_format(emuxki_dev *card, multi_format_info *data)
902 emuxki_get_buffers(emuxki_dev *card, multi_buffer_list *data)
914 pchannels = card->pstream->nmono + card->pstream->nstereo * 2;
915 pchannels2 = card->pstream2->nmono + card->pstream2->nstereo * 2;
916 rchannels = card->rstream->nmono + card->rstream->nstereo * 2;
917 rchannels2 = card->rstream2->nmono + card->rstream2->nstereo * 2;
935 emuxki_stream_get_nth_buffer(card->pstream, j, i,
947 emuxki_stream_get_nth_buffer(card->pstream2, j, i,
964 emuxki_stream_get_nth_buffer(card->rstream, j, i,
977 emuxki_stream_get_nth_buffer(card->rstream2, j, i,
1004 //get_sem_count(stream->card->buffer_ready_sem, &count);
1006 release_sem_etc(stream->card->buffer_ready_sem, 1, B_DO_NOT_RESCHEDULE);
1025 //get_sem_count(stream->card->buffer_ready_sem, &count);
1027 release_sem_etc(stream->card->buffer_ready_sem, 1, B_DO_NOT_RESCHEDULE);
1031 emuxki_buffer_exchange(emuxki_dev *card, multi_buffer_info *data)
1046 if (!(card->pstream->state & EMU_STATE_STARTED))
1047 emuxki_stream_start(card->pstream, emuxki_play_inth, card->pstream);
1049 if (!(card->pstream2->state & EMU_STATE_STARTED))
1050 emuxki_stream_start(card->pstream2, emuxki_play_inth, card->pstream2);
1052 if (!(card->rstream->state & EMU_STATE_STARTED))
1053 emuxki_stream_start(card->rstream, emuxki_record_inth, card->rstream);
1055 if (!(card->rstream2->state & EMU_STATE_STARTED))
1056 emuxki_stream_start(card->rstream2, emuxki_record_inth, card->rstream2);
1059 if (acquire_sem_etc(card->buffer_ready_sem, 1, B_RELATIVE_TIMEOUT | B_CAN_INTERRUPT, 50000)
1062 LOG(("EMU_IPR = %#08x\n",emuxki_reg_read_32(&card->config, EMU_IPR)));
1063 LOG(("EMU_INTE = %#08x\n",emuxki_reg_read_32(&card->config, EMU_INTE)));
1064 LOG(("EMU_HCFG = %#08x\n",emuxki_reg_read_32(&card->config, EMU_HCFG)));
1069 LIST_FOREACH(pstream, &card->streams, next) {
1077 LIST_FOREACH(rstream, &card->streams, next) {
1086 pstream = card->pstream;
1088 rstream = card->rstream;
1117 emuxki_buffer_force_stop(emuxki_dev *card)
1125 emuxki_dev *card = (emuxki_dev *)cookie;
1130 return emuxki_get_description(card, (multi_description *)data);
1142 return emuxki_get_enabled_channels(card, (multi_channel_enable *)data);
1145 return emuxki_set_enabled_channels(card, (multi_channel_enable *)data);
1148 return emuxki_get_global_format(card, (multi_format_info *)data);
1162 return emuxki_get_mix(card, (multi_mix_value_info *)data);
1165 return emuxki_set_mix(card, (multi_mix_value_info *)data);
1168 return emuxki_list_mix_channels(card, (multi_mix_channel_info *)data);
1171 return emuxki_list_mix_controls(card, (multi_mix_control_info *)data);
1174 return emuxki_list_mix_connections(card, (multi_mix_connection_info *)data);
1177 return emuxki_get_buffers(card, data);
1186 return emuxki_buffer_exchange(card, (multi_buffer_info *)data);
1189 return emuxki_buffer_force_stop(card);
1218 emuxki_dev *card = NULL;
1226 card = &cards[ix];
1230 if (card == NULL) {
1231 LOG(("open() card not found %s\n", name));
1233 LOG(("open() card available %s\n", cards[ix].name));
1238 LOG(("open() got card\n"));
1240 if (card->pstream !=NULL)
1242 if (card->pstream2 !=NULL)
1244 if (card->rstream !=NULL)
1246 if (card->rstream2 !=NULL)
1249 *cookie = card;
1250 card->multi.card = card;
1254 card->rstream2 = emuxki_stream_new(card, EMU_USE_RECORD, current_settings.buffer_frames, current_settings.buffer_count);
1255 card->rstream = emuxki_stream_new(card, EMU_USE_RECORD, current_settings.buffer_frames, current_settings.buffer_count);
1256 card->pstream2 = emuxki_stream_new(card, EMU_USE_PLAY, current_settings.buffer_frames, current_settings.buffer_count);
1257 card->pstream = emuxki_stream_new(card, EMU_USE_PLAY, current_settings.buffer_frames, current_settings.buffer_count);
1259 card->buffer_ready_sem = create_sem(0,"pbuffer ready");
1263 emuxki_stream_set_audioparms(card->pstream, true, current_settings.channels,
1265 emuxki_stream_set_audioparms(card->pstream2, false, 4,
1267 emuxki_stream_set_audioparms(card->rstream, true, current_settings.channels,
1269 emuxki_stream_set_audioparms(card->rstream2, true, current_settings.channels,
1273 emuxki_stream_set_recparms(card->rstream, EMU_RECSRC_ADC, NULL);
1274 emuxki_stream_set_recparms(card->rstream2, EMU_RECSRC_FX, &recparams);
1276 card->pstream->first_channel = 0;
1277 card->pstream2->first_channel = current_settings.channels;
1278 card->rstream->first_channel = current_settings.channels + 4;
1279 card->rstream2->first_channel = 2 * current_settings.channels + 4;
1281 emuxki_stream_commit_parms(card->pstream);
1282 emuxki_stream_commit_parms(card->pstream2);
1283 emuxki_stream_commit_parms(card->rstream);
1284 emuxki_stream_commit_parms(card->rstream2);
1286 emuxki_create_channels_list(&card->multi);
1294 //emuxki_dev *card = cookie;
1303 emuxki_dev *card = cookie;
1307 if (card->buffer_ready_sem > B_OK)
1308 delete_sem(card->buffer_ready_sem);
1310 LIST_FOREACH(stream, &card->streams, next) {
1314 while (!LIST_EMPTY(&card->streams)) {
1315 emuxki_stream_delete(LIST_FIRST(&card->streams));
1318 card->pstream = NULL;
1319 card->pstream2 = NULL;
1320 card->rstream = NULL;
1321 card->rstream2 = NULL;