summaryrefslogtreecommitdiffstats
path: root/sound/firewire/oxfw/oxfw.h
diff options
context:
space:
mode:
authorTakashi Sakamoto2014-12-08 16:10:49 +0100
committerTakashi Iwai2014-12-10 10:50:00 +0100
commit8985f4ac1c42bd25799f294f4e87fa73064673c7 (patch)
tree04f57545162b29abfc8a6b0c2d2833721b4bcc78 /sound/firewire/oxfw/oxfw.h
parentALSA: oxfw: Add support for capture/playback MIDI messages (diff)
downloadkernel-qcow2-linux-8985f4ac1c42bd25799f294f4e87fa73064673c7.tar.gz
kernel-qcow2-linux-8985f4ac1c42bd25799f294f4e87fa73064673c7.tar.xz
kernel-qcow2-linux-8985f4ac1c42bd25799f294f4e87fa73064673c7.zip
ALSA: oxfw: Add hwdep interface
This interface is designed for mixer/control application. By using this interface, an application can get information about firewire node, can lock/unlock kernel streaming and can get notification at starting/stopping kernel streaming. Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp> Acked-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/firewire/oxfw/oxfw.h')
-rw-r--r--sound/firewire/oxfw/oxfw.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/sound/firewire/oxfw/oxfw.h b/sound/firewire/oxfw/oxfw.h
index 83a54fc73a11..cace5ad4fe76 100644
--- a/sound/firewire/oxfw/oxfw.h
+++ b/sound/firewire/oxfw/oxfw.h
@@ -12,6 +12,7 @@
#include <linux/mod_devicetable.h>
#include <linux/mutex.h>
#include <linux/slab.h>
+#include <linux/compat.h>
#include <sound/control.h>
#include <sound/core.h>
@@ -20,6 +21,8 @@
#include <sound/pcm_params.h>
#include <sound/info.h>
#include <sound/rawmidi.h>
+#include <sound/firewire.h>
+#include <sound/hwdep.h>
#include "../lib.h"
#include "../fcp.h"
@@ -64,6 +67,10 @@ struct snd_oxfw {
s16 volume[6];
s16 volume_min;
s16 volume_max;
+
+ int dev_lock_count;
+ bool dev_lock_changed;
+ wait_queue_head_t hwdep_wait;
};
/*
@@ -124,6 +131,10 @@ int snd_oxfw_stream_get_current_formation(struct snd_oxfw *oxfw,
int snd_oxfw_stream_discover(struct snd_oxfw *oxfw);
+void snd_oxfw_stream_lock_changed(struct snd_oxfw *oxfw);
+int snd_oxfw_stream_lock_try(struct snd_oxfw *oxfw);
+void snd_oxfw_stream_lock_release(struct snd_oxfw *oxfw);
+
int snd_oxfw_create_pcm(struct snd_oxfw *oxfw);
int snd_oxfw_create_mixer(struct snd_oxfw *oxfw);
@@ -131,3 +142,5 @@ int snd_oxfw_create_mixer(struct snd_oxfw *oxfw);
void snd_oxfw_proc_init(struct snd_oxfw *oxfw);
int snd_oxfw_create_midi(struct snd_oxfw *oxfw);
+
+int snd_oxfw_create_hwdep(struct snd_oxfw *oxfw);