});
global_mixer->set_frame_ready_callback(output, [this]{
QMetaObject::invokeMethod(this, "update", Qt::AutoConnection);
- emit transition_names_updated(global_mixer->get_transition_names());
- emit resolution_updated(output);
});
-
+ if (output == Mixer::OUTPUT_LIVE) {
+ global_mixer->set_transition_names_updated_callback(output, [this](const vector<string> &names){
+ emit transition_names_updated(names);
+ });
+ }
if (output >= Mixer::OUTPUT_INPUT0) {
+ global_mixer->set_name_updated_callback(output, [this](const string &name){
+ emit name_updated(output, name);
+ });
+ global_mixer->set_color_updated_callback(output, [this](const string &color){
+ emit color_updated(output, color);
+ });
+
int signal_num = global_mixer->get_channel_signal(output);
if (signal_num != -1) {
setContextMenuPolicy(Qt::CustomContextMenu);
// 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) {
mode_submenu.setTitle("Input mode");
menu.addMenu(&mode_submenu);
+ // --- End of card-dependent choices ---
// Add an audio source selector.
QAction *audio_source_action = new QAction("Use as audio source", &menu);
}
menu.addAction(audio_source_action);
+ // And a master clock selector.
+ QAction *master_clock_action = new QAction("Use as master clock", &menu);
+ master_clock_action->setCheckable(true);
+ if (global_mixer->get_master_clock() == signal_num) {
+ master_clock_action->setChecked(true);
+ master_clock_action->setEnabled(false);
+ }
+ menu.addAction(master_clock_action);
+
// 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);
+ } else if (selected_item == master_clock_action) {
+ global_mixer->set_master_clock(signal_num);
} else if (selected_item != nullptr) {
QList<QVariant> selected = selected_item->data().toList();
if (selected[0].toString() == "video_mode") {