Lines Matching refs:ctrl

206 			void *ctrl;
248 volatile snd_pcm_shm_ctrl_t *ctrl = client->transport.shm.ctrl;
251 ctrl->hw.changed = 1;
253 ctrl->hw.use_mmap = 1;
254 ctrl->hw.offset = pcm->hw.offset;
257 ctrl->hw.use_mmap = 0;
258 ctrl->hw.ptr = pcm->hw.ptr ? *pcm->hw.ptr : 0;
260 loop->hw.ptr = &ctrl->hw.ptr;
261 pcm->hw.ptr = &ctrl->hw.ptr;
267 volatile snd_pcm_shm_ctrl_t *ctrl = client->transport.shm.ctrl;
270 ctrl->appl.changed = 1;
272 ctrl->appl.use_mmap = 1;
273 ctrl->appl.offset = pcm->appl.offset;
276 ctrl->appl.use_mmap = 0;
277 ctrl->appl.ptr = pcm->appl.ptr ? *pcm->appl.ptr : 0;
279 loop->appl.ptr = &ctrl->appl.ptr;
280 pcm->appl.ptr = &ctrl->appl.ptr;
306 client->transport.shm.ctrl = shmat(shmid, 0, 0);
307 if (client->transport.shm.ctrl == (void*) -1) {
325 snd_pcm_shm_ctrl_t *ctrl = client->transport.shm.ctrl;
331 ctrl->result = err;
334 if (client->transport.shm.ctrl) {
335 err = shmdt((void *)client->transport.shm.ctrl);
341 client->transport.shm.ctrl = 0;
393 volatile snd_pcm_shm_ctrl_t *ctrl = client->transport.shm.ctrl;
401 cmd = ctrl->cmd;
402 ctrl->cmd = 0;
406 ctrl->result = snd_pcm_async(pcm, ctrl->u.async.sig, ctrl->u.async.pid);
407 if (ctrl->result < 0)
409 if (ctrl->u.async.sig >= 0) {
411 ctrl->result = snd_async_add_pcm_handler(&client->async_handler, pcm, async_handler, client);
412 if (ctrl->result < 0)
418 client->async_sig = ctrl->u.async.sig;
419 client->async_pid = ctrl->u.async.pid;
422 ctrl->result = snd_pcm_info(pcm, (snd_pcm_info_t *) &ctrl->u.info);
425 ctrl->result = snd_pcm_hw_refine(pcm, (snd_pcm_hw_params_t *) &ctrl->u.hw_refine);
428 ctrl->result = snd_pcm_hw_params(pcm, (snd_pcm_hw_params_t *) &ctrl->u.hw_params);
431 ctrl->result = snd_pcm_hw_free(pcm);
434 ctrl->result = snd_pcm_sw_params(pcm, (snd_pcm_sw_params_t *) &ctrl->u.sw_params);
437 ctrl->result = snd_pcm_status(pcm, (snd_pcm_status_t *) &ctrl->u.status);
440 ctrl->result = snd_pcm_state(pcm);
443 ctrl->result = snd_pcm_hwsync(pcm);
446 ctrl->result = snd_pcm_delay(pcm, (snd_pcm_sframes_t *) &ctrl->u.delay.frames);
449 ctrl->result = snd_pcm_avail_update(pcm);
452 ctrl->result = snd_pcm_prepare(pcm);
455 ctrl->result = snd_pcm_reset(pcm);
458 ctrl->result = snd_pcm_start(pcm);
461 ctrl->result = snd_pcm_drain(pcm);
464 ctrl->result = snd_pcm_drop(pcm);
467 ctrl->result = snd_pcm_pause(pcm, ctrl->u.pause.enable);
470 ctrl->result = snd_pcm_channel_info(pcm, (snd_pcm_channel_info_t *) &ctrl->u.channel_info);
471 if (ctrl->result >= 0 &&
472 ctrl->u.channel_info.type == SND_PCM_AREA_MMAP)
473 return shm_ack_fd(client, ctrl->u.channel_info.u.mmap.fd);
476 ctrl->result = snd_pcm_rewind(pcm, ctrl->u.rewind.frames);
479 ctrl->result = snd_pcm_forward(pcm, ctrl->u.forward.frames);
484 ctrl->result = -ENOSYS;
488 ctrl->result = snd_pcm_unlink(pcm);
491 ctrl->result = snd_pcm_resume(pcm);
495 ctrl->result = snd_pcm_mmap(pcm);
500 ctrl->result = snd_pcm_munmap(pcm);
504 ctrl->result = snd_pcm_mmap_commit(pcm,
505 ctrl->u.mmap_commit.offset,
506 ctrl->u.mmap_commit.frames);
509 ctrl->result = 0;
519 ERROR("Bogus cmd: %x", ctrl->cmd);
520 ctrl->result = -ENOSYS;
567 client->transport.shm.ctrl = shmat(shmid, 0, 0);
568 if (!client->transport.shm.ctrl) {
588 snd_ctl_shm_ctrl_t *ctrl = client->transport.shm.ctrl;
594 ctrl->result = err;
597 if (client->transport.shm.ctrl) {
598 err = shmdt((void *)client->transport.shm.ctrl);
604 client->transport.shm.ctrl = 0;
612 snd_ctl_shm_ctrl_t *ctrl = client->transport.shm.ctrl;
620 cmd = ctrl->cmd;
621 ctrl->cmd = 0;
625 ctrl->result = snd_ctl_async(ctl, ctrl->u.async.sig, ctrl->u.async.pid);
626 if (ctrl->result < 0)
628 if (ctrl->u.async.sig >= 0) {
630 ctrl->result = snd_async_add_ctl_handler(&client->async_handler, ctl, async_handler, client);
631 if (ctrl->result < 0)
637 client->async_sig = ctrl->u.async.sig;
638 client->async_pid = ctrl->u.async.pid;
642 ctrl->result = snd_ctl_subscribe_events(ctl, ctrl->u.subscribe_events);
645 ctrl->result = snd_ctl_card_info(ctl, &ctrl->u.card_info);
650 if (ctrl->u.element_list.space * sizeof(*ctrl->u.element_list.pids) > maxsize) {
651 ctrl->result = -EFAULT;
654 ctrl->u.element_list.pids = (snd_ctl_elem_id_t*) ctrl->data;
655 ctrl->result = snd_ctl_elem_list(ctl, &ctrl->u.element_list);
659 ctrl->result = snd_ctl_elem_info(ctl, &ctrl->u.element_info);
662 ctrl->result = snd_ctl_elem_read(ctl, &ctrl->u.element_read);
665 ctrl->result = snd_ctl_elem_write(ctl, &ctrl->u.element_write);
668 ctrl->result = snd_ctl_elem_lock(ctl, &ctrl->u.element_lock);
671 ctrl->result = snd_ctl_elem_unlock(ctl, &ctrl->u.element_unlock);
674 ctrl->result = snd_ctl_hwdep_next_device(ctl, &ctrl->u.device);
677 ctrl->result = snd_ctl_hwdep_info(ctl, &ctrl->u.hwdep_info);
680 ctrl->result = snd_ctl_pcm_next_device(ctl, &ctrl->u.device);
683 ctrl->result = snd_ctl_pcm_info(ctl, &ctrl->u.pcm_info);
686 ctrl->result = snd_ctl_pcm_prefer_subdevice(ctl, ctrl->u.pcm_prefer_subdevice);
689 ctrl->result = snd_ctl_rawmidi_next_device(ctl, &ctrl->u.device);
692 ctrl->result = snd_ctl_rawmidi_info(ctl, &ctrl->u.rawmidi_info);
695 ctrl->result = snd_ctl_rawmidi_prefer_subdevice(ctl, ctrl->u.rawmidi_prefer_subdevice);
698 ctrl->result = snd_ctl_set_power_state(ctl, ctrl->u.power_state);
701 ctrl->result = snd_ctl_get_power_state(ctl, &ctrl->u.power_state);
704 ctrl->result = snd_ctl_read(ctl, &ctrl->u.read);
710 ctrl->result = 0;
713 ERROR("Bogus cmd: %x", ctrl->cmd);
714 ctrl->result = -ENOSYS;