summaryrefslogtreecommitdiff
path: root/kernel/drv/oss_userdev/userdev.h
diff options
context:
space:
mode:
authorIgor Pashev <pashev.igor@gmail.com>2013-05-03 21:08:42 +0400
committerIgor Pashev <pashev.igor@gmail.com>2013-05-03 21:08:42 +0400
commit1058def8e7827e56ce4a70afb4aeacb5dc44148f (patch)
tree4495d23e7b54ab5700e3839081e797c1eafe0db9 /kernel/drv/oss_userdev/userdev.h
downloadoss4-1058def8e7827e56ce4a70afb4aeacb5dc44148f.tar.gz
Imported Upstream version 4.2-build2006upstream/4.2-build2006upstream
Diffstat (limited to 'kernel/drv/oss_userdev/userdev.h')
-rw-r--r--kernel/drv/oss_userdev/userdev.h81
1 files changed, 81 insertions, 0 deletions
diff --git a/kernel/drv/oss_userdev/userdev.h b/kernel/drv/oss_userdev/userdev.h
new file mode 100644
index 0000000..1ed1040
--- /dev/null
+++ b/kernel/drv/oss_userdev/userdev.h
@@ -0,0 +1,81 @@
+/*
+ * Purpose: Definition file for the oss_userdev driver
+ *
+ */
+/*
+ *
+ * This file is part of Open Sound System.
+ *
+ * Copyright (C) 4Front Technologies 1996-2008.
+ *
+ * This this source file is released under GPL v2 license (no other versions).
+ * See the COPYING file included in the main directory of this source
+ * distribution for the license terms and conditions.
+ *
+ */
+#define MAX_RATE 192000
+#define MAX_CHANNELS 64
+#define SUPPORTED_FORMATS (AFMT_S16_NE|AFMT_S32_NE)
+
+typedef struct _userdev_devc_t userdev_devc_t;
+typedef struct _userdev_portc_t userdev_portc_t;
+
+struct _userdev_portc_t
+{
+ userdev_devc_t *devc;
+ userdev_portc_t *peer;
+ int audio_dev;
+ int open_mode;
+ int port_type;
+#define PT_CLIENT 1
+#define PT_SERVER 2
+
+ /* State variables */
+ int input_triggered, output_triggered;
+};
+
+struct _userdev_devc_t
+{
+ oss_device_t *osdev;
+ int active;
+ oss_mutex_t mutex;
+
+ int open_count; /* 0=not in use, 2=both client and server in use */
+
+ int create_flags; /* Flags from ioctl(USERDEV_CREATE_INSTANCE) */
+
+ unsigned int poll_ticks; /* Number of clock tickes (OSS_HZ) between polls. */
+
+ unsigned int match_method;
+ unsigned int match_key;
+ int mixer_dev;
+
+ userdev_devc_t *next_instance;
+
+ int rate;
+ int channels;
+ unsigned int fmt, fmt_bytes;
+ timeout_id_t timeout_id;
+
+ userdev_portc_t client_portc;
+ userdev_portc_t server_portc;
+
+ /*
+ * Mixer related fields
+ */
+ int modify_counter;
+ int mixer_values[USERDEV_MAX_MIXERS];
+};
+
+extern oss_device_t *userdev_osdev;
+extern oss_mutex_t userdev_global_mutex;
+extern userdev_devc_t *userdev_active_device_list;
+extern userdev_devc_t *userdev_free_device_list;
+
+extern int userdev_create_device_pair(void);
+extern void userdev_delete_device_pair(userdev_devc_t *devc);
+extern int usrdev_find_free_device_pair(void);
+extern void userdev_reinit_instance(userdev_devc_t *devc);
+
+extern char *userdev_client_devnode;
+extern char *userdev_server_devnode;