def scan_files_list(input_file, options, out_dir): success = False r = 0 if out_dir == None: out_dir = tempfile.gettempdir() else: out_dir = os.path.abspath(out_dir) a = time.time() if input_file == None: input_file = '-' files_list = [] for line in fileinput.input(input_file): files_list.append(os.path.abspath(line.rstrip())) dr = DynamicRangeMeter() dr.write_to_local_db(db_is_enabled()) r = dr.scan_mp(files_list=files_list, thread_cnt=get_thread_cnt()) if r == 0: success = False else: write_results(dr, options, out_dir, "") success = True clock = time.time() - a return (success, clock, r)
def scan_dir_list(subdirlist, options, out_dir): a = time.time() success = False for cur_dir in subdirlist: dr = DynamicRangeMeter() dr.write_to_local_db(db_is_enabled()) print_msg( "\n------------------------------------------------------------ ") print_msg("> Scan Dir: %s \n" % cur_dir) cpu = multiprocessing.cpu_count() if (options.disable_multithread == True): r = dr.scan_dir(cur_dir) else: cpu = get_thread_cnt() r = dr.scan_mp(cur_dir, cpu) if r == 0: continue else: success = True write_results(dr, options, out_dir, cur_dir) clock = time.time() - a return (success, clock, r)
def main(): options = parse_args() if options.version: print_msg(dr14_version()) return init_log(logging.DEBUG) logging.disable(logging.INFO) numpy.seterr(all='ignore') #print( options ) if options.enable_database: enable_database() return if options.disable_database: enable_db(False) print_msg("The local DR database is disabled! ") return if options.dump_database: db = dr_database_singletone().get() db.dump() return if db_is_enabled(): db = dr_database_singletone().get() f = db.is_db_valid() if not f: print_err("It seems that there is some problem with the db ... ") fix_problematic_database() return if options.query != None: if not database_exists(): print_err("Error: The database does not exists") print_err("Error: type dr14_tmeter -q for more info.") return if len(options.query) == 0: query_helper() return if options.query[0] not in [ "help", "top", "top_alb", "worst", "worst_alb", "top_art", "hist", "evol", "codec" ]: print_err("Error: -q invalid parameter .") print_err("Error: type dr14_tmeter -q for more info.") return table_code = database_exec_query(options) if table_code is not None: print_out(table_code) return if options.path_name != None: path_name = os.path.abspath(options.path_name) else: path_name = os.path.abspath('.') if not (os.path.exists(path_name)): print_msg("Error: The input directory \"%s\" does not exists!" % path_name) return if options.out_dir and not (os.path.exists(options.out_dir)): print_msg( "Error (-o): The target directory \"%s\" does not exists! " % options.out_dir) return if options.quiet: set_quiet_msg() if not options.quiet and not options.skip_version_check: l_ver = TestVer() l_ver.start() print_msg(path_name) print_msg("") if options.recursive: subdirlist = list_rec_dirs(path_name) else: subdirlist = [] subdirlist.append(path_name) if run_analysis_opt(options, path_name): return 1 if options.scan_file: dr = DynamicRangeMeter() dr.write_to_local_db(db_is_enabled()) r = dr.scan_file(path_name) if r == 1: print_out("") print_out(dr.res_list[0]['file_name'] + " :") print_out("DR = %d" % dr.res_list[0]['dr14']) print_out("Peak dB = %.2f" % dr.res_list[0]['dB_peak']) print_out("Rms dB = %.2f" % dr.res_list[0]['dB_rms']) return 1 else: print_msg("Error: invalid audio file") return 0 if options.out_dir == "": out_dir = None else: out_dir = options.out_dir if options.append and out_dir == None: out_dir = path_name if options.files_list: (success, clock, r) = scan_files_list(options.path_name, options, out_dir) else: (success, clock, r) = scan_dir_list(subdirlist, options, out_dir) if success: print_msg("Success! ") print_msg("Elapsed time: %2.2f sec" % clock) else: print_msg("No audio files found\n") print_msg( " Usage: %s [options] path_name \n\nfor more details type \n%s --help\n" % (get_exe_name(), get_exe_name())) if sys.platform.startswith('linux') or sys.platform.startswith('darwin'): subprocess.call("stty sane", shell=True) if test_new_version(): print_msg( "\n----------------------------------------------------------------------" ) print_msg( " A new version of dr14_t.meter [ %s ] is available for download" " \n please visit: %s" % (get_new_version(), get_home_url())) print_msg( "----------------------------------------------------------------------\n" ) if not database_exists(): print_msg(" ") print_msg(" News ... News ... News ... News ... News !!! ") print_msg( " With the version 2.0.0 there is the possibility to store all results in a database" ) print_msg(" If you want to enable this database execute the command:") print_msg(" > %s --enable_database " % get_exe_name()) print_msg("") print_msg( " for more details visit: http://dr14tmeter.sourceforge.net/index.php/DR_Database " ) return r