Esempio n. 1
0
    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)
Esempio n. 2
0
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()
Esempio n. 3
0
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()
Esempio n. 4
0
    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))
Esempio n. 6
0
    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)
Esempio n. 7
0
 def filename_for_display(self):
     """
     Returns the filename in a suitable for display form.
     """
     return gobject.filename_display_name(unquote_filename(self.filename))