Esempio n. 1
0
// Open a new data source (into g_disk), and possibly the only project
static void open_backup(char *type, char *path) {
	int dps;
	if (strcmp(type, "-dps12")==0) {
		_DBG(_DBG_PRJ, "Opening DPS12 backup: %s\n", path);
		dps = AOSP_DPS12;
	} else if (strcmp(type, "-dps16")==0) {
		_DBG(_DBG_PRJ, "Opening DPS16 backup: %s\n", path);
		dps = AOSP_DPS16;
	} else {
		about_box("Invalid backup type specified");
		return;
	}
	close_backup();
	if (g_fd>=0)
		close(g_fd);
#ifdef WIN32
	g_fd = _sopen(path, _O_RDONLY | _O_BINARY, _SH_DENYNO);
#else
	g_fd = open(path, O_RDONLY | O_LARGEFILE);
#endif
	if (g_fd<0) {
		about_box("Unable to open specified path");
		return;
	}
	_DBG(_DBG_PRJ, "trying multi-project reader..\n");
	if (akaiosdisk_read(g_fd, &g_disk)==0) {
		set_title(path, NULL, NULL);
		// It's a valid multi-project backup, populate menu
		// and open first project
		if (g_disk.dir) {
			_DBG(_DBG_PRJ, "populating multi-menu\n");
			AkaiOsDisk_Dirent *e = g_disk.dir;
			clear_multi();
			while(e) {
				add_multi(e);
				e = e->next;
			}
			g_dps = dps;
			open_project(dps, g_disk.dir);
		} else {
			about_box("Empty multi-project backup");
		}
	} else {
		// It might be a single project backup..
		_DBG(_DBG_PRJ, "trying single-project reader..\n");
		lseek64(g_fd, (off64_t)0, SEEK_SET);
		g_dps = dps;
		open_project(dps, NULL);
	}
}
Esempio n. 2
0
int main(int argc, char *argv[])
{

#ifdef ENABLE_NLS
    bindtextdomain(GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR);
    bind_textdomain_codeset(GETTEXT_PACKAGE, "UTF-8");
    textdomain(GETTEXT_PACKAGE);
#endif

    gtk_set_locale();
    gtk_init(&argc, &argv);

    // create and show main window
    mainWindow = (GtkWidget*) create_MainWindow();
    gtk_widget_show(mainWindow);

    // read config file
    if(read_settings()!=0)
	    show_preferences();

    while(!get_mix_path())
	if(!show_preferences()) return 0;

    // initialize MIX
    while(mix_init(get_mix_path()))
	if(!show_preferences()) return 0;

    // open cmd arg passed sheet
    if(argc > 1) {
	open_project((const char*) argv[1]);
    }

    gtk_main();
    return 0;
}
Esempio n. 3
0
void ProjectNavigator::add_file() {
    QFileDialog fd(this);
    QDir dir(this->project_path);
    fd.setDirectory(dir.dirName());
    fd.setAcceptMode(QFileDialog::AcceptOpen);
    fd.setFileMode(QFileDialog::ExistingFile);
    fd.setNameFilter(tr("NIX File (*.nix *.h5)"));
    fd.setViewMode(QFileDialog::Detail);
    QStringList fileNames;
    if (fd.exec())
        fileNames = fd.selectedFiles();
    if (fileNames.size() == 0)
        return;
    ProjectIndex pi(this->project_path);
    for (auto f : fileNames) {
        pi.add_file(f);
    }
    open_project(this->project_name, this->project_path);
}
Esempio n. 4
0
void StartPage::on_continue_project_clicked()
{
    emit open_project( selected_filename("projects") );
}
Esempio n. 5
0
int main(int argc, char **argv) {
	char buf[1024], *usage =
"usage: deepstripper-gtk [-d[ebug]] [-h[elp]] [-o[utput] <path>]\n"
"       [-dps12|-dps16 <path>] [-e[xtract] <project>]\n";
	GtkWidget *vbox, *men, *paned, *note, *frame, *scroll;
	GtkItemFactory *fac;
	GtkAccelGroup *acc;
	int i, dps = -1;

	for (i=1; i<argc; i++) {
		if (strcmp(argv[i], "-d")==0) {
			g_dbg = g_dbg<<1 | 1;
		} else if (strncmp(argv[i], "-h", 2)==0) {
			g_print("%s", usage);
			return 0;
		}
	}
	gtk_init(&argc, &argv);
	g_main = gtk_window_new(GTK_WINDOW_TOPLEVEL);
	gtk_window_set_default_size(GTK_WINDOW(g_main), 600, 400);
	set_title("?", GETCWD(buf, sizeof(buf)), "");
	g_signal_connect(G_OBJECT(g_main), "delete_event", G_CALLBACK(quit), NULL);

	vbox = gtk_vbox_new(FALSE, 0);
	gtk_container_add(GTK_CONTAINER(g_main), vbox);
	gtk_widget_show(vbox);

	acc = gtk_accel_group_new();
	fac = gtk_item_factory_new(GTK_TYPE_MENU_BAR, "<deepstripper-main>", acc);
	gtk_item_factory_create_items(fac, MENU_SIZE, root_menu, 0);
	men = gtk_item_factory_get_widget(fac, "<deepstripper-main>");
	gtk_box_pack_start(GTK_BOX(vbox), men, FALSE, FALSE, 0);
	gtk_window_add_accel_group(GTK_WINDOW(g_main), acc);
	gtk_widget_show(men);
	g_multi = gtk_item_factory_get_item(fac, "/Multi");

	paned = gtk_hpaned_new();
	gtk_container_set_border_width(GTK_CONTAINER(paned), 5);
	gtk_box_pack_start(GTK_BOX(vbox), paned, TRUE, TRUE, 0);
	gtk_widget_show(paned);

	note = gtk_notebook_new();
	gtk_notebook_set_tab_pos(GTK_NOTEBOOK(note), GTK_POS_BOTTOM);
	gtk_notebook_set_show_border(GTK_NOTEBOOK(note), TRUE);
	gtk_notebook_set_homogeneous_tabs(GTK_NOTEBOOK(note), TRUE);
	gtk_widget_set_size_request(note, 150, 200);
	gtk_paned_pack1(GTK_PANED(paned), note, TRUE, FALSE);
	gtk_widget_show(note);

	for (i=0; i<N_TABS; i++) {
		GtkWidget *l = gtk_label_new(g_tabs[i].tab);
		gtk_widget_show(l);
		gtk_notebook_append_page(GTK_NOTEBOOK(note),
			make_list(g_tabs[i].data, i), l);
	}

	frame = gtk_frame_new("Item properties:");
	gtk_widget_set_size_request(frame, 150, 200);
	gtk_paned_pack2(GTK_PANED(paned), frame, TRUE, FALSE);
	gtk_widget_show(frame);

	scroll = gtk_scrolled_window_new(NULL, NULL);
	gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scroll),
		GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
	gtk_container_add(GTK_CONTAINER(frame), scroll);
	gtk_widget_show(scroll);
	
	g_info = gtk_label_new(DEFAULT_INFO);
	gtk_label_set_justify(GTK_LABEL(g_info), GTK_JUSTIFY_LEFT);
	gtk_label_set_line_wrap(GTK_LABEL(g_info), FALSE);
	gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(scroll), g_info);
	gtk_widget_show(g_info);

	g_stat = gtk_statusbar_new();
	gtk_box_pack_end(GTK_BOX(vbox), g_stat, FALSE, FALSE, 0);
	gtk_widget_show(g_stat);
	set_status("status");
	
// Display everything
	gtk_widget_show(g_main);

// Process all other command line switches
	for (i=1; i<argc; i++) {
		if (strncmp(argv[i], "-o", 2)==0) {
			if (chdir(argv[++i]))
				about_box("unable to change directory");
			else
				set_title(NULL, GETCWD(buf, sizeof(buf)), NULL);
		} else if (strncmp(argv[i], "-dps", 4)==0) {
			open_backup(argv[i], argv[i+1]);
			if (strcmp(argv[i], "-dps12")==0)
				dps = AOSP_DPS12;
			else
				dps = AOSP_DPS16;
			++i;
		} else if (strncmp(argv[i], "-e", 2)==0) {
			if (dps<0)
				about_box("No backup specified to extract from");
			else {
				open_project(dps, akaiosdisk_project_byname(&g_disk, argv[++i]));
				select_tracks(MID_SELNOE);
				extract_tracks();
			}
		} else if (strncmp(argv[i], "-d", 2)==0 ||
			strncmp(argv[i], "-h", 2)==0) {
			; // Skip earlier opts
		} else {
			about_box(usage);
		}
	}

// Run message pump..
	gtk_main();
	return 0;
}
Esempio n. 6
0
// Menu handler
static void menu(gpointer d, guint action, GtkWidget *w) {
	char *name;

	switch(action) {
	case MID_OPEN12:
		_DBG(_DBG_GUI,"open DPS12\n");
		name = get_file("Open DPS12 backup", FALSE);
		if (name)
			open_backup("-dps12", name);
		break;
	case MID_OPEN16:
		_DBG(_DBG_GUI,"open DPS16\n");
		name = get_file("Open DPS16 backup", FALSE);
		if (name)
			open_backup("-dps16", name);
		break;
	case MID_CLOSE:
		_DBG(_DBG_GUI,"close\n");
		close_backup();
		break;
	case MID_PROPS:
		_DBG(_DBG_GUI,"properties\n");
		show_project_info();
		break;
	case MID_EXIT:
		quit(w, NULL, d);
		break;

	case MID_SELASS:
		_DBG(_DBG_GUI,"select assigned\n");
		select_tracks(action);
		break;
	case MID_SELNOE:
		_DBG(_DBG_GUI,"select non-empty\n");
		select_tracks(action);
		break;
	case MID_SELALL:
		_DBG(_DBG_GUI,"select all\n");
		select_tracks(action);
		break;
	case MID_SELNONE:
		_DBG(_DBG_GUI,"select none\n");
		select_tracks(action);
		break;
	case MID_SELEXP:
		_DBG(_DBG_GUI,"export selected\n");
		if (g_proj.splbyte==2)
			extract_tracks();
		else
			about_box("FIXME: only 16-bit data can be exported");
		break;

	case MID_HELP:
		_DBG(_DBG_GUI,"help about\n");
		about_box(NULL);
		break;
	case MID_VERSION:
		_DBG(_DBG_GUI,"help versions\n");
		{
			char buf[256];
			sprintf(buf, "deepstripper-gtk: %s\ngtk-build: %d.%d.%d\ngtk-runtime: %d.%d.%d",
				RELEASE, GTK_MAJOR_VERSION, GTK_MINOR_VERSION, GTK_MICRO_VERSION,
				gtk_major_version, gtk_minor_version, gtk_micro_version);
			about_box(buf);
		}
		break;

	case MID_MULTI:
		_DBG(_DBG_GUI,"change project: %s\n", ((AkaiOsDisk_Dirent *)d)->name);
		open_project(g_dps, (AkaiOsDisk_Dirent *)d);
		break;

	default:
		_DBG(_DBG_GUI,"unknown action: %d\n", action);
		break;
	}
}
Esempio n. 7
0
void ProjectNavigator::set_project(const QString &project) {
    std::cerr << "ProjectNavigator SetProject: " << project.toStdString() << std::endl;
    QString path = pm.get_project_path(project);
    std::cerr << "ProjectNavigator: " << path.toStdString() << std::endl;
    open_project(project, path);
}
Esempio n. 8
0
WatchDiamondWidget::WatchDiamondWidget(int argc, char **argv, QWidget *parent) :
    QMainWindow(parent)
{
    setupUi(this);
    setFocusPolicy(Qt::StrongFocus);
    markWidget = new MarkWidget(argc,argv,wg_mark);
    coordinate = new Coordinate(lb_x,lb_y,lb_z,lb_a,lb_b);
    setupDialog= new AlgorithmDialog(this);

    for(int i=0; i<5; i++)
        axisPos[i] = 0;

    doubleValidator = new QDoubleValidator(this);
    le_setDiamondT->setValidator(doubleValidator);
    le_getDiamondT->setValidator(doubleValidator);
    le_glueT->setValidator(doubleValidator);
    le_afterGlueT->setValidator(doubleValidator);

    slowVel = markWidget->get_slow_velocity();
    fastVel = markWidget->get_fast_velocity();
    currentVel = fastVel;
    //QString vel = double_to_qstring(currentVel);
    //le_setVelocity->setText(vel);
    autoRun = false;

    QAction* clear = new QAction(QString::fromUtf8("清除所有"),this);
    te_sysMessage->addAction(clear);
    te_sysMessage->setContextMenuPolicy(Qt::ActionsContextMenu);
    te_sysMessage->setTextColor(QColor(Qt::red));
    te_sysMessage->setReadOnly(true);
    te_sysMessage->setText(QString("system Message:\n"));

    jogButtons[0] = bt_xPlus; jogButtons[1] = bt_xReduce; jogButtons[2] = bt_yPlus; jogButtons[3] = bt_yReduce;
    jogButtons[4] = bt_zPlus; jogButtons[5] = bt_zReduce; jogButtons[6] = bt_aPlus; jogButtons[7] = bt_aReduce;
    jogButtons[8] = bt_bPlus; jogButtons[9] = bt_bReduce;

    ioButtons[0] = tb_1; ioButtons[1] = tb_2; ioButtons[2] = tb_3;
    ioButtons[3] = tb_4; ioButtons[4] = tb_5; ioButtons[5] = tb_6;

    connect(markWidget,SIGNAL(update_emc_status(MarkEmcStatus)),this,SLOT(update_emc_slot(MarkEmcStatus)));    
    connect(markWidget,SIGNAL(update_infor(Information&)),this,SLOT(update_infor_slot(Information&)));
    connect(bt_machineRun,SIGNAL(toggled(bool)),this,SLOT(machine_open_toggled(bool)));
    connect(bt_home,SIGNAL(clicked()),this,SLOT(home()));
    connect(bt_zero,SIGNAL(clicked()),this,SLOT(zero()));
    connect(bt_changeVelocity,SIGNAL(toggled(bool)),this,SLOT(change_vel_toggled(bool)));
    //connect(le_setVelocity,SIGNAL(editingFinished()),this,SLOT(finish_set_velocity()));
    connect(bt_scanDiamond,SIGNAL(clicked()),this,SLOT(scan_diamond()));
    connect(bt_scanWatch,SIGNAL(toggled(bool)),this,SLOT(scan_watch(bool)));
    connect(bt_setGlue,SIGNAL(toggled(bool)),this,SLOT(set_glue(bool)));
    connect(bt_setDiamond,SIGNAL(toggled(bool)),this,SLOT(set_diamond(bool)));
    connect(action_open,SIGNAL(triggered()),this,SLOT(open_project()));
    connect(action_new,SIGNAL(triggered()),this,SLOT(new_project()));
    connect(action_halConfig,SIGNAL(triggered()),this,SLOT(hal_config()));
    connect(action_halMeter,SIGNAL(triggered()),this,SLOT(hal_meter()));
    connect(action_halScope,SIGNAL(triggered()),this,SLOT(hal_scope()));
    connect(action_algorithm,SIGNAL(triggered()),this,SLOT(setup_algorithm()));
    connect(bt_autoRun,SIGNAL(toggled(bool)),this,SLOT(auto_run(bool)));
    connect(bt_pause,SIGNAL(toggled(bool)),this,SLOT(pause(bool)));
    connect(bt_stop,SIGNAL(clicked()),this,SLOT(stop()));
    connect(clear,SIGNAL(triggered()),this,SLOT(clear_error_message()));

    connect(bt_getDiamondZ,SIGNAL(clicked()),this,SLOT(set_height()));
    connect(bt_setGlueZ,SIGNAL(clicked()),this,SLOT(set_height()));
    connect(bt_setDiamondZ,SIGNAL(clicked()),this,SLOT(set_height()));
    connect(sp_getDiamondZ,SIGNAL(editingFinished()),this,SLOT(set_height()));
    connect(sp_setDiamondZ,SIGNAL(editingFinished()),this,SLOT(set_height()));
    connect(sp_setGlueZ,SIGNAL(editingFinished()),this,SLOT(set_height()));

    connect(le_setDiamondT,SIGNAL(editingFinished()),this,SLOT(set_time()));
    connect(le_getDiamondT,SIGNAL(editingFinished()),this,SLOT(set_time()));
    connect(le_glueT,SIGNAL(editingFinished()),this,SLOT(set_time()));
    connect(le_afterGlueT,SIGNAL(editingFinished()),this,SLOT(set_time()));

    connect(hs_slowVel,SIGNAL(valueChanged(int)),this,SLOT(set_velocity(int)));
    connect(hs_fastVel,SIGNAL(valueChanged(int)),this,SLOT(set_velocity(int)));

    connect(sp_pickupOffsetX,SIGNAL(valueChanged(double)),this,SLOT(micro_adjust_offset(double)));
    connect(sp_pickupOffsetY,SIGNAL(valueChanged(double)),this,SLOT(micro_adjust_offset(double)));
    connect(sp_glueOffsetX,SIGNAL(valueChanged(double)),this,SLOT(micro_adjust_offset(double)));
    connect(sp_glueOffsetY,SIGNAL(valueChanged(double)),this,SLOT(micro_adjust_offset(double)));

    for(int i=0; i<10; i++){
        connect(jogButtons[i],SIGNAL(pressed()),this,SLOT(jog()));
        connect(jogButtons[i],SIGNAL(released()),this,SLOT(end_jog()));
    }

    for(int i=0; i<6; i++){
        connect(ioButtons[i],SIGNAL(toggled(bool)),this,SLOT(io_button_toggled(bool)));
    }

    connect(sp_distance,SIGNAL(valueChanged(double)),this,SLOT(set_diamond_distance(double)));
    sp_distance->setValue(0.080);
    bt_machineRun->setChecked(true);
    timer = new QTimer(this);
    connect(timer,SIGNAL(timeout()),this,SLOT(ask_home()));
    timer->start(500);

    //bt_home->setChecked(true);
}