Lines Matching refs:out
65 * following order: hw device > out stream
71 static int start_output_stream(struct stream_out *out)
73 struct audio_device *adev = out->dev;
79 out->pcm = pcm_open(adev->card, adev->device, PCM_OUT, &pcm_config);
81 if (out->pcm && !pcm_is_ready(out->pcm)) {
82 ALOGE("pcm_open() failed: %s", pcm_get_error(out->pcm));
83 pcm_close(out->pcm);
125 struct stream_out *out = (struct stream_out *)stream;
127 pthread_mutex_lock(&out->dev->lock);
128 pthread_mutex_lock(&out->lock);
130 if (!out->standby) {
131 pcm_close(out->pcm);
132 out->pcm = NULL;
133 out->standby = true;
136 pthread_mutex_unlock(&out->lock);
137 pthread_mutex_unlock(&out->dev->lock);
149 struct stream_out *out = (struct stream_out *)stream;
150 struct audio_device *adev = out->dev;
194 struct stream_out *out = (struct stream_out *)stream;
196 pthread_mutex_lock(&out->dev->lock);
197 pthread_mutex_lock(&out->lock);
198 if (out->standby) {
199 ret = start_output_stream(out);
203 out->standby = false;
206 pcm_write(out->pcm, (void *)buffer, bytes);
208 pthread_mutex_unlock(&out->lock);
209 pthread_mutex_unlock(&out->dev->lock);
214 pthread_mutex_unlock(&out->lock);
254 struct stream_out *out;
257 out = (struct stream_out *)calloc(1, sizeof(struct stream_out));
258 if (!out)
261 out->stream.common.get_sample_rate = out_get_sample_rate;
262 out->stream.common.set_sample_rate = out_set_sample_rate;
263 out->stream.common.get_buffer_size = out_get_buffer_size;
264 out->stream.common.get_channels = out_get_channels;
265 out->stream.common.get_format = out_get_format;
266 out->stream.common.set_format = out_set_format;
267 out->stream.common.standby = out_standby;
268 out->stream.common.dump = out_dump;
269 out->stream.common.set_parameters = out_set_parameters;
270 out->stream.common.get_parameters = out_get_parameters;
271 out->stream.common.add_audio_effect = out_add_audio_effect;
272 out->stream.common.remove_audio_effect = out_remove_audio_effect;
273 out->stream.get_latency = out_get_latency;
274 out->stream.set_volume = out_set_volume;
275 out->stream.write = out_write;
276 out->stream.get_render_position = out_get_render_position;
277 out->stream.get_next_write_timestamp = out_get_next_write_timestamp;
279 out->dev = adev;
281 config->format = out_get_format(&out->stream.common);
282 config->channel_mask = out_get_channels(&out->stream.common);
283 config->sample_rate = out_get_sample_rate(&out->stream.common);
285 out->standby = true;
290 *stream_out = &out->stream;
294 free(out);
302 struct stream_out *out = (struct stream_out *)stream;