Lines 1-4
Link Here
|
1 |
--- drivers/oss/oss_driver.c.orig 2016-02-23 15:13:53 UTC |
1 |
--- drivers/oss/oss_driver.c.orig 2017-01-10 10:20:51 UTC |
2 |
+++ drivers/oss/oss_driver.c |
2 |
+++ drivers/oss/oss_driver.c |
3 |
@@ -23,6 +23,7 @@ |
3 |
@@ -23,6 +23,7 @@ |
4 |
|
4 |
|
Lines 8-14
Link Here
|
8 |
#ifdef USE_BARRIER |
8 |
#ifdef USE_BARRIER |
9 |
/* |
9 |
/* |
10 |
* POSIX conformance level should be globally defined somewhere, possibly |
10 |
* POSIX conformance level should be globally defined somewhere, possibly |
11 |
@@ -172,7 +173,9 @@ static void set_period_size (oss_driver_ |
11 |
@@ -77,6 +78,10 @@ |
|
|
12 |
#endif /* _SIOWR */ |
13 |
#endif /* SNDCTL_DSP_COOKEDMODE */ |
14 |
|
15 |
+#if !defined(OPTION_COOKEDMODE) |
16 |
+#define OPTION_COOKEDMODE 0 |
17 |
+#endif |
18 |
+ |
19 |
#define OSS_DRIVER_N_PARAMS 11 |
20 |
const static jack_driver_param_desc_t oss_params[OSS_DRIVER_N_PARAMS] = { |
21 |
{ "rate", |
22 |
@@ -172,7 +177,9 @@ static void set_period_size (oss_driver_ |
12 |
((double)driver->period_size / |
23 |
((double)driver->period_size / |
13 |
(double)driver->sample_rate) * 1e6; |
24 |
(double)driver->sample_rate) * 1e6; |
14 |
driver->last_wait_ust = 0; |
25 |
driver->last_wait_ust = 0; |
Lines 19-25
Link Here
|
19 |
driver->next_periodtime = 0; |
30 |
driver->next_periodtime = 0; |
20 |
driver->iodelay = 0.0F; |
31 |
driver->iodelay = 0.0F; |
21 |
} |
32 |
} |
22 |
@@ -180,7 +183,9 @@ static void set_period_size (oss_driver_ |
33 |
@@ -180,7 +187,9 @@ static void set_period_size (oss_driver_ |
23 |
|
34 |
|
24 |
static inline void update_times (oss_driver_t *driver) |
35 |
static inline void update_times (oss_driver_t *driver) |
25 |
{ |
36 |
{ |
Lines 30-36
Link Here
|
30 |
if (driver->next_periodtime > 0) { |
41 |
if (driver->next_periodtime > 0) { |
31 |
driver->iodelay = (float) |
42 |
driver->iodelay = (float) |
32 |
((long double)driver->last_periodtime - |
43 |
((long double)driver->last_periodtime - |
33 |
@@ -211,6 +216,7 @@ static void copy_and_convert_in (jack_sa |
44 |
@@ -211,6 +220,7 @@ static void copy_and_convert_in (jack_sa |
34 |
int dstidx; |
45 |
int dstidx; |
35 |
signed short *s16src = (signed short*)src; |
46 |
signed short *s16src = (signed short*)src; |
36 |
signed int *s32src = (signed int*)src; |
47 |
signed int *s32src = (signed int*)src; |
Lines 38-44
Link Here
|
38 |
double *f64src = (double*)src; |
49 |
double *f64src = (double*)src; |
39 |
jack_sample_t scale; |
50 |
jack_sample_t scale; |
40 |
|
51 |
|
41 |
@@ -225,10 +231,13 @@ static void copy_and_convert_in (jack_sa |
52 |
@@ -225,10 +235,13 @@ static void copy_and_convert_in (jack_sa |
42 |
} |
53 |
} |
43 |
break; |
54 |
break; |
44 |
case 24: |
55 |
case 24: |
Lines 54-60
Link Here
|
54 |
srcidx += chcount; |
65 |
srcidx += chcount; |
55 |
} |
66 |
} |
56 |
break; |
67 |
break; |
57 |
@@ -256,6 +265,7 @@ static void copy_and_convert_out (void * |
68 |
@@ -256,6 +269,7 @@ static void copy_and_convert_out (void * |
58 |
int srcidx; |
69 |
int srcidx; |
59 |
int dstidx; |
70 |
int dstidx; |
60 |
signed short *s16dst = (signed short*)dst; |
71 |
signed short *s16dst = (signed short*)dst; |
Lines 62-68
Link Here
|
62 |
signed int *s32dst = (signed int*)dst; |
73 |
signed int *s32dst = (signed int*)dst; |
63 |
double *f64dst = (double*)dst; |
74 |
double *f64dst = (double*)dst; |
64 |
jack_sample_t scale; |
75 |
jack_sample_t scale; |
65 |
@@ -273,12 +283,15 @@ static void copy_and_convert_out (void * |
76 |
@@ -273,12 +287,15 @@ static void copy_and_convert_out (void * |
66 |
} |
77 |
} |
67 |
break; |
78 |
break; |
68 |
case 24: |
79 |
case 24: |
Lines 83-89
Link Here
|
83 |
dstidx += chcount; |
94 |
dstidx += chcount; |
84 |
} |
95 |
} |
85 |
break; |
96 |
break; |
86 |
@@ -441,19 +454,7 @@ static int oss_driver_start (oss_driver_ |
97 |
@@ -429,7 +446,7 @@ static int oss_driver_detach (oss_driver |
|
|
98 |
|
99 |
static int oss_driver_start (oss_driver_t *driver) |
100 |
{ |
101 |
- int flags = 0; |
102 |
+ int cookedmode = OPTION_COOKEDMODE; |
103 |
int format; |
104 |
int channels; |
105 |
int samplerate; |
106 |
@@ -441,19 +458,7 @@ static int oss_driver_start (oss_driver_ |
87 |
const char *indev = driver->indev; |
107 |
const char *indev = driver->indev; |
88 |
const char *outdev = driver->outdev; |
108 |
const char *outdev = driver->outdev; |
89 |
|
109 |
|
Lines 104-110
Link Here
|
104 |
driver->trigger = 0; |
124 |
driver->trigger = 0; |
105 |
if (strcmp (indev, outdev) != 0) { |
125 |
if (strcmp (indev, outdev) != 0) { |
106 |
if (driver->capture_channels > 0) { |
126 |
if (driver->capture_channels > 0) { |
107 |
@@ -705,7 +706,9 @@ static int oss_driver_start (oss_driver_ |
127 |
@@ -464,7 +469,7 @@ static int oss_driver_start (oss_driver_ |
|
|
128 |
indev, __FILE__, __LINE__, errno); |
129 |
} |
130 |
#ifndef OSS_NO_COOKED_MODE |
131 |
- ioctl (infd, SNDCTL_DSP_COOKEDMODE, &flags); |
132 |
+ ioctl (infd, SNDCTL_DSP_COOKEDMODE, &cookedmode); |
133 |
#endif |
134 |
fragsize = driver->period_size * |
135 |
driver->capture_channels * samplesize; |
136 |
@@ -479,7 +484,7 @@ static int oss_driver_start (oss_driver_ |
137 |
outdev, __FILE__, __LINE__, errno); |
138 |
} |
139 |
#ifndef OSS_NO_COOKED_MODE |
140 |
- ioctl (outfd, SNDCTL_DSP_COOKEDMODE, &flags); |
141 |
+ ioctl (outfd, SNDCTL_DSP_COOKEDMODE, &cookedmode); |
142 |
#endif |
143 |
fragsize = driver->period_size * |
144 |
driver->playback_channels * samplesize; |
145 |
@@ -497,7 +502,7 @@ static int oss_driver_start (oss_driver_ |
146 |
return -1; |
147 |
} |
148 |
#ifndef OSS_NO_COOKED_MODE |
149 |
- ioctl (infd, SNDCTL_DSP_COOKEDMODE, &flags); |
150 |
+ ioctl (infd, SNDCTL_DSP_COOKEDMODE, &cookedmode); |
151 |
#endif |
152 |
} else if (driver->capture_channels == 0 && |
153 |
driver->playback_channels != 0) { |
154 |
@@ -510,7 +515,7 @@ static int oss_driver_start (oss_driver_ |
155 |
return -1; |
156 |
} |
157 |
#ifndef OSS_NO_COOKED_MODE |
158 |
- ioctl (outfd, SNDCTL_DSP_COOKEDMODE, &flags); |
159 |
+ ioctl (outfd, SNDCTL_DSP_COOKEDMODE, &cookedmode); |
160 |
#endif |
161 |
} else { |
162 |
infd = outfd = open (indev, O_RDWR | O_EXCL); |
163 |
@@ -521,7 +526,7 @@ static int oss_driver_start (oss_driver_ |
164 |
return -1; |
165 |
} |
166 |
#ifndef OSS_NO_COOKED_MODE |
167 |
- ioctl (infd, SNDCTL_DSP_COOKEDMODE, &flags); |
168 |
+ ioctl (infd, SNDCTL_DSP_COOKEDMODE, &cookedmode); |
169 |
#endif |
170 |
} |
171 |
if (infd >= 0 && outfd >= 0) { |
172 |
@@ -705,7 +710,9 @@ static int oss_driver_start (oss_driver_ |
108 |
sem_post (&driver->sem_start); |
173 |
sem_post (&driver->sem_start); |
109 |
} |
174 |
} |
110 |
|
175 |
|
Lines 115-121
Link Here
|
115 |
driver->next_periodtime = 0; |
180 |
driver->next_periodtime = 0; |
116 |
driver->iodelay = 0.0F; |
181 |
driver->iodelay = 0.0F; |
117 |
|
182 |
|
118 |
@@ -1143,6 +1146,23 @@ jack_driver_t * driver_initialize (jack_ |
183 |
@@ -1143,6 +1150,23 @@ jack_driver_t * driver_initialize (jack_ |
119 |
pnode = jack_slist_next (pnode); |
184 |
pnode = jack_slist_next (pnode); |
120 |
} |
185 |
} |
121 |
|
186 |
|
Lines 139-145
Link Here
|
139 |
driver->sample_rate = sample_rate; |
204 |
driver->sample_rate = sample_rate; |
140 |
driver->period_size = period_size; |
205 |
driver->period_size = period_size; |
141 |
driver->nperiods = nperiods; |
206 |
driver->nperiods = nperiods; |
142 |
@@ -1163,58 +1183,6 @@ jack_driver_t * driver_initialize (jack_ |
207 |
@@ -1163,58 +1187,6 @@ jack_driver_t * driver_initialize (jack_ |
143 |
} |
208 |
} |
144 |
driver->infd = -1; |
209 |
driver->infd = -1; |
145 |
driver->outfd = -1; |
210 |
driver->outfd = -1; |