#include <stdio.h>
#include <functional>
+#include <limits>
#include <mutex>
#include <movit/effect_chain.h>
#include <movit/resource_pool.h>
static once_flag flag;
call_once(flag, [this]{
global_mixer = new Mixer(QGLFormat::toSurfaceFormat(format()), global_flags.num_cards);
+ global_audio_mixer = global_mixer->get_audio_mixer();
global_mainwindow->mixer_created(global_mixer);
global_mixer->start();
});
// The same for resolution.
QMenu mode_submenu;
QActionGroup mode_group(&mode_submenu);
- std::map<uint32_t, VideoMode> video_modes = global_mixer->get_available_video_modes(current_card);
+ std::map<uint32_t, bmusb::VideoMode> video_modes = global_mixer->get_available_video_modes(current_card);
uint32_t current_video_mode = global_mixer->get_current_video_mode(current_card);
bool has_auto_mode = false;
for (const auto &mode : video_modes) {
// --- End of card-dependent choices ---
// Add an audio source selector.
- QAction *audio_source_action = new QAction("Use as audio source", &menu);
- audio_source_action->setCheckable(true);
- if (global_mixer->get_audio_source() == signal_num) {
- audio_source_action->setChecked(true);
- audio_source_action->setEnabled(false);
+ QAction *audio_source_action = nullptr;
+ if (global_audio_mixer->get_mapping_mode() == AudioMixer::MappingMode::SIMPLE) {
+ audio_source_action = new QAction("Use as audio source", &menu);
+ audio_source_action->setCheckable(true);
+ if (global_audio_mixer->get_simple_input() == signal_num) {
+ audio_source_action->setChecked(true);
+ audio_source_action->setEnabled(false);
+ }
+ menu.addAction(audio_source_action);
}
- menu.addAction(audio_source_action);
// And a master clock selector.
QAction *master_clock_action = new QAction("Use as master clock", &menu);
// Show the menu and look at the result.
QAction *selected_item = menu.exec(global_pos);
- if (selected_item == audio_source_action) {
- global_mixer->set_audio_source(signal_num);
+ if (audio_source_action != nullptr && selected_item == audio_source_action) {
+ global_audio_mixer->set_simple_input(signal_num);
} else if (selected_item == master_clock_action) {
global_mixer->set_master_clock(signal_num);
} else if (selected_item != nullptr) {