diff options
author | Igor Pashev <pashev.igor@gmail.com> | 2013-05-03 21:08:42 +0400 |
---|---|---|
committer | Igor Pashev <pashev.igor@gmail.com> | 2013-05-03 21:08:42 +0400 |
commit | 1058def8e7827e56ce4a70afb4aeacb5dc44148f (patch) | |
tree | 4495d23e7b54ab5700e3839081e797c1eafe0db9 /kernel/drv/oss_userdev/userdev.h | |
download | oss4-upstream.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.h | 81 |
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; |