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
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)
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)