frame.chain->render_to_screen();
check_error();
}
+
+void GLWidget::mousePressEvent(QMouseEvent *event)
+{
+ emit clicked();
+}
void initializeGL() override;
void resizeGL(int width, int height) override;
void paintGL() override;
+ void mousePressEvent(QMouseEvent *event) override;
+
+signals:
+ void clicked();
private:
Mixer::Output output;
#include "mainwindow.h"
#include "window.h"
#include <thread>
+#include <QSignalMapper>
#include "context.h"
#include "mixer.h"
ui->preview1->set_output(Mixer::OUTPUT_INPUT0);
ui->preview2->set_output(Mixer::OUTPUT_INPUT1);
ui->preview3->set_output(Mixer::OUTPUT_INPUT2);
+
+ QSignalMapper *mapper = new QSignalMapper(this);
+ mapper->setMapping(ui->preview1, 0),
+ mapper->setMapping(ui->preview2, 1);
+ mapper->setMapping(ui->preview3, 2);
+ connect(ui->preview1, SIGNAL(clicked()), mapper, SLOT(map()));
+ connect(ui->preview2, SIGNAL(clicked()), mapper, SLOT(map()));
+ connect(ui->preview3, SIGNAL(clicked()), mapper, SLOT(map()));
+ connect(mapper, SIGNAL(mapped(int)), this, SLOT(channel_clicked(int)));
}
void MainWindow::cut()
{
global_mixer->transition_clicked(0); // FIXME: real value
}
+
+void MainWindow::channel_clicked(int channel_number)
+{
+ global_mixer->channel_clicked(channel_number);
+}
public slots:
void cut();
+ void channel_clicked(int id);
};
#endif
theme->transition_clicked(transition_num, frame / 60.0);
}
+void Mixer::channel_clicked(int preview_num)
+{
+ theme->channel_clicked(preview_num);
+}
+
Mixer::OutputChannel::~OutputChannel()
{
if (has_current_frame) {
void quit();
void transition_clicked(int transition_num);
+ void channel_clicked(int preview_num);
enum Output {
OUTPUT_LIVE = 0,
exit(1);
}
}
+
+void Theme::channel_clicked(int preview_num)
+{
+ unique_lock<mutex> lock(m);
+ lua_getglobal(L, "channel_clicked");
+ lua_pushnumber(L, preview_num);
+
+ if (lua_pcall(L, 1, 0, 0) != 0) {
+ fprintf(stderr, "error running function `channel_clicked': %s\n", lua_tostring(L, -1));
+ exit(1);
+ }
+}
void connect_signal(movit::YCbCrInput *input, int signal_num);
void transition_clicked(int transition_num, float t);
+ void channel_clicked(int preview_num);
private:
std::mutex m;
zoom_dst = temp
end
-function channel_clicked(num, t)
- -- Presumably change the preview here.
- io.write("STUB: channel_clicked\n")
+function channel_clicked(num)
+ preview_signal_num = num
end
-- Called every frame. Get the chain for displaying at input <num>,
return main_chain_hq.chain, prepare
end
if num == 1 then -- Preview.
- prepare = function()
- simple_chain_lq_input:connect_signal(preview_signal_num)
- end
- return simple_chain_lq, prepare
+ num = preview_signal_num + 2
end
if num == 2 then
prepare = function()