int main(int argc, char *argv[]) { //initialize global variable index1=0; // index of movie list index2=0; // index of smi list index_inside_movie=TRUE; // initialize varables int ch; WIN win; WIN win2; WINDOW *popup_win; // init ncurses window initscr(); cbreak(); //raw(); keypad(stdscr, TRUE); noecho(); curs_set(0); if(has_colors() == FALSE) { endwin(); printf("Your terminal does not support color\n"); exit(1); } start_color(); init_pair(1, COLOR_BLACK, COLOR_WHITE); init_pair(2, COLOR_BLACK, COLOR_YELLOW); // print headline int start_line_number = print_headline(); // load local files. loadFiles("."); // sorting std::sort(vMovieFiles.begin(), vMovieFiles.end(), sortOp); std::sort(vSmiFiles.begin(), vSmiFiles.end(), sortOp); // listFiles return 0 when no error if(listFiles() == 0) { init_win_params(&win, start_line_number+2, 0, 0, vMovieFiles.size() + 1); init_win_params(&win2, start_line_number+3+vMovieFiles.size()+3, 0, 0, vSmiFiles.size() + 1); create_box(&win, TRUE,1); create_box2(&win2, TRUE,1); while( (ch = getch()) != 'q') { switch(ch) { case 'j': case KEY_DOWN: { create_box(&win, FALSE,1); create_box(&win2, FALSE,1); if(index_inside_movie == TRUE) { if(index1 == vMovieFiles.size()-1) { index1 = 0; } else { index1++; } } else { if(index2 == vSmiFiles.size()-1) { index2 =0; } else { index2++; } } create_box(&win, TRUE,1); create_box2(&win2, TRUE,1); break; } case 'k': case KEY_UP: { create_box(&win, FALSE,1); create_box(&win2, FALSE,1); if(index_inside_movie == TRUE) { if(index1 == 0) { index1 = vMovieFiles.size()-1; } else { index1--; } } else { if(index2 == 0) { index2 = vSmiFiles.size()-1; } else { index2--; } } create_box(&win, TRUE,1); create_box2(&win2, TRUE,1); break; } case '\t': case KEY_BTAB: { index_inside_movie = !index_inside_movie; create_box(&win, TRUE,1); create_box2(&win2, TRUE,1); break; } case 'd': { std::string popup_msg = "delete?(d/esc)"; popup_win = create_win(3, popup_msg.length()+3, start_line_number+5,(int)COLS/2-popup_msg.length(),popup_msg); wrefresh(popup_win); int ch2; while( (ch2=getch()) != 'e') { switch(ch2) { case 'd': { if(index_inside_movie) { std::vector<std::string>::iterator iter1=vMovieFiles.begin(); if(vMovieFiles.size()!=1){ if(index1 == vMovieFiles.size()-1){ vMovieFiles.erase(iter1 + index1); index1--; } else vMovieFiles.erase(iter1 + index1); } start_line_number = print_headline(); init_win_params(&win, start_line_number+2, 0, 0, vMovieFiles.size() + 1); init_win_params(&win2, start_line_number+3+vMovieFiles.size()+3, 0, 0, vSmiFiles.size() + 1); } else { std::vector<std::string>::iterator iter2=vSmiFiles.begin(); if(vSmiFiles.size()!=1){ if(index2 == vSmiFiles.size()-1){ vSmiFiles.erase(iter2 + index2); index2--; } else vSmiFiles.erase(iter2 + index2); } start_line_number = print_headline(); init_win_params(&win, start_line_number+2, 0, 0, vMovieFiles.size() + 1); init_win_params(&win2, start_line_number+3+vMovieFiles.size()+3, 0, 0, vSmiFiles.size() + 1); } break; } case 'e': { delwin(popup_win); break; } } // switch if(ch2 == 'd') break; } //while clear(); int start_line_number = print_headline(); create_box(&win, TRUE,1); create_box2(&win2, TRUE,1); break; } // case d case ' ': //case space for selection to move { create_box(&win, TRUE,2); create_box2(&win2, TRUE,2); wrefresh(stdscr); std::string popup_msg = "down/up/esc?(j/k/e)"; popup_win = create_win(3, popup_msg.length()+3, start_line_number+5,(int)COLS/2-popup_msg.length()/2,popup_msg); wrefresh(popup_win); int ch3; while( (ch3=getch()) != 'e') { switch(ch3) { case 'j': case KEY_DOWN: { swapVector(true); break; } case 'k': case KEY_UP: { swapVector(false); break; } case 'e': { delwin(popup_win); break; } } // end of switch if(ch3 == 'j' || ch3 == 'k' || ch3 == KEY_DOWN || ch3 == KEY_UP) break; } // while clear(); int start_line_number = print_headline(); create_box(&win, TRUE,1); create_box2(&win2, TRUE,1); break; //end of case space } // case space case 'y': { // if counts are mismatched if(vMovieFiles.size() != vSmiFiles.size()) { std::string popup_msg = "Mismatch Error! (e)"; popup_win = create_win(3, popup_msg.length()+3, start_line_number+5,(int)COLS/2-popup_msg.length()/2,popup_msg); wrefresh(popup_win); int ch5; while ( (ch5=getch()) != 'e') { switch(ch5) { case 'e': { delwin(popup_win); break; } } if(ch5 == 'e') break; } clear(); int start_line_number = print_headline(); create_box(&win, TRUE,1); create_box2(&win2, TRUE,1); break; } // end of if statement = counts are mismatched std::string popup_msg = "confirm?(m)ovies (s)ubtitle(m/s/e)"; popup_win = create_win(3, popup_msg.length()+3, start_line_number+5,(int)COLS/2-popup_msg.length()/2,popup_msg); wrefresh(popup_win); int ch4; while( (ch4=getch()) != 'e') { switch(ch4) { case 'm': { int err = renameSmiFiles(); std::cout << "err: " << err << std::endl; break; } case 's': { int err = renameAviFiles(); std::cout << "err: " << err << std::endl; break; } case 'e': { delwin(popup_win); break; } } // end of switch if(ch4 == 'm' || ch4 == 's') break; } // while // rename it then files reloading // load local files. loadFiles("."); // sorting std::sort(vMovieFiles.begin(), vMovieFiles.end(), sortOp); std::sort(vSmiFiles.begin(), vSmiFiles.end(), sortOp); clear(); init_win_params(&win, start_line_number+2, 0, 0, vMovieFiles.size() + 1); init_win_params(&win2, start_line_number+3+vMovieFiles.size()+3, 0, 0, vSmiFiles.size() + 1); int start_line_number = print_headline(); create_box(&win, TRUE,1); create_box2(&win2, TRUE,1); break; // end of case y } // case y } // switch } // while } else { endwin(); std::cout << "You don't have No relative files... Bye..." << std::endl; return 1; } // delete ncurses window endwin(); return 0; } //end of main
/** * Get list of supported cameras, walk through it and create some output. */ int main (int argc, char *argv[]) { CameraAbilitiesList *al; int i; int count; const char *fmt_str = NULL; parse_command_line (argc, argv); if (do_debug) { gettimeofday (&glob_tv_zero, NULL); CHECK (gp_log_add_func (GP_LOG_ALL, debug_func, NULL)); gp_log (GP_LOG_DEBUG, "main", "test-camera-list start"); } CHECK (gp_abilities_list_new (&al)); CHECK (gp_abilities_list_load (al, NULL)); count = gp_abilities_list_count (al); if (count < 0) { printf("gp_abilities_list_count error: %d\n", count); return(1); } else if (count == 0) { /* Copied from gphoto2-abilities-list.c gp_abilities_list_load() */ const char *camlib_env = getenv(CAMLIBDIR_ENV); const char *camlibs = (camlib_env != NULL)?camlib_env:CAMLIBS; printf("no camera drivers (camlibs) found in camlib dir:\n" " CAMLIBS='%s', default='%s', used=%s\n", camlib_env?camlib_env:"(null)", CAMLIBS, (camlib_env!=NULL)?"CAMLIBS":"default"); return(1); } /* Set output format for file body, * and print opening part of output file. */ switch (format) { case FMT_CSV: fmt_str = "%d,%s,%s,%s\n"; break; case FMT_FLAT_TEXT: fmt_str = "%3d|%-20s|%-20s|%s\n"; break; case FMT_HEADED_TEXT: fmt_str = "%3d|%-20s|%-20s|%s\n"; break; case FMT_XML: fmt_str = " <camera name=\"%4$s\" entry_number=\"%1$d\">\n" " <camlib-name value=\"%2$s\"/>\n" " <driver-name value=\"%3$s\"/>\n" " </camera>\n"; printf("<?xml version=\"%s\" encoding=\"%s\"?>\n" "<camera-list camera-count=\"%d\">\n", "1.0", "us-ascii", count); break; case FMT_FLAT_CAMLIBS: fmt_str = "%2$-28s %3$s\n"; break; case FMT_COUNT: printf("%d\n", count); return(0); break; } /* For each camera in the list, add a text snippet to the * output file. */ for (i = 0; i < count; i++) { CameraAbilities abilities; const char *camlib_basename; CHECK (gp_abilities_list_get_abilities (al, i, &abilities)); camlib_basename = path_basename(abilities.library); switch (format) { case FMT_HEADED_TEXT: if ( ((i%25)== 0) && ( (i==0) || ((count-i) > 5) ) ) { print_hline(); print_headline(); print_hline(); } break; case FMT_FLAT_CAMLIBS: break; case FMT_XML: break; case FMT_CSV: break; case FMT_FLAT_TEXT: break; case FMT_COUNT: break; } printf(fmt_str, i+1, camlib_basename, abilities.id, abilities.model); } /* Print closing part of output file. */ switch (format) { case FMT_HEADED_TEXT: print_hline(); print_headline(); print_hline(); break; case FMT_FLAT_CAMLIBS: break; case FMT_XML: printf("</camera-list>\n"); break; case FMT_CSV: break; case FMT_FLAT_TEXT: break; case FMT_COUNT: break; } CHECK (gp_abilities_list_free (al)); return (0); }