//get arguments void get_arguments(int argc, char **argv) { //options if(argc>1) { FILE *f = fopen(argv[1],"rb"); if(!f) fn_alert("Erreur, le programme ne peux ouvrir le fichier:\n%s\n(passé en arguments...)",argv[1]); else { fclose(f); //Changer de mode si extention u001 const char *ext = fl_filename_ext(argv[1]); if(strcmp(ext,".u001")==0) I->rassembler->value(1); //change de mode... //mets les attributs (si changés par rassembler->value(1) rassembler_click(0); //ici, le mettre dans le textbox char str[1024]; //convertissement en chemin complet! fl_filename_absolute(str,1023,argv[1]); //update taille fichier seulement si mode division if(I->rassembler->value()==0) update_taille_fichier(str); //mets str dans I->str set_filename(str); } } else rassembler_click(0); }
/** Ensure a project is valid before opening it... */ bool Project::validate ( const char *name ) { bool r = true; char pwd[512]; fl_filename_absolute( pwd, sizeof( pwd ), "." ); if ( chdir( name ) ) { WARNING( "Cannot change to project dir \"%s\"", name ); return false; } if ( ! exists( "info" ) || ! exists( "history" ) || ! exists( "sources" ) ) // ! exists( "options" ) ) { WARNING( "Not a Non-DAW project: \"%s\"", name ); r = false; } chdir( pwd ); return r; }
/** Try to open project /name/. Returns 0 if sucsessful, an error code * otherwise */ int Project::open ( const char *name ) { if ( ! validate( name ) ) return E_INVALID; close(); chdir( name ); if ( ! acquire_lock( &_lockfd, ".lock" ) ) return E_LOCKED; int version; nframes_t rate; char *creation_date; char *created_by; if ( ! read_info( &version, &rate, &creation_date, &created_by ) ) return E_INVALID; if ( strncmp( created_by, "The Non-DAW", strlen( "The Non-DAW" ) ) && strncmp( created_by, "Non-DAW", strlen( "Non-DAW" ) ) && strncmp( created_by, APP_TITLE, strlen( APP_TITLE ) ) && strncmp( created_by, APP_NAME, strlen( APP_NAME ) ) ) return E_INVALID; if ( version > PROJECT_VERSION ) return E_VERSION; if ( version < 2 ) { /* FIXME: Version 1->2 adds Cursor_Sequence and Cursor_Point to default project... */ } /* normally, engine will be NULL after a close or on an initial open, but 'new' will have already created it to get the sample rate. */ if ( ! engine ) make_engine(); { Block_Timer timer( "Replayed journal" ); if ( ! Loggable::open( "history" ) ) return E_INVALID; } /* /\* really a good idea? *\/ */ /* timeline->sample_rate( rate ); */ if ( creation_date ) { strcpy( _created_on, creation_date ); free( creation_date ); } else *_created_on = 0; set_name( name ); *_path = '\0'; fl_filename_absolute( _path, sizeof( _path ), "." ); _is_open = true; tle->load_timeline_settings(); timeline->zoom_fit(); MESSAGE( "Loaded project \"%s\"", name ); return 0; }
FL_EXPORT_C(int,flc_filename_absolute)(char* to,int tolen,const char* from){ return fl_filename_absolute(to,tolen,from); }