1 #include "mussa_gui_conn_window.hh"
5 parse_args(int argc, char **argv, string *a_file_path, int *window,
6 int *threshold, char *ana_mode, float *ent_thres);
9 int main(int argc, char **argv)
14 int window, threshold;
16 char run_mode, ana_mode;
24 // yeah, its horrible to be passing these by reference, but I just don't see
25 // any other way without making parse_args part of MussaClass, which just
26 // seems wrong (args are after all, an io type thing, and the gui only mode
27 // will have it own way as well...
28 run_mode = parse_args(argc, argv, &a_file_path, &window, &threshold,
29 &ana_mode, &ent_thres);
31 cout << "mussa: run mode = " << run_mode;
32 cout << "\tfile_path = "<< a_file_path << endl;
33 cout << "mussa: ent_thres = " << ent_thres << endl;
35 // if no error from parse args (run_mode = 'e', ie error), run in proper mode
38 if ((run_mode == 'f') || (run_mode == 'n'))
40 err_msg = an_analysis.load_mupa_file(a_file_path);
41 err_msg = an_analysis.analyze(window, threshold, ana_mode, ent_thres);
42 //an_overlord.do_analysis();
46 err_msg = an_analysis.load(a_file_path);
47 //an_overlord.get_analysis();
49 // no longer needed, but still semi-useful reality check...
52 cout << "GTV - All Gui, All the Time\n";
57 if ((run_mode == 'f') || (run_mode == 'v') || (run_mode == 'g'))
59 //an_overlord.spawnConnView(1000,500);
60 ConnWindow *a_conn_win = new ConnWindow(x_max, y_max, "Mussa");
62 // we have an analysis already if in these 2 modes
63 if ((run_mode == 'f') || (run_mode == 'v'))
64 a_conn_win->add_ana(&an_analysis);
70 cout << err_msg << endl;
75 // minimal arg reading function, not very robust to errors
77 parse_args(int argc, char **argv, string *a_file_path, int *window,
78 int *threshold, char *ana_mode, float *ent_thres)
84 // initialize these to 0 as flag if they are not changed
88 run_mode = 'e'; //error default if no run mode set implicitly or explicitly
89 *ana_mode = 't'; // default to transitivie analyses mode
93 // no args means gui only mode
96 // 1 arg means its a mupa file and run in full mode
111 // see what alternate mode the user wants to run in
116 if ( (an_arg == "v") || (an_arg == "n") ) //only 2 valid modes so far
117 run_mode = an_arg[0];
120 cout << "Error: \'" << an_arg;
121 cout << "\' is not a valid analysis mode for -a argument" << endl;
124 *a_file_path = * ++argv;
127 // alternate analyses modes
128 else if (an_arg == "-a")
132 // t = transitive, r = radial, e = entropy
133 if ( (an_arg == "t") || (an_arg == "r") || (an_arg == "e") )
134 *ana_mode = an_arg[0];
137 cout << "Error: \'" << an_arg;
138 cout << "\' is not a valid run mode for -m argument" << endl;
143 else if (an_arg == "-w") // alternate window size arg
145 *window = atoi(* ++argv);
148 else if (an_arg == "-t") // alternate threshold arg
150 *threshold = atoi(* ++argv);
153 else if (an_arg == "-et") // alternate entropy threshold arg
155 *ent_thres = atof(* ++argv);
162 *a_file_path = an_arg;
168 //cout << "Error, unknown arg: \'" << an_arg << "\'" << endl;
169 cout << "Error, too many filenames: \'" << an_arg << "\'" << endl;