Пример #1
0
    def select_devices(self):
        """Loads the bins and creates the preview areas for the active profile, creating a new mediapacakge."""
        logger.info("Setting Devices the new way")
        self.mediapackage = mediapackage.Mediapackage()
        self.mediapackage.setTitle("Recording started at " +
                                   datetime.datetime.now().replace(
                                       microsecond=0).isoformat())
        current_profile = self.conf.get_current_profile()
        bins = current_profile.tracks

        for objectbin in bins:
            objectbin['path'] = self.repo.get_attach_path()
        devices = current_profile.get_video_areas()
        areas = self.create_drawing_areas(devices)

        self.error_text = None
        self.error_dialog = None
        if self.error_id:
            logger.info("Error in select devices " + str(self.error_id))
            self.dispatcher.disconnect(self.error_id)
        self.error_id = self.dispatcher.connect("recorder-error",
                                                self.handle_pipeline_error)
        self.audiobar.ClearVumeter()
        self.record = Recorder(bins, areas)
        self.record.mute_preview(not self.focus_is_active)
        return True
Пример #2
0
 def init_recorder(self):
     self.recorder = Recorder(self.bins, self.areas)
     self.recorder.mute_preview(not self.focus_is_active)
     ok = self.recorder.preview()
     if ok:
         if self.mediapackage.manual:
             self.change_state(GC_PREVIEW)
     else:
         if self.restarting:
             logger.error("Restarting Preview Failed")
         self.change_state(GC_ERROR)
         if self.scheduled_recording:
             self.on_failed_scheduled(self.current_mediapackage)
Пример #3
0
    def init_recorder(self):
        if self.error_dialog:
            self.error_dialog.dialog_destroy()
            self.error_dialog = None
            self.error_text = None
        self.audiobar.ClearVumeter()
        context.get_state().is_error = False

        current_profile = self.conf.get_current_profile()
        bins = current_profile.tracks
        for objectbin in bins:
            objectbin['path'] = self.repo.get_rectemp_path()

        self.recorder = Recorder(bins) 
        self.recorder.mute_preview(not self.focus_is_active)   
        info = self.recorder.get_display_areas_info()
        if self.swap: 
            info.reverse()
        areas = self.create_drawing_areas(info)
        self.recorder.set_drawing_areas(areas)

        if self.start_recording:
            self.start_recording = False
            ok = self.recorder.preview_and_record()
            self.mediapackage = self.repo.get(self.current_mediapackage)
            # NOTE only call on_rec to update UI. Recorder is already recording.
            self.on_rec()
        else:
            ok = self.recorder.preview()
        if ok :
            if self.mediapackage.manual:
                self.change_state(GC_PREVIEW)
        else:
            logger.error("Restarting Preview Failed")
            context.get_state().is_error = True
            self.change_state(GC_ERROR)
            if self.scheduled_recording:
                self.on_failed_scheduled(self.current_mediapackage)