def add(self, sound_file): # generate a temporary filename from source name and output suffix output_suffix = self.window.prefs.get_output_suffix() output_filename = sound_file.uri + "%s~SC~" % output_suffix if vfs_exists(output_filename): # always overwrite temporary files vfs_unlink(output_filename) path = urlparse(output_filename)[2] path = unquote_filename(path) c = Converter( sound_file, output_filename, self.window.prefs.get_string("output-mime-type"), self.window.prefs.get_int("delete-original"), self.window.prefs.get_int("output-resample"), self.window.prefs.get_int("resample-rate"), self.window.prefs.get_int("force-mono"), ) c.set_vorbis_quality(self.window.prefs.get_float("vorbis-quality")) c.set_aac_quality(self.window.prefs.get_int("aac-quality")) c.set_opus_quality(self.window.prefs.get_int("opus-bitrate")) c.set_flac_compression(self.window.prefs.get_int("flac-compression")) c.set_wav_sample_width(self.window.prefs.get_int("wav-sample-width")) c.set_audio_profile(self.window.prefs.get_string("audio-profile")) quality = {"cbr": "mp3-cbr-quality", "abr": "mp3-abr-quality", "vbr": "mp3-vbr-quality"} mode = self.window.prefs.get_string("mp3-mode") c.set_mp3_mode(mode) c.set_mp3_quality(self.window.prefs.get_int(quality[mode])) c.init() c.add_listener("finished", self.on_task_finished) self.add_task(c)
def cli_convert_main(input_files): loop = gobject.MainLoop() gobject.threads_init() context = loop.get_context() error.set_error_handler(error.ErrorPrinter()) output_type = settings['cli-output-type'] output_suffix = settings['cli-output-suffix'] generator = TargetNameGenerator() generator.suffix = output_suffix progress = CliProgress() queue = TaskQueue() for input_file in input_files: input_file = SoundFile(input_file) output_name = generator.get_target_name(input_file) c = Converter(input_file, output_name, output_type) c.init() c.start() while c.running: if c.get_duration(): percent = min(100, 100.0 * (c.get_position() / c.get_duration())) percent = '%.1f %%' % percent else: percent = '/-\|'[int(time.time()) % 4] progress.show( '%s: %s' % (unquote_filename(c.sound_file.filename[-65:]), percent)) time.sleep(0.01) context.iteration(True) print previous_filename = None ''' queue.start() #running, progress = queue.get_progress(perfile) while queue.running: t = None #queue.get_current_task() if t and not settings['quiet']: if previous_filename != t.sound_file.get_filename_for_display(): if previous_filename: print _('%s: OK') % previous_filename previous_filename = t.sound_file.get_filename_for_display() percent = 0 if t.get_duration(): percent = '%.1f %%' % ( 100.0* (t.get_position() / t.get_duration() )) else: percent = '/-\|' [int(time.time()) % 4] progress.show('%s: %s' % (t.sound_file.get_filename_for_display()[-65:], percent )) time.sleep(0.10) context.iteration(True) ''' if not settings['quiet']: progress.clear()
def cli_convert_main(input_files): loop = gobject.MainLoop() gobject.threads_init() context = loop.get_context() error.set_error_handler(error.ErrorPrinter()) output_type = settings['cli-output-type'] output_suffix = settings['cli-output-suffix'] generator = TargetNameGenerator() generator.suffix = output_suffix progress = CliProgress() queue = TaskQueue() for input_file in input_files: input_file = SoundFile(input_file) output_name = generator.get_target_name(input_file) c = Converter(input_file, output_name, output_type) c.overwrite = True c.init() c.start() while c.running: if c.get_duration(): percent = min(100, 100.0* (c.get_position() / c.get_duration())) percent = '%.1f %%' % percent else: percent = '/-\|' [int(time.time()) % 4] progress.show('%s: %s' % (unquote_filename(c.sound_file.filename[-65:]), percent )) time.sleep(0.01) context.iteration(True) print previous_filename = None ''' queue.start() #running, progress = queue.get_progress(perfile) while queue.running: t = None #queue.get_current_task() if t and not settings['quiet']: if previous_filename != t.sound_file.get_filename_for_display(): if previous_filename: print _('%s: OK') % previous_filename previous_filename = t.sound_file.get_filename_for_display() percent = 0 if t.get_duration(): percent = '%.1f %%' % ( 100.0* (t.get_position() / t.get_duration() )) else: percent = '/-\|' [int(time.time()) % 4] progress.show('%s: %s' % (t.sound_file.get_filename_for_display()[-65:], percent )) time.sleep(0.10) context.iteration(True) ''' if not settings['quiet']: progress.clear()
def add(self, sound_file): # generate a temporary filename from source name and output suffix output_suffix = self.window.prefs.get_output_suffix() output_filename = sound_file.uri + '%s~SC~' % output_suffix if vfs_exists(output_filename): # always overwrite temporary files vfs_unlink(output_filename) path = urlparse(output_filename)[2] path = unquote_filename(path) c = Converter(sound_file, output_filename, self.window.prefs.get_string('output-mime-type'), self.window.prefs.get_int('delete-original'), self.window.prefs.get_int('output-resample'), self.window.prefs.get_int('resample-rate'), self.window.prefs.get_int('force-mono'), ) c.set_vorbis_quality(self.window.prefs.get_float('vorbis-quality')) c.set_aac_quality(self.window.prefs.get_int('aac-quality')) c.set_opus_quality(self.window.prefs.get_int('opus-bitrate')) c.set_flac_compression(self.window.prefs.get_int('flac-compression')) c.set_wav_sample_width(self.window.prefs.get_int('wav-sample-width')) c.set_audio_profile(self.window.prefs.get_string('audio-profile')) quality = { 'cbr': 'mp3-cbr-quality', 'abr': 'mp3-abr-quality', 'vbr': 'mp3-vbr-quality' } mode = self.window.prefs.get_string('mp3-mode') c.set_mp3_mode(mode) c.set_mp3_quality(self.window.prefs.get_int(quality[mode])) c.init() c.add_listener('finished', self.on_task_finished) self.add_task(c)
def filename_for_display(self): """ Returns the filename in a suitable for display form. """ return gobject.filename_display_name( unquote_filename(self.filename))
def add(self, sound_file): output_filename = self.window.prefs.generate_filename(sound_file) path = urlparse(output_filename) [2] path = unquote_filename(path) exists = True try: gnomevfs.get_file_info(gnomevfs.URI((output_filename))) except gnomevfs.NotFoundError: exists = False except gnomevfs.AccessDeniedError: self.error_count += 1 msg = _('Access denied: \'%s\'' % output_filename) log(msg) show_error(msg, '') raise ConverterQueueError() return except: self.error_count += 1 msg = 'Invalid URI: \'%s\'' % output_filename log(msg) show_error(msg, '') raise ConverterQueueError() return # do not overwrite source file !! if output_filename == sound_file.uri: self.error_count += 1 show_error(_('Cannot overwrite source file(s)!'), '') raise ConverterQueueCanceled() if exists: if self.overwrite_action is not None: result = self.overwrite_action else: dialog = self.window.existsdialog dpath = os.path.basename(path) dpath = gobject.markup_escape_text(dpath) msg = \ _('The output file <i>%s</i>\n exists already.\n '\ 'Do you want to skip the file, overwrite it or'\ ' cancel the conversion?\n') % dpath dialog.message.set_markup(msg) dialog.set_transient_for(self.window.widget) if self.overwrite_action is not None: dialog.apply_to_all.set_active(True) else: dialog.apply_to_all.set_active(False) result = dialog.run() dialog.hide() if dialog.apply_to_all.get_active(): if result == 1 or result == 0: self.overwrite_action = result if result == 1: # overwrite try: vfs_unlink(output_filename) except gnomevfs.NotFoundError: pass elif result == 0: # skip file return else: # cancel operation raise ConverterQueueCanceled() c = Converter(sound_file, output_filename, self.window.prefs.get_string('output-mime-type'), self.window.prefs.get_int('delete-original'), self.window.prefs.get_int('output-resample'), self.window.prefs.get_int('resample-rate'), self.window.prefs.get_int('force-mono'), ) c.set_vorbis_quality(self.window.prefs.get_float('vorbis-quality')) c.set_aac_quality(self.window.prefs.get_int('aac-quality')) c.set_flac_compression(self.window.prefs.get_int('flac-compression')) c.set_wav_sample_width(self.window.prefs.get_int('wav-sample-width')) c.set_audio_profile(self.window.prefs.get_string('audio-profile')) quality = { 'cbr': 'mp3-cbr-quality', 'abr': 'mp3-abr-quality', 'vbr': 'mp3-vbr-quality' } mode = self.window.prefs.get_string('mp3-mode') c.set_mp3_mode(mode) c.set_mp3_quality(self.window.prefs.get_int(quality[mode])) c.init() c.add_listener('finished', self.on_task_finished) self.add_task(c)
def filename_for_display(self): """ Returns the filename in a suitable for display form. """ return gobject.filename_display_name(unquote_filename(self.filename))