mirror of
https://github.com/lostjared/Acid.Cam.v2.Qt.git
synced 2025-12-23 23:29:59 +01:00
added Windows source
This commit is contained in:
167
windows/Acid.Cam.Qt.Windows.March.2019/new_dialog.cpp
Executable file
167
windows/Acid.Cam.Qt.Windows.March.2019/new_dialog.cpp
Executable file
@@ -0,0 +1,167 @@
|
||||
|
||||
/*
|
||||
* Acid Cam v2 - Qt/OpenCV Edition
|
||||
* written by Jared Bruni ( http://lostsidedead.com )
|
||||
* (C) 2017 GPL
|
||||
*/
|
||||
|
||||
|
||||
#include "new_dialog.h"
|
||||
#include "main_window.h"
|
||||
|
||||
|
||||
CaptureCamera::CaptureCamera(QWidget *parent) : QDialog(parent) {
|
||||
setGeometry(100, 100, 290, 120);
|
||||
setFixedSize(290, 120);
|
||||
setWindowTitle(tr("Capture from Webcam"));
|
||||
setWindowIcon(QPixmap(":/images/icon.png"));
|
||||
createControls();
|
||||
}
|
||||
|
||||
void CaptureCamera::createControls() {
|
||||
QLabel *res = new QLabel(tr("Resolution: "), this);
|
||||
res->setGeometry(10, 10, 75, 20);
|
||||
combo_res = new QComboBox(this);
|
||||
combo_res->setGeometry(85, 10, 200, 25);
|
||||
combo_res->addItem("640x480 (SD)");
|
||||
combo_res->addItem("1280x720 (HD)");
|
||||
combo_res->addItem("1920x1080 (Full HD)");
|
||||
QLabel *dev = new QLabel(tr("Device: "), this);
|
||||
dev->setGeometry(10, 35, 50, 20);
|
||||
combo_device = new QComboBox(this);
|
||||
combo_device->setGeometry(85, 35, 200, 25);
|
||||
for(int i = 0; i < 10; ++i) {
|
||||
QString s;
|
||||
QTextStream stream(&s);
|
||||
stream << i;
|
||||
combo_device->addItem(*stream.string());
|
||||
}
|
||||
btn_select = new QPushButton(tr("Save Directory"), this);
|
||||
btn_select->setGeometry(10, 65, 100, 20);
|
||||
output_dir = new QLineEdit("", this);
|
||||
output_dir->setGeometry(110, 65, 175, 20);
|
||||
output_dir->setReadOnly(true);
|
||||
chk_record = new QCheckBox(tr("Record"), this);
|
||||
chk_record->setGeometry(10, 95, 70, 20);
|
||||
btn_start = new QPushButton(tr("Start"), this);
|
||||
btn_start->setGeometry(185, 95, 100, 20);
|
||||
connect(btn_start, SIGNAL(clicked()), this, SLOT(btn_Start()));
|
||||
connect(btn_select, SIGNAL(clicked()), this, SLOT(btn_Select()));
|
||||
|
||||
video_type = new QComboBox(this);
|
||||
video_type->setGeometry(80, 90, 90, 25);
|
||||
video_type->addItem("MOV");
|
||||
video_type->addItem("AVI");
|
||||
}
|
||||
|
||||
void CaptureCamera::setParent(AC_MainWindow *p) {
|
||||
win_parent = p;
|
||||
}
|
||||
|
||||
void CaptureCamera::btn_Select() {
|
||||
|
||||
QString def_path = "";
|
||||
#if defined(__linux__)
|
||||
def_path = "";
|
||||
#elif defined(__APPLE__)
|
||||
def_path = "/Users";
|
||||
#elif defined(_WIN32)
|
||||
def_path = "C:\\";
|
||||
#endif
|
||||
|
||||
QString dir = QFileDialog::getExistingDirectory(this, tr("Open Directory"),def_path,QFileDialog::ShowDirsOnly | QFileDialog::DontResolveSymlinks);
|
||||
|
||||
if(dir != "") {
|
||||
output_dir->setText(dir);
|
||||
}
|
||||
}
|
||||
|
||||
void CaptureCamera::btn_Start() {
|
||||
|
||||
int vtype;
|
||||
vtype = video_type->currentIndex();
|
||||
|
||||
if(output_dir->text().length() > 0) {
|
||||
if(win_parent->startCamera(combo_res->currentIndex(), combo_device->currentIndex(), output_dir->text(), chk_record->isChecked(), vtype)) {
|
||||
hide();
|
||||
|
||||
} else {
|
||||
QMessageBox::information(this, tr("Could not open Capture device"), tr("Make sure you Webcam is pluged in. If you have more than one Webcam use the proper device index."));
|
||||
}
|
||||
} else {
|
||||
QMessageBox::information(this, tr("Error please fill out Save Directory"), tr("Could not create Capture device requires Save Directory"));
|
||||
}
|
||||
}
|
||||
|
||||
CaptureVideo::CaptureVideo(QWidget *parent) : QDialog(parent) {
|
||||
setGeometry(100, 100, 330, 100);
|
||||
setFixedSize(330, 100);
|
||||
setWindowTitle(tr("Capture from Video"));
|
||||
setWindowIcon(QPixmap(":/images/icon.png"));
|
||||
createControls();
|
||||
}
|
||||
|
||||
void CaptureVideo::createControls() {
|
||||
btn_setedit = new QPushButton(tr("Source File"), this);
|
||||
btn_setedit->setGeometry(10, 10, 110, 20);
|
||||
edit_src = new QLineEdit(this);
|
||||
edit_src->setGeometry(120, 10, 200, 20);
|
||||
edit_src->setReadOnly(true);
|
||||
btn_setout = new QPushButton(tr("Set Output"), this);
|
||||
btn_setout->setGeometry(10, 30, 110, 20);
|
||||
edit_outdir = new QLineEdit(this);
|
||||
edit_outdir->setGeometry(120, 30, 200, 20);
|
||||
edit_outdir->setReadOnly(true);
|
||||
btn_start = new QPushButton(tr("Start"), this);
|
||||
btn_start->setGeometry(10, 60, 100, 20);
|
||||
chk_record = new QCheckBox(tr("Record"), this);
|
||||
chk_record->setGeometry(110, 60, 80, 20);
|
||||
|
||||
video_type = new QComboBox(this);
|
||||
video_type->setGeometry(180, 55, 120, 25);
|
||||
video_type->addItem("MOV");
|
||||
video_type->addItem("AVI");
|
||||
connect(btn_setedit, SIGNAL(clicked()), this, SLOT(btn_SetSourceFile()));
|
||||
connect(btn_setout, SIGNAL(clicked()), this, SLOT(btn_SetOutputDir()));
|
||||
connect(btn_start, SIGNAL(clicked()), this, SLOT(btn_Start()));
|
||||
}
|
||||
|
||||
void CaptureVideo::setParent(AC_MainWindow *p) {
|
||||
win_parent = p;
|
||||
}
|
||||
|
||||
void CaptureVideo::btn_SetSourceFile() {
|
||||
QString def_path = "";
|
||||
QString fileName = QFileDialog::getOpenFileName(this,tr("Open Video"), def_path, tr("Video Files (*.avi *.mov *.mp4 *.mkv)"));
|
||||
if(fileName != "")
|
||||
edit_src->setText(fileName);
|
||||
}
|
||||
|
||||
void CaptureVideo::btn_SetOutputDir() {
|
||||
QString def_path = "";
|
||||
QString dir = QFileDialog::getExistingDirectory(this, tr("Set Output Directory"),def_path,QFileDialog::ShowDirsOnly | QFileDialog::DontResolveSymlinks);
|
||||
if(dir != "")
|
||||
edit_outdir->setText(dir);
|
||||
}
|
||||
|
||||
void CaptureVideo::btn_Start() {
|
||||
if(edit_src->text().length() <= 0) {
|
||||
QMessageBox::information(this, tr("No Input"), tr("Please Select a Video File"));
|
||||
return;
|
||||
}
|
||||
if(edit_outdir->text().length() <= 0) {
|
||||
QMessageBox::information(this, tr("No Output"), tr("Please Select Output Directory"));
|
||||
return;
|
||||
}
|
||||
|
||||
int num;
|
||||
num = video_type->currentIndex();
|
||||
|
||||
if(win_parent->startVideo(edit_src->text(), edit_outdir->text(), chk_record->isChecked(), num)) {
|
||||
hide();
|
||||
} else {
|
||||
QMessageBox::information(this, tr("Could not open file"), tr("Could not open video file, an error has occured"));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user