Lines Matching refs:in

768 static int start_input_stream(struct stream_in *in)  in start_input_stream()  argument
770 struct audio_device *adev = in->dev; in start_input_stream()
772 in->pcm = pcm_open(PCM_CARD, PCM_DEVICE, PCM_IN, in->config); in start_input_stream()
774 if (in->pcm && !pcm_is_ready(in->pcm)) { in start_input_stream()
775 ALOGE("pcm_open() failed: %s", pcm_get_error(in->pcm)); in start_input_stream()
776 pcm_close(in->pcm); in start_input_stream()
781 if (in->resampler) in start_input_stream()
782 in->resampler->reset(in->resampler); in start_input_stream()
784 in->frames_in = 0; in start_input_stream()
785 adev->input_source = in->input_source; in start_input_stream()
786 adev->in_device = in->device; in start_input_stream()
787 adev->in_channel_mask = in->channel_mask; in start_input_stream()
789 eS305_SetActiveIoHandle(in->io_handle); in start_input_stream()
792 if (in->device & AUDIO_DEVICE_IN_BLUETOOTH_SCO_HEADSET) in start_input_stream()
796 in->ramp_frames = (CAPTURE_START_RAMP_MS * in->requested_rate) / 1000; in start_input_stream()
797 in->ramp_step = (uint16_t)(USHRT_MAX / in->ramp_frames); in start_input_stream()
798 in->ramp_vol = 0;; in start_input_stream()
831 struct stream_in *in; in get_next_buffer() local
837 in = (struct stream_in *)((char *)buffer_provider - in get_next_buffer()
840 if (in->pcm == NULL) { in get_next_buffer()
843 in->read_status = -ENODEV; in get_next_buffer()
847 if (in->frames_in == 0) { in get_next_buffer()
848 in->read_status = pcm_read(in->pcm, in get_next_buffer()
849 (void*)in->buffer, in get_next_buffer()
850 pcm_frames_to_bytes(in->pcm, in->config->period_size)); in get_next_buffer()
851 if (in->read_status != 0) { in get_next_buffer()
852 ALOGE("get_next_buffer() pcm_read error %d", in->read_status); in get_next_buffer()
855 return in->read_status; in get_next_buffer()
858 in->frames_in = in->config->period_size; in get_next_buffer()
861 if (in->channel_mask == AUDIO_CHANNEL_IN_MONO) in get_next_buffer()
862 for (i = 1; i < in->frames_in; i++) in get_next_buffer()
863 in->buffer[i] = in->buffer[i * 2]; in get_next_buffer()
866 buffer->frame_count = (buffer->frame_count > in->frames_in) ? in get_next_buffer()
867 in->frames_in : buffer->frame_count; in get_next_buffer()
868 buffer->i16 = in->buffer + in get_next_buffer()
869 (in->config->period_size - in->frames_in) * in get_next_buffer()
870 audio_channel_count_from_in_mask(in->channel_mask); in get_next_buffer()
872 return in->read_status; in get_next_buffer()
879 struct stream_in *in; in release_buffer() local
884 in = (struct stream_in *)((char *)buffer_provider - in release_buffer()
887 in->frames_in -= buffer->frame_count; in release_buffer()
892 static ssize_t read_frames(struct stream_in *in, void *buffer, ssize_t frames) in read_frames() argument
895 size_t frame_size = audio_stream_in_frame_size(&in->stream); in read_frames()
899 if (in->resampler != NULL) { in read_frames()
900 in->resampler->resample_from_provider(in->resampler, in read_frames()
909 get_next_buffer(&in->buf_provider, &buf); in read_frames()
917 release_buffer(&in->buf_provider, &buf); in read_frames()
921 if (in->read_status != 0) in read_frames()
922 return in->read_status; in read_frames()
1306 struct stream_in *in = (struct stream_in *)stream; in in_get_sample_rate() local
1308 return in->requested_rate; in in_get_sample_rate()
1318 struct stream_in *in = (struct stream_in *)stream; in in_get_channels() local
1320 return in->channel_mask; in in_get_channels()
1326 struct stream_in *in = (struct stream_in *)stream; in in_get_buffer_size() local
1328 return get_input_buffer_size(in->requested_rate, in in_get_buffer_size()
1331 (in->flags & AUDIO_INPUT_FLAG_FAST) != 0); in in_get_buffer_size()
1345 static void do_in_standby(struct stream_in *in) in do_in_standby() argument
1347 struct audio_device *adev = in->dev; in do_in_standby()
1349 if (!in->standby) { in do_in_standby()
1350 pcm_close(in->pcm); in do_in_standby()
1351 in->pcm = NULL; in do_in_standby()
1353 if (in->device & AUDIO_DEVICE_IN_BLUETOOTH_SCO_HEADSET) in do_in_standby()
1356 in->dev->input_source = AUDIO_SOURCE_DEFAULT; in do_in_standby()
1357 in->dev->in_device = AUDIO_DEVICE_NONE; in do_in_standby()
1358 in->dev->in_channel_mask = 0; in do_in_standby()
1360 in->standby = true; in do_in_standby()
1363 in->dev->bubble_level->stop_polling(adev->bubble_level); in do_in_standby()
1371 struct stream_in *in = (struct stream_in *)stream; in in_standby() local
1373 pthread_mutex_lock(&in->lock); in in_standby()
1374 pthread_mutex_lock(&in->dev->lock); in in_standby()
1376 do_in_standby(in); in in_standby()
1378 pthread_mutex_unlock(&in->dev->lock); in in_standby()
1379 pthread_mutex_unlock(&in->lock); in in_standby()
1391 struct stream_in *in = (struct stream_in *)stream; in in_set_parameters() local
1392 struct audio_device *adev = in->dev; in in_set_parameters()
1401 pthread_mutex_lock(&in->lock); in in_set_parameters()
1408 if ((in->input_source != val) && (val != 0)) { in in_set_parameters()
1409 in->input_source = val; in in_set_parameters()
1410 apply_now = !in->standby; in in_set_parameters()
1420 if ((in->device != val) && (val != 0)) { in in_set_parameters()
1423 (in->device & AUDIO_DEVICE_IN_BLUETOOTH_SCO_HEADSET)) { in in_set_parameters()
1424 do_in_standby(in); in in_set_parameters()
1426 in->device = val; in in_set_parameters()
1427 apply_now = !in->standby; in in_set_parameters()
1432 adev->input_source = in->input_source; in in_set_parameters()
1433 adev->in_device = in->device; in in_set_parameters()
1438 pthread_mutex_unlock(&in->lock); in in_set_parameters()
1455 static void in_apply_ramp(struct stream_in *in, int16_t *buffer, size_t frames) in in_apply_ramp() argument
1458 uint16_t vol = in->ramp_vol; in in_apply_ramp()
1459 uint16_t step = in->ramp_step; in in_apply_ramp()
1461 frames = (frames < in->ramp_frames) ? frames : in->ramp_frames; in in_apply_ramp()
1463 if (in->channel_mask == AUDIO_CHANNEL_IN_MONO) in in_apply_ramp()
1478 in->ramp_vol = vol; in in_apply_ramp()
1479 in->ramp_frames -= frames; in in_apply_ramp()
1486 struct stream_in *in = (struct stream_in *)stream; in in_read() local
1487 struct audio_device *adev = in->dev; in in_read()
1496 pthread_mutex_lock(&in->lock); in in_read()
1497 if (in->standby) { in in_read()
1499 ret = start_input_stream(in); in in_read()
1503 in->standby = false; in in_read()
1509 ret = read_frames(in, buffer, frames_rq); in in_read()
1514 if (in->ramp_frames > 0) in in_read()
1515 in_apply_ramp(in, buffer, frames_rq); in in_read()
1529 pthread_mutex_unlock(&in->lock); in in_read()
1541 struct stream_in *in = (struct stream_in *)stream; in in_add_audio_effect() local
1545 pthread_mutex_lock(&in->lock); in in_add_audio_effect()
1546 pthread_mutex_lock(&in->dev->lock); in in_add_audio_effect()
1548 eS305_AddEffect(&descr, in->io_handle); in in_add_audio_effect()
1550 pthread_mutex_unlock(&in->dev->lock); in in_add_audio_effect()
1551 pthread_mutex_unlock(&in->lock); in in_add_audio_effect()
1560 struct stream_in *in = (struct stream_in *)stream; in in_remove_audio_effect() local
1564 pthread_mutex_lock(&in->lock); in in_remove_audio_effect()
1565 pthread_mutex_lock(&in->dev->lock); in in_remove_audio_effect()
1567 eS305_RemoveEffect(&descr, in->io_handle); in in_remove_audio_effect()
1569 pthread_mutex_unlock(&in->dev->lock); in in_remove_audio_effect()
1570 pthread_mutex_unlock(&in->lock); in in_remove_audio_effect()
1774 struct stream_in *in; in adev_open_input_stream() local
1786 in = (struct stream_in *)calloc(1, sizeof(struct stream_in)); in adev_open_input_stream()
1787 if (!in) in adev_open_input_stream()
1790 in->stream.common.get_sample_rate = in_get_sample_rate; in adev_open_input_stream()
1791 in->stream.common.set_sample_rate = in_set_sample_rate; in adev_open_input_stream()
1792 in->stream.common.get_buffer_size = in_get_buffer_size; in adev_open_input_stream()
1793 in->stream.common.get_channels = in_get_channels; in adev_open_input_stream()
1794 in->stream.common.get_format = in_get_format; in adev_open_input_stream()
1795 in->stream.common.set_format = in_set_format; in adev_open_input_stream()
1796 in->stream.common.standby = in_standby; in adev_open_input_stream()
1797 in->stream.common.dump = in_dump; in adev_open_input_stream()
1798 in->stream.common.set_parameters = in_set_parameters; in adev_open_input_stream()
1799 in->stream.common.get_parameters = in_get_parameters; in adev_open_input_stream()
1800 in->stream.common.add_audio_effect = in_add_audio_effect; in adev_open_input_stream()
1801 in->stream.common.remove_audio_effect = in_remove_audio_effect; in adev_open_input_stream()
1802 in->stream.set_gain = in_set_gain; in adev_open_input_stream()
1803 in->stream.read = in_read; in adev_open_input_stream()
1804 in->stream.get_input_frames_lost = in_get_input_frames_lost; in adev_open_input_stream()
1806 in->dev = adev; in adev_open_input_stream()
1807 in->standby = true; in adev_open_input_stream()
1808 in->requested_rate = config->sample_rate; in adev_open_input_stream()
1809 in->input_source = AUDIO_SOURCE_DEFAULT; in adev_open_input_stream()
1811 in->device = devices & ~AUDIO_DEVICE_BIT_IN; in adev_open_input_stream()
1812 in->io_handle = handle; in adev_open_input_stream()
1813 in->channel_mask = config->channel_mask; in adev_open_input_stream()
1814 in->flags = flags; in adev_open_input_stream()
1817 in->config = pcm_config; in adev_open_input_stream()
1819 in->buffer = malloc(pcm_config->period_size * pcm_config->channels in adev_open_input_stream()
1820 * audio_stream_in_frame_size(&in->stream)); in adev_open_input_stream()
1822 if (!in->buffer) { in adev_open_input_stream()
1827 if (in->requested_rate != pcm_config->rate) { in adev_open_input_stream()
1828 in->buf_provider.get_next_buffer = get_next_buffer; in adev_open_input_stream()
1829 in->buf_provider.release_buffer = release_buffer; in adev_open_input_stream()
1832 in->requested_rate, in adev_open_input_stream()
1833 audio_channel_count_from_in_mask(in->channel_mask), in adev_open_input_stream()
1835 &in->buf_provider, in adev_open_input_stream()
1836 &in->resampler); in adev_open_input_stream()
1843 *stream_in = &in->stream; in adev_open_input_stream()
1847 free(in->buffer); in adev_open_input_stream()
1849 free(in); in adev_open_input_stream()
1856 struct stream_in *in = (struct stream_in *)stream; in adev_close_input_stream() local
1859 if (in->resampler) { in adev_close_input_stream()
1860 release_resampler(in->resampler); in adev_close_input_stream()
1861 in->resampler = NULL; in adev_close_input_stream()
1863 free(in->buffer); in adev_close_input_stream()