mirror of
https://github.com/lostjared/Acid.Cam.v2.Qt.git
synced 2025-12-17 12:20:00 +01:00
added menu and release all frames when stopped
This commit is contained in:
@@ -23,6 +23,10 @@ const char *filter_names[] = { "AC Self AlphaBlend", "Reverse Self AlphaBlend",
|
|||||||
"Vertical Average", "Circular Blend", "Average Blend", "~Divide", "Mix", "Random Number",
|
"Vertical Average", "Circular Blend", "Average Blend", "~Divide", "Mix", "Random Number",
|
||||||
"Gradient Repeat", 0 };
|
"Gradient Repeat", 0 };
|
||||||
|
|
||||||
|
|
||||||
|
const char *menuNames[] = {"All Filters", "All Filters Sorted", "Blend", "Distort", "Pattern", "Gradient", "Mirror", "Strobe", "Blur", "Image", "Square", "Other", "SubFilter", "Special", "User", 0};
|
||||||
|
|
||||||
|
|
||||||
void generate_map() {
|
void generate_map() {
|
||||||
for(int i = 0; i < ac::draw_max; ++i )
|
for(int i = 0; i < ac::draw_max; ++i )
|
||||||
filter_map[ac::draw_strings[i]] = FilterValue(0, i, -1);
|
filter_map[ac::draw_strings[i]] = FilterValue(0, i, -1);
|
||||||
@@ -54,12 +58,16 @@ AC_MainWindow::AC_MainWindow(QWidget *parent) : QMainWindow(parent) {
|
|||||||
programMode = MODE_CAMERA;
|
programMode = MODE_CAMERA;
|
||||||
init_plugins();
|
init_plugins();
|
||||||
generate_map();
|
generate_map();
|
||||||
|
ac::init_filter_menu_map();
|
||||||
|
ac::SortFilters();
|
||||||
setGeometry(100, 100, 800, 700);
|
setGeometry(100, 100, 800, 700);
|
||||||
setFixedSize(800, 700);
|
setFixedSize(800, 700);
|
||||||
setWindowTitle(tr("Acid Cam v2 - Qt"));
|
setWindowTitle(tr("Acid Cam v2 - Qt"));
|
||||||
createControls();
|
createControls();
|
||||||
createMenu();
|
createMenu();
|
||||||
|
|
||||||
|
loading = false;
|
||||||
|
|
||||||
cap_camera = new CaptureCamera(this);
|
cap_camera = new CaptureCamera(this);
|
||||||
cap_camera->setParent(this);
|
cap_camera->setParent(this);
|
||||||
|
|
||||||
@@ -99,6 +107,7 @@ AC_MainWindow::AC_MainWindow(QWidget *parent) : QMainWindow(parent) {
|
|||||||
chroma_window->hide();
|
chroma_window->hide();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void AC_MainWindow::createControls() {
|
void AC_MainWindow::createControls() {
|
||||||
custom_filters = new QListWidget(this);
|
custom_filters = new QListWidget(this);
|
||||||
custom_filters->setGeometry(400, 30, 390, 180);
|
custom_filters->setGeometry(400, 30, 390, 180);
|
||||||
@@ -106,7 +115,7 @@ void AC_MainWindow::createControls() {
|
|||||||
|
|
||||||
menu_cat = new QComboBox(this);
|
menu_cat = new QComboBox(this);
|
||||||
menu_cat->setGeometry(10, 90, 380, 30);
|
menu_cat->setGeometry(10, 90, 380, 30);
|
||||||
|
/*
|
||||||
menu_cat->addItem("All Filters");
|
menu_cat->addItem("All Filters");
|
||||||
menu_cat->addItem("All Filters Sorted");
|
menu_cat->addItem("All Filters Sorted");
|
||||||
menu_cat->addItem("Blend");
|
menu_cat->addItem("Blend");
|
||||||
@@ -122,7 +131,11 @@ void AC_MainWindow::createControls() {
|
|||||||
menu_cat->addItem("SubFilter");
|
menu_cat->addItem("SubFilter");
|
||||||
menu_cat->addItem("Special");
|
menu_cat->addItem("Special");
|
||||||
menu_cat->addItem("User");
|
menu_cat->addItem("User");
|
||||||
|
*/
|
||||||
|
|
||||||
|
for(int i = 0; menuNames[i] != 0; ++i) {
|
||||||
|
menu_cat->addItem(menuNames[i]);
|
||||||
|
}
|
||||||
menu_cat->setCurrentIndex(0);
|
menu_cat->setCurrentIndex(0);
|
||||||
|
|
||||||
filters = new QComboBox(this);
|
filters = new QComboBox(this);
|
||||||
@@ -284,14 +297,13 @@ void AC_MainWindow::createControls() {
|
|||||||
combo_rgb->addItem(tr("BGR"));
|
combo_rgb->addItem(tr("BGR"));
|
||||||
combo_rgb->addItem(tr("BRG"));
|
combo_rgb->addItem(tr("BRG"));
|
||||||
combo_rgb->addItem(tr("GRB"));
|
combo_rgb->addItem(tr("GRB"));
|
||||||
|
|
||||||
setWindowIcon(QPixmap(":/images/icon.png"));
|
setWindowIcon(QPixmap(":/images/icon.png"));
|
||||||
|
|
||||||
progress_bar = new QProgressBar(this);
|
progress_bar = new QProgressBar(this);
|
||||||
progress_bar->setGeometry(0, 640, 800, 20);
|
progress_bar->setGeometry(0, 640, 800, 20);
|
||||||
progress_bar->setMinimum(0);
|
progress_bar->setMinimum(0);
|
||||||
progress_bar->setMaximum(100);
|
progress_bar->setMaximum(100);
|
||||||
progress_bar->hide();
|
progress_bar->hide();
|
||||||
|
menu_cat->setCurrentIndex(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
void AC_MainWindow::createMenu() {
|
void AC_MainWindow::createMenu() {
|
||||||
@@ -649,6 +661,9 @@ void AC_MainWindow::colorMapChanged(int pos) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void AC_MainWindow::comboFilterChanged(int) {
|
void AC_MainWindow::comboFilterChanged(int) {
|
||||||
|
|
||||||
|
if(loading == true) return;
|
||||||
|
|
||||||
playback->setIndexChanged(filters->currentText().toStdString());
|
playback->setIndexChanged(filters->currentText().toStdString());
|
||||||
QString str;
|
QString str;
|
||||||
QTextStream stream(&str);
|
QTextStream stream(&str);
|
||||||
@@ -1256,5 +1271,15 @@ void AC_MainWindow::openColorWindow() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void AC_MainWindow::menuFilterChanged(int index) {
|
void AC_MainWindow::menuFilterChanged(int index) {
|
||||||
|
loading = true;
|
||||||
|
if(index >= 0 && index < menu_cat->count()) {
|
||||||
|
const char *menu_n = menuNames[index];
|
||||||
|
filters->clear();
|
||||||
|
auto v = ac::filter_menu_map[menu_n].menu_list;
|
||||||
|
for(auto in = v->begin(); in != v->end(); ++in) {
|
||||||
|
filters->addItem(in->c_str());
|
||||||
|
}
|
||||||
|
filters->setCurrentIndex(0);
|
||||||
|
}
|
||||||
|
loading = false;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -127,6 +127,7 @@ private:
|
|||||||
Playback *playback;
|
Playback *playback;
|
||||||
VideoMode programMode;
|
VideoMode programMode;
|
||||||
void buildVector(std::vector<FilterValue> &v);
|
void buildVector(std::vector<FilterValue> &v);
|
||||||
|
bool loading;
|
||||||
};
|
};
|
||||||
|
|
||||||
extern const char *filer_names[];
|
extern const char *filer_names[];
|
||||||
|
|||||||
@@ -281,6 +281,7 @@ void Playback::run() {
|
|||||||
emit frameIncrement();
|
emit frameIncrement();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
ac::release_all_objects();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user