string info = snd_pcm_info_get_name(pcm_info);
unsigned internal_dev_index;
+ string display_name;
{
lock_guard<mutex> lock(mu);
internal_dev_index = find_free_device_index(name, info, num_channels, address);
devices[internal_dev_index].info = info;
devices[internal_dev_index].num_channels = num_channels;
// Note: Purposefully does not overwrite held.
+
+ display_name = devices[internal_dev_index].display_name();
}
fprintf(stderr, "%s: Probed successfully.\n", address);
reset_device(internal_dev_index); // Restarts it if it is held (ie., we just replaced a dead card).
DeviceSpec spec{InputSourceType::ALSA_INPUT, internal_dev_index};
- global_audio_mixer->set_name(spec, name + " (" + info + ")");
+ global_audio_mixer->set_display_name(spec, display_name);
global_audio_mixer->trigger_state_changed_callback();
return ALSAPool::ProbeResult::SUCCESS;
// at any given time as a result of an error or hotplug event;
// a card that is held will go to the DEAD state instead.
bool held = false;
+
+ std::string display_name() const { return name + " (" + info + ")"; }
};
void init();
const DeviceSpec spec{ InputSourceType::CAPTURE_CARD, card_index };
const AudioDevice *device = &video_cards[card_index];
DeviceInfo info;
- info.name = device->name;
+ info.display_name = device->display_name;
info.num_channels = 8;
devices.insert(make_pair(spec, info));
}
const DeviceSpec spec{ InputSourceType::ALSA_INPUT, card_index };
const ALSAPool::Device &device = available_alsa_devices[card_index];
DeviceInfo info;
- info.name = device.name + " (" + device.info + ")";
+ info.display_name = device.display_name();
info.num_channels = device.num_channels;
devices.insert(make_pair(spec, info));
}
return devices;
}
-void AudioMixer::set_name(DeviceSpec device_spec, const string &name)
+void AudioMixer::set_display_name(DeviceSpec device_spec, const string &name)
{
AudioDevice *device = find_audio_device(device_spec);
lock_guard<timed_mutex> lock(audio_mutex);
- device->name = name;
+ device->display_name = name;
}
void AudioMixer::set_input_mapping(const InputMapping &new_input_mapping)
}
};
struct DeviceInfo {
- std::string name;
+ std::string display_name;
unsigned num_channels;
};
return alsa_pool.get_card_state(index);
}
- void set_name(DeviceSpec device_spec, const std::string &name);
+ void set_display_name(DeviceSpec device_spec, const std::string &name);
void set_input_mapping(const InputMapping &input_mapping);
InputMapping get_input_mapping() const;
struct AudioDevice {
std::unique_ptr<ResamplingQueue> resampling_queue;
int64_t next_local_pts = 0;
- std::string name;
+ std::string display_name;
unsigned capture_frequency = OUTPUT_FREQUENCY;
// Which channels we consider interesting (ie., are part of some input_mapping).
std::set<unsigned> interesting_channels;
card_combo->addItem(QString("(none) "));
}
for (const auto &spec_and_info : devices) {
- QString label(QString::fromStdString(spec_and_info.second.name));
+ QString label(QString::fromStdString(spec_and_info.second.display_name));
if (spec_and_info.first.type == InputSourceType::ALSA_INPUT) {
ALSAPool::Device::State state = global_audio_mixer->get_alsa_card_state(spec_and_info.first.index);
if (state == ALSAPool::Device::State::EMPTY) {
DeviceSpec device{InputSourceType::CAPTURE_CARD, card_index};
audio_mixer.reset_resampler(device);
- audio_mixer.set_name(device, card->capture->get_description());
+ audio_mixer.set_display_name(device, card->capture->get_description());
audio_mixer.trigger_state_changed_callback();
}