X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=futatabi%2Fmainwindow.cpp;h=8982b5f369142d0c21c32017fc8554af1358dbe9;hb=c1f1bd35d8c8e2cb9ff97c3535bb2dd04d55a51d;hp=d4c63bd6cfa7e4d755fbb7496f0da4d0dd558b01;hpb=d12283c92f0750871834b7c5afda605402d3b832;p=nageru diff --git a/futatabi/mainwindow.cpp b/futatabi/mainwindow.cpp index d4c63bd..8982b5f 100644 --- a/futatabi/mainwindow.cpp +++ b/futatabi/mainwindow.cpp @@ -15,6 +15,7 @@ #include #include #include +#include #include #include #include @@ -191,6 +192,10 @@ MainWindow::MainWindow() } } change_num_cameras(); + + if (!global_flags.tally_url.empty()) { + start_tally(); + } } void MainWindow::change_num_cameras() @@ -1053,3 +1058,28 @@ void MainWindow::replace_model(QTableView *view, Model **model, Model *new_model *model = new_model; connect(new_model, &Model::any_content_changed, this, &MainWindow::content_changed); } + +void MainWindow::start_tally() +{ + http_reply = http.get(QNetworkRequest(QString::fromStdString(global_flags.tally_url))); + connect(http_reply, &QNetworkReply::finished, this, &MainWindow::tally_received); +} + +void MainWindow::tally_received() +{ + unsigned time_to_next_tally_ms; + if (http_reply->error()) { + fprintf(stderr, "HTTP get of '%s' failed: %s\n", global_flags.tally_url.c_str(), + http_reply->errorString().toStdString().c_str()); + ui->live_frame->setStyleSheet(""); + time_to_next_tally_ms = 1000; + } else { + string contents = http_reply->readAll().toStdString(); + ui->live_frame->setStyleSheet(QString::fromStdString("background: " + contents)); + time_to_next_tally_ms = 100; + } + http_reply->deleteLater(); + http_reply = nullptr; + + QTimer::singleShot(time_to_next_tally_ms, this, &MainWindow::start_tally); +}