File: ossp.c

package info (click to toggle)
osspd 1.3.3-6
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 480 kB
  • sloc: ansic: 4,848; sh: 83; makefile: 11
file content (80 lines) | stat: -rw-r--r-- 2,841 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
/*
 * ossp - OSS Proxy: emulate OSS device using CUSE
 *
 * This file is released under the GPLv2.
 */

#include "ossp.h"

const struct ossp_arg_size ossp_arg_sizes[OSSP_NR_OPCODES] = {
	[OSSP_MIXER]		= { sizeof(struct ossp_mixer_arg),
				    sizeof(struct ossp_mixer_arg), 0 },

	[OSSP_DSP_OPEN]		= { sizeof(struct ossp_dsp_open_arg), 0, 0 },
	[OSSP_DSP_READ]		= { sizeof(struct ossp_dsp_rw_arg), 0, 0 },
	[OSSP_DSP_WRITE]	= { sizeof(struct ossp_dsp_rw_arg), 0, 0 },
	[OSSP_DSP_POLL]		= { sizeof(int), sizeof(unsigned), 0 },
	[OSSP_DSP_MMAP]		= { sizeof(struct ossp_dsp_mmap_arg), 0, 0 },
	[OSSP_DSP_MUNMAP]	= { sizeof(int), 0, 0 },

	[OSSP_DSP_RESET]	= { 0, 0, 0 },
	[OSSP_DSP_SYNC]		= { 0, 0, 0 },
	[OSSP_DSP_POST]		= { 0, 0, 0 },
	[OSSP_DSP_GET_RATE]	= { 0, sizeof(int), 0 },
	[OSSP_DSP_GET_CHANNELS]	= { 0, sizeof(int), 0 },
	[OSSP_DSP_GET_FORMAT]	= { 0, sizeof(int), 0 },
	[OSSP_DSP_GET_BLKSIZE]	= { 0, sizeof(int), 0 },
	[OSSP_DSP_GET_FORMATS]	= { 0, sizeof(int), 0 },
	[OSSP_DSP_SET_RATE]	= { sizeof(int), sizeof(int), 0 },
	[OSSP_DSP_SET_CHANNELS]	= { sizeof(int), sizeof(int), 0 },
	[OSSP_DSP_SET_FORMAT]	= { sizeof(int), sizeof(int), 0 },
	[OSSP_DSP_SET_SUBDIVISION] = { sizeof(int), sizeof(int), 0 },
	[OSSP_DSP_SET_FRAGMENT]	= { sizeof(int), 0, 0 },
	[OSSP_DSP_GET_TRIGGER]	= { 0, sizeof(int), 0 },
	[OSSP_DSP_SET_TRIGGER]	= { sizeof(int), 0, 0 },
	[OSSP_DSP_GET_OSPACE]	= { 0, sizeof(struct audio_buf_info), 0 },
	[OSSP_DSP_GET_ISPACE]	= { 0, sizeof(struct audio_buf_info), 0 },
	[OSSP_DSP_GET_OPTR]	= { 0, sizeof(struct count_info), 0 },
	[OSSP_DSP_GET_IPTR]	= { 0, sizeof(struct count_info), 0 },
	[OSSP_DSP_GET_ODELAY]	= { 0, sizeof(int), 0 },
};

const char *ossp_cmd_str[OSSP_NR_OPCODES] = {
	[OSSP_MIXER]		= "MIXER",

	[OSSP_DSP_OPEN]		= "OPEN",
	[OSSP_DSP_READ]		= "READ",
	[OSSP_DSP_WRITE]	= "WRITE",
	[OSSP_DSP_POLL]		= "POLL",
	[OSSP_DSP_MMAP]		= "MMAP",
	[OSSP_DSP_MUNMAP]	= "MUNMAP",

	[OSSP_DSP_RESET]	= "RESET",
	[OSSP_DSP_SYNC]		= "SYNC",
	[OSSP_DSP_POST]		= "POST",

	[OSSP_DSP_GET_RATE]	= "GET_RATE",
	[OSSP_DSP_GET_CHANNELS]	= "GET_CHANNELS",
	[OSSP_DSP_GET_FORMAT]	= "GET_FORMAT",
	[OSSP_DSP_GET_BLKSIZE]	= "GET_BLKSIZE",
	[OSSP_DSP_GET_FORMATS]	= "GET_FORMATS",
	[OSSP_DSP_SET_RATE]	= "SET_RATE",
	[OSSP_DSP_SET_CHANNELS]	= "SET_CHANNELS",
	[OSSP_DSP_SET_FORMAT]	= "SET_FORMAT",
	[OSSP_DSP_SET_SUBDIVISION] = "SET_BUSDIVISION",

	[OSSP_DSP_SET_FRAGMENT]	= "SET_FRAGMENT",
	[OSSP_DSP_GET_TRIGGER]	= "GET_TRIGGER",
	[OSSP_DSP_SET_TRIGGER]	= "SET_TRIGGER",
	[OSSP_DSP_GET_OSPACE]	= "GET_OSPACE",
	[OSSP_DSP_GET_ISPACE]	= "GET_ISPACE",
	[OSSP_DSP_GET_OPTR]	= "GET_OPTR",
	[OSSP_DSP_GET_IPTR]	= "GET_IPTR",
	[OSSP_DSP_GET_ODELAY]	= "GET_ODELAY",
};

const char *ossp_notify_str[OSSP_NR_NOTIFY_OPCODES] = {
	[OSSP_NOTIFY_POLL]	= "POLL",
	[OSSP_NOTIFY_OBITUARY]	= "OBITUARY",
	[OSSP_NOTIFY_VOLCHG]	= "VOLCHG",
};