Lines Matching refs:rsxadev

359 static void submix_audio_device_create_pipe_l(struct submix_audio_device * const rsxadev,  in audio_config_compare()  argument
377 rsxadev->routes[route_idx].input = in; in audio_config_compare()
378 rsxadev->routes[route_idx].config.input_channel_mask = config->channel_mask; in audio_config_compare()
380 rsxadev->routes[route_idx].config.input_sample_rate = config->sample_rate; in audio_config_compare()
384 if (!rsxadev->routes[route_idx].output) { in audio_config_compare()
385 rsxadev->routes[route_idx].config.output_sample_rate = 48000; in audio_config_compare()
386 rsxadev->routes[route_idx].config.output_channel_mask = AUDIO_CHANNEL_OUT_STEREO; in audio_config_compare()
392 rsxadev->routes[route_idx].output = out; in audio_config_compare()
393 rsxadev->routes[route_idx].config.output_channel_mask = config->channel_mask; in audio_config_compare()
395 rsxadev->routes[route_idx].config.output_sample_rate = config->sample_rate; in audio_config_compare()
399 strncpy(rsxadev->routes[route_idx].address, address, AUDIO_DEVICE_MAX_ADDRESS_LEN); in audio_config_compare()
400 ALOGD(" now using address %s for route %d", rsxadev->routes[route_idx].address, route_idx); in audio_config_compare()
402 if (rsxadev->routes[route_idx].rsxSink == NULL || rsxadev->routes[route_idx].rsxSource == NULL) in audio_config_compare()
404 struct submix_config * const device_config = &rsxadev->routes[route_idx].config; in audio_config_compare()
435 ALOG_ASSERT(rsxadev->routes[route_idx].rsxSink == NULL); in audio_config_compare()
436 ALOG_ASSERT(rsxadev->routes[route_idx].rsxSource == NULL); in audio_config_compare()
437 rsxadev->routes[route_idx].rsxSink = sink; in audio_config_compare()
438 rsxadev->routes[route_idx].rsxSource = source; in audio_config_compare()
462 static void submix_audio_device_release_pipe_l(struct submix_audio_device * const rsxadev, in audio_config_compare() argument
468 rsxadev->routes[route_idx].address); in audio_config_compare()
469 if (rsxadev->routes[route_idx].rsxSink != 0) { in audio_config_compare()
470 rsxadev->routes[route_idx].rsxSink.clear(); in audio_config_compare()
472 if (rsxadev->routes[route_idx].rsxSource != 0) { in audio_config_compare()
473 rsxadev->routes[route_idx].rsxSource.clear(); in audio_config_compare()
475 memset(rsxadev->routes[route_idx].address, 0, AUDIO_DEVICE_MAX_ADDRESS_LEN); in audio_config_compare()
477 memset(rsxadev->routes[route_idx].resampler_buffer, 0, in audio_config_compare()
485 static void submix_audio_device_destroy_pipe_l(struct submix_audio_device * const rsxadev, in audio_config_compare() argument
496 ALOG_ASSERT(rsxadev->routes[route_idx].input == in); in audio_config_compare()
498 rsxadev->routes[route_idx].input = NULL; in audio_config_compare()
504 ALOG_ASSERT(rsxadev->routes[route_idx].input == in); in audio_config_compare()
505 rsxadev->routes[route_idx].input = NULL; in audio_config_compare()
509 sp <MonoPipe> sink = rsxadev->routes[in->route_handle].rsxSink; in audio_config_compare()
517 ALOG_ASSERT(rsxadev->routes[route_idx].output == out); in audio_config_compare()
518 rsxadev->routes[route_idx].output = NULL; in audio_config_compare()
521 rsxadev->routes[route_idx].input == NULL && rsxadev->routes[route_idx].output == NULL) { in audio_config_compare()
522 submix_audio_device_release_pipe_l(rsxadev, route_idx); in audio_config_compare()
538 static bool submix_open_validate_l(const struct submix_audio_device * const rsxadev, in audio_config_compare() argument
548 output_open = rsxadev->routes[route_idx].output != NULL; in audio_config_compare()
549 input_open = rsxadev->routes[route_idx].input != NULL; in audio_config_compare()
550 memcpy(&pipe_config, &rsxadev->routes[route_idx].config.common, sizeof(pipe_config)); in audio_config_compare()
570 opening_input ? rsxadev->routes[route_idx].config.output_channel_mask : in audio_config_compare()
571 rsxadev->routes[route_idx].config.input_channel_mask; in audio_config_compare()
581 static status_t submix_get_route_idx_for_address_l(const struct submix_audio_device * const rsxadev, in audio_config_compare() argument
589 if (strcmp(rsxadev->routes[i].address, "") == 0) { in audio_config_compare()
592 if (strncmp(rsxadev->routes[i].address, address, AUDIO_DEVICE_MAX_ADDRESS_LEN) == 0) { in audio_config_compare()
709 struct submix_audio_device * const rsxadev = out->dev; in audio_config_compare() local
711 pthread_mutex_lock(&rsxadev->lock); in audio_config_compare()
716 pthread_mutex_unlock(&rsxadev->lock); in audio_config_compare()
737 struct submix_audio_device * const rsxadev = in audio_config_compare() local
739 pthread_mutex_lock(&rsxadev->lock); in audio_config_compare()
742 rsxadev->routes[audio_stream_get_submix_stream_out(stream)->route_handle] in audio_config_compare()
745 pthread_mutex_unlock(&rsxadev->lock); in audio_config_compare()
752 pthread_mutex_unlock(&rsxadev->lock); in audio_config_compare()
796 struct submix_audio_device * const rsxadev = out->dev; in audio_config_compare() local
799 pthread_mutex_lock(&rsxadev->lock); in audio_config_compare()
803 sp<MonoPipe> sink = rsxadev->routes[out->route_handle].rsxSink; in audio_config_compare()
807 pthread_mutex_unlock(&rsxadev->lock); in audio_config_compare()
813 pthread_mutex_lock(&rsxadev->lock); in audio_config_compare()
816 pthread_mutex_unlock(&rsxadev->lock); in audio_config_compare()
820 pthread_mutex_unlock(&rsxadev->lock); in audio_config_compare()
837 sp<MonoPipeReader> source = rsxadev->routes[out->route_handle].rsxSource; in audio_config_compare()
838 const struct submix_stream_in *in = rsxadev->routes[out->route_handle].input; in audio_config_compare()
856 pthread_mutex_unlock(&rsxadev->lock); in audio_config_compare()
868 pthread_mutex_lock(&rsxadev->lock); in audio_config_compare()
870 pthread_mutex_unlock(&rsxadev->lock); in audio_config_compare()
881 pthread_mutex_lock(&rsxadev->lock); in audio_config_compare()
887 pthread_mutex_unlock(&rsxadev->lock); in audio_config_compare()
907 struct submix_audio_device * const rsxadev = out->dev; in audio_config_compare() local
910 pthread_mutex_lock(&rsxadev->lock); in audio_config_compare()
911 sp<MonoPipeReader> source = rsxadev->routes[out->route_handle].rsxSource; in audio_config_compare()
914 pthread_mutex_unlock(&rsxadev->lock); in audio_config_compare()
926 pthread_mutex_unlock(&rsxadev->lock); in audio_config_compare()
948 struct submix_audio_device * const rsxadev = out->dev; in audio_config_compare() local
950 pthread_mutex_lock(&rsxadev->lock); in audio_config_compare()
951 sp<MonoPipeReader> source = rsxadev->routes[out->route_handle].rsxSource; in audio_config_compare()
954 pthread_mutex_unlock(&rsxadev->lock); in audio_config_compare()
965 pthread_mutex_unlock(&rsxadev->lock); in audio_config_compare()
1083 struct submix_audio_device * const rsxadev = in->dev; in audio_config_compare() local
1085 pthread_mutex_lock(&rsxadev->lock); in audio_config_compare()
1089 pthread_mutex_unlock(&rsxadev->lock); in audio_config_compare()
1127 struct submix_audio_device * const rsxadev = in->dev; in audio_config_compare() local
1132 pthread_mutex_lock(&rsxadev->lock); in audio_config_compare()
1134 const bool output_standby = rsxadev->routes[in->route_handle].output == NULL in audio_config_compare()
1135 ? true : rsxadev->routes[in->route_handle].output->output_standby; in audio_config_compare()
1155 sp<MonoPipeReader> source = rsxadev->routes[in->route_handle].rsxSource; in audio_config_compare()
1160 pthread_mutex_unlock(&rsxadev->lock); in audio_config_compare()
1166 pthread_mutex_unlock(&rsxadev->lock); in audio_config_compare()
1174 rsxadev->routes[in->route_handle].config.input_channel_mask); in audio_config_compare()
1176 rsxadev->routes[in->route_handle].config.output_channel_mask); in audio_config_compare()
1181 ALOG_ASSERT(rsxadev->routes[in->route_handle].config.common.format == in audio_config_compare()
1191 rsxadev->routes[in->route_handle].config.output_sample_rate; in audio_config_compare()
1193 sizeof(rsxadev->routes[in->route_handle].resampler_buffer) / in audio_config_compare()
1194 sizeof(rsxadev->routes[in->route_handle].resampler_buffer[0]); in audio_config_compare()
1201 ALOG_ASSERT(rsxadev->routes[in->route_handle].config.common.format == in audio_config_compare()
1204 rsxadev->routes[in->route_handle].config.input_channel_mask) == 1); in audio_config_compare()
1220 buff = (char*)rsxadev->routes[in->route_handle].resampler_buffer; in audio_config_compare()
1303 pthread_mutex_lock(&rsxadev->lock); in audio_config_compare()
1305 pthread_mutex_unlock(&rsxadev->lock); in audio_config_compare()
1367 struct submix_audio_device * const rsxadev = in->dev; in audio_config_compare() local
1369 pthread_mutex_lock(&rsxadev->lock); in audio_config_compare()
1370 sp<MonoPipeReader> source = rsxadev->routes[in->route_handle].rsxSource; in audio_config_compare()
1373 pthread_mutex_unlock(&rsxadev->lock); in audio_config_compare()
1378 pthread_mutex_unlock(&rsxadev->lock); in audio_config_compare()
1411 struct submix_audio_device * const rsxadev = audio_hw_device_get_submix_audio_device(dev); in audio_config_compare() local
1426 pthread_mutex_lock(&rsxadev->lock); in audio_config_compare()
1428 status_t res = submix_get_route_idx_for_address_l(rsxadev, address, &route_idx); in audio_config_compare()
1431 pthread_mutex_unlock(&rsxadev->lock); in audio_config_compare()
1435 if (!submix_open_validate_l(rsxadev, route_idx, config, false)) { in audio_config_compare()
1437 pthread_mutex_unlock(&rsxadev->lock); in audio_config_compare()
1443 pthread_mutex_unlock(&rsxadev->lock); in audio_config_compare()
1470 force_pipe_creation = rsxadev->routes[route_idx].config.common.sample_rate in audio_config_compare()
1476 if ((rsxadev->routes[route_idx].rsxSink != NULL in audio_config_compare()
1477 && rsxadev->routes[route_idx].rsxSink->isShutdown()) || force_pipe_creation) { in audio_config_compare()
1478 submix_audio_device_release_pipe_l(rsxadev, route_idx); in audio_config_compare()
1482 out->dev = rsxadev; in audio_config_compare()
1485 submix_audio_device_create_pipe_l(rsxadev, config, DEFAULT_PIPE_SIZE_IN_FRAMES, in audio_config_compare()
1497 pthread_mutex_unlock(&rsxadev->lock); in audio_config_compare()
1504 struct submix_audio_device * rsxadev = audio_hw_device_get_submix_audio_device( in audio_config_compare() local
1508 pthread_mutex_lock(&rsxadev->lock); in audio_config_compare()
1509 ALOGD("adev_close_output_stream() addr = %s", rsxadev->routes[out->route_handle].address); in audio_config_compare()
1515 pthread_mutex_unlock(&rsxadev->lock); in audio_config_compare()
1602 struct submix_audio_device * rsxadev = audio_hw_device_get_submix_audio_device( in audio_config_compare() local
1606 if (rsxadev->routes[i].config.buffer_period_size_frames > max_buffer_period_size_frames) in audio_config_compare()
1608 max_buffer_period_size_frames = rsxadev->routes[i].config.buffer_period_size_frames; in audio_config_compare()
1633 struct submix_audio_device *rsxadev = audio_hw_device_get_submix_audio_device(dev); in audio_config_compare() local
1644 pthread_mutex_lock(&rsxadev->lock); in audio_config_compare()
1646 status_t res = submix_get_route_idx_for_address_l(rsxadev, address, &route_idx); in audio_config_compare()
1649 pthread_mutex_unlock(&rsxadev->lock); in audio_config_compare()
1655 if (!submix_open_validate_l(rsxadev, route_idx, config, true)) { in audio_config_compare()
1657 pthread_mutex_unlock(&rsxadev->lock); in audio_config_compare()
1662 in = rsxadev->routes[route_idx].input; in audio_config_compare()
1665 sp<MonoPipe> sink = rsxadev->routes[route_idx].rsxSink; in audio_config_compare()
1672 submix_audio_device_release_pipe_l(rsxadev, in->route_handle); in audio_config_compare()
1709 in->dev = rsxadev; in audio_config_compare()
1719 if (rsxadev->routes[route_idx].output != NULL) { in audio_config_compare()
1720 in->output_standby_rec_thr = rsxadev->routes[route_idx].output->output_standby; in audio_config_compare()
1728 submix_audio_device_create_pipe_l(rsxadev, config, DEFAULT_PIPE_SIZE_IN_FRAMES, in audio_config_compare()
1731 sp <MonoPipe> sink = rsxadev->routes[route_idx].rsxSink; in audio_config_compare()
1747 pthread_mutex_unlock(&rsxadev->lock); in audio_config_compare()
1754 struct submix_audio_device * const rsxadev = audio_hw_device_get_submix_audio_device(dev); in audio_config_compare() local
1758 pthread_mutex_lock(&rsxadev->lock); in audio_config_compare()
1759 submix_audio_device_destroy_pipe_l(rsxadev, in, NULL); in audio_config_compare()
1769 pthread_mutex_unlock(&rsxadev->lock); in audio_config_compare()
1774 const struct submix_audio_device * rsxadev = //audio_hw_device_get_submix_audio_device(device); in audio_config_compare() local
1784 rsxadev->routes[i].config.input_sample_rate, in audio_config_compare()
1785 rsxadev->routes[i].config.output_sample_rate, in audio_config_compare()
1786 rsxadev->routes[i].address); in audio_config_compare()
1789 rsxadev->routes[i].config.common.sample_rate, in audio_config_compare()
1790 rsxadev->routes[i].address); in audio_config_compare()
1808 struct submix_audio_device *rsxadev; in audio_config_compare() local
1813 rsxadev = (submix_audio_device*) calloc(1, sizeof(struct submix_audio_device)); in audio_config_compare()
1814 if (!rsxadev) in audio_config_compare()
1817 rsxadev->device.common.tag = HARDWARE_DEVICE_TAG; in audio_config_compare()
1818 rsxadev->device.common.version = AUDIO_DEVICE_API_VERSION_2_0; in audio_config_compare()
1819 rsxadev->device.common.module = (struct hw_module_t *) module; in audio_config_compare()
1820 rsxadev->device.common.close = adev_close; in audio_config_compare()
1822 rsxadev->device.init_check = adev_init_check; in audio_config_compare()
1823 rsxadev->device.set_voice_volume = adev_set_voice_volume; in audio_config_compare()
1824 rsxadev->device.set_master_volume = adev_set_master_volume; in audio_config_compare()
1825 rsxadev->device.get_master_volume = adev_get_master_volume; in audio_config_compare()
1826 rsxadev->device.set_master_mute = adev_set_master_mute; in audio_config_compare()
1827 rsxadev->device.get_master_mute = adev_get_master_mute; in audio_config_compare()
1828 rsxadev->device.set_mode = adev_set_mode; in audio_config_compare()
1829 rsxadev->device.set_mic_mute = adev_set_mic_mute; in audio_config_compare()
1830 rsxadev->device.get_mic_mute = adev_get_mic_mute; in audio_config_compare()
1831 rsxadev->device.set_parameters = adev_set_parameters; in audio_config_compare()
1832 rsxadev->device.get_parameters = adev_get_parameters; in audio_config_compare()
1833 rsxadev->device.get_input_buffer_size = adev_get_input_buffer_size; in audio_config_compare()
1834 rsxadev->device.open_output_stream = adev_open_output_stream; in audio_config_compare()
1835 rsxadev->device.close_output_stream = adev_close_output_stream; in audio_config_compare()
1836 rsxadev->device.open_input_stream = adev_open_input_stream; in audio_config_compare()
1837 rsxadev->device.close_input_stream = adev_close_input_stream; in audio_config_compare()
1838 rsxadev->device.dump = adev_dump; in audio_config_compare()
1841 memset(&rsxadev->routes[i], 0, sizeof(route_config)); in audio_config_compare()
1842 strcpy(rsxadev->routes[i].address, ""); in audio_config_compare()
1845 *device = &rsxadev->device.common; in audio_config_compare()