-#include <qmetatype.h> // Needs to come before egl.h.
-#include <qdatastream.h> // Needs to come before egl.h.
-#include <qtextstream.h> // Needs to come before egl.h.
-#include <qcursor.h> // Needs to come before egl.h.
-#include <qcoreevent.h> // Needs to come before egl.h.
-#include <qevent.h> // Needs to come before egl.h.
-#include <epoxy/gl.h>
-#include <epoxy/egl.h>
-#include <QAction>
-#include <QMenu>
-#include <QSurfaceFormat>
-
#include "glwidget.h"
-#include <stdio.h>
-#include <functional>
-#include <mutex>
+#include <assert.h>
+#include <bmusb/bmusb.h>
#include <movit/effect_chain.h>
#include <movit/resource_pool.h>
+#include <stdbool.h>
+#include <stdint.h>
+#include <QAction>
+#include <QActionGroup>
+#include <QList>
+#include <QMenu>
+#include <QPoint>
+#include <QVariant>
+#include <QWidget>
+#include <functional>
+#include <map>
+#include <mutex>
+#include <utility>
+#include "audio_mixer.h"
#include "context.h"
#include "flags.h"
#include "mainwindow.h"
#include "mixer.h"
-#include "qnamespace.h"
#include "ref_counted_gl_sync.h"
class QMouseEvent;
-class QWidget;
#undef Success
#include <movit/util.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();
});
// --- 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) {