summaryrefslogtreecommitdiff
path: root/sound/firewire/fireworks/fireworks.h
diff options
context:
space:
mode:
authorTakashi Sakamoto <o-takashi@sakamocchi.jp>2014-04-25 13:45:12 (GMT)
committerTakashi Iwai <tiwai@suse.de>2014-05-26 12:28:41 (GMT)
commit594ddced821dee39a548efe46d7f834bae013505 (patch)
treec0abaae51d84ef71127c3db3797130eb61701001 /sound/firewire/fireworks/fireworks.h
parentaa02bb6e60783938d61eefe38346781a646800a6 (diff)
downloadlinux-594ddced821dee39a548efe46d7f834bae013505.tar.xz
ALSA: fireworks: Add hwdep interface
This interface is designed for mixer/control application. To use hwdep interface, the 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> Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/firewire/fireworks/fireworks.h')
-rw-r--r--sound/firewire/fireworks/fireworks.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/sound/firewire/fireworks/fireworks.h b/sound/firewire/fireworks/fireworks.h
index 36419ca..4aaf2dc 100644
--- a/sound/firewire/fireworks/fireworks.h
+++ b/sound/firewire/fireworks/fireworks.h
@@ -24,6 +24,8 @@
#include <sound/info.h>
#include <sound/rawmidi.h>
#include <sound/pcm_params.h>
+#include <sound/firewire.h>
+#include <sound/hwdep.h>
#include "../packets-buffer.h"
#include "../iso-resources.h"
@@ -90,6 +92,11 @@ struct snd_efw {
unsigned int phys_in_grp_count;
struct snd_efw_phys_grp phys_out_grps[HWINFO_MAX_CAPS_GROUPS];
struct snd_efw_phys_grp phys_in_grps[HWINFO_MAX_CAPS_GROUPS];
+
+ /* for uapi */
+ int dev_lock_count;
+ bool dev_lock_changed;
+ wait_queue_head_t hwdep_wait;
};
struct snd_efw_transaction {
@@ -197,6 +204,9 @@ int snd_efw_stream_start_duplex(struct snd_efw *efw, int sampling_rate);
void snd_efw_stream_stop_duplex(struct snd_efw *efw);
void snd_efw_stream_update_duplex(struct snd_efw *efw);
void snd_efw_stream_destroy_duplex(struct snd_efw *efw);
+void snd_efw_stream_lock_changed(struct snd_efw *efw);
+int snd_efw_stream_lock_try(struct snd_efw *efw);
+void snd_efw_stream_lock_release(struct snd_efw *efw);
void snd_efw_proc_init(struct snd_efw *efw);
@@ -205,6 +215,8 @@ int snd_efw_create_midi_devices(struct snd_efw *efw);
int snd_efw_create_pcm_devices(struct snd_efw *efw);
int snd_efw_get_multiplier_mode(unsigned int sampling_rate, unsigned int *mode);
+int snd_efw_create_hwdep_device(struct snd_efw *efw);
+
#define SND_EFW_DEV_ENTRY(vendor, model) \
{ \
.match_flags = IEEE1394_MATCH_VENDOR_ID | \