pub struct App {Show 73 fields
pub running: bool,
pub screen: Screen,
pub file_path: Option<String>,
pub file_info: Option<McrawFileInfo>,
pub frame_index: usize,
pub frame_count: usize,
pub encode_jobs: Vec<EncodeJob>,
pub status_message: String,
pub show_help: bool,
pub error: Option<String>,
pub browser: FileBrowser,
pub is_exporting: bool,
pub export_cancelled: bool,
pub export_progress: f64,
pub export_rx: Option<Receiver<ExportEvent>>,
pub cancel_token: Option<Arc<AtomicBool>>,
pub last_export_summary: Option<ExportSummary>,
pub pending_export_summary: Option<ExportSummary>,
pub current_rendering_index: Option<usize>,
pub export_folder: Option<PathBuf>,
pub favourite_folders: Vec<PathBuf>,
pub help_scroll: u16,
pub show_culling: bool,
pub show_grade_screen: bool,
pub export_color_space: ColorSpace,
pub export_transfer_function: TransferFunction,
pub export_codec_family: CodecFamily,
pub export_focus: ExportFocus,
pub export_start_time: Option<Instant>,
pub prores_profile: ProResProfile,
pub dnxhr_profile: DnxhrProfile,
pub hevc_profile: HevcProfile,
pub h264_profile: H264Profile,
pub av1_profile: Av1Profile,
pub vp9_profile: Vp9Profile,
pub hardware_caps: HardwareCaps,
pub active_rate_control: RateControl,
pub is_editing_custom_rate: bool,
pub grade_sliders: GradeSliders,
pub grade_focus: usize,
pub grade_dragging: Option<(usize, u16, u16)>,
pub imported_files: Vec<ImportedFile>,
pub media_pool_index: usize,
pub queue: Vec<QueuedFile>,
pub queue_index: usize,
pub show_browser: bool,
pub import_popup: ImportPopupState,
pub focus_target: FocusTarget,
pub show_full_info: bool,
pub last_browser_click: Option<(Instant, usize)>,
pub last_grade_click: Option<(Instant, usize)>,
pub drop_highlight: Option<Instant>,
pub drop_import_rx: Option<Receiver<DropImportEvent>>,
pub drop_import_cancel: Option<Arc<AtomicBool>>,
pub drop_preview: Option<DropPreview>,
pub browser_scroll_offset: Cell<usize>,
pub show_favourites_bar: bool,
pub browsing_favourites: bool,
pub favourites_scroll_offset: Cell<usize>,
pub last_clicked_favourite: Option<(Instant, usize)>,
pub presets: Vec<ExportPreset>,
pub active_preset: Option<String>,
pub preset_picker: PresetPickerState,
pub preset_naming: Option<PresetNamingState>,
pub spinner_frame: u8,
pub progress_anim_offset: u8,
pub fps_counter: FPSCounter,
pub shockwave_ticks_remaining: u8,
pub grade_strip_active: bool,
pub grade_morph: Option<(usize, u8)>,
pub phosphor_trail: Vec<(f32, u8)>,
pub grade_before_snapshot: Option<GradeSliders>,
pub grade_strip_idle_ticks: u8,
}Fields§
§running: bool§screen: Screen§file_path: Option<String>§file_info: Option<McrawFileInfo>§frame_index: usize§frame_count: usize§encode_jobs: Vec<EncodeJob>§status_message: String§show_help: bool§error: Option<String>§browser: FileBrowser§is_exporting: bool§export_cancelled: bool§export_progress: f64§export_rx: Option<Receiver<ExportEvent>>§cancel_token: Option<Arc<AtomicBool>>§last_export_summary: Option<ExportSummary>Snapshot of the most-recent finished export — drives the post-render summary panel. Cleared when the user starts a new export.
pending_export_summary: Option<ExportSummary>Settings captured at start_export time so poll_export can build
an accurate ExportSummary even if the user has since cycled the
export-settings panel to different values.
current_rendering_index: Option<usize>§export_folder: Option<PathBuf>§favourite_folders: Vec<PathBuf>§help_scroll: u16§show_culling: bool§show_grade_screen: bool§export_color_space: ColorSpace§export_transfer_function: TransferFunction§export_codec_family: CodecFamily§export_focus: ExportFocus§export_start_time: Option<Instant>§prores_profile: ProResProfile§dnxhr_profile: DnxhrProfile§hevc_profile: HevcProfile§h264_profile: H264Profile§av1_profile: Av1Profile§vp9_profile: Vp9Profile§hardware_caps: HardwareCaps§active_rate_control: RateControl§is_editing_custom_rate: bool§grade_sliders: GradeSliders§grade_focus: usize§grade_dragging: Option<(usize, u16, u16)>Active mouse drag on a grade slider: (slider_index, track_x, track_width)
imported_files: Vec<ImportedFile>§media_pool_index: usize§queue: Vec<QueuedFile>§queue_index: usize§show_browser: bool§import_popup: ImportPopupState§focus_target: FocusTarget§show_full_info: bool§last_browser_click: Option<(Instant, usize)>§last_grade_click: Option<(Instant, usize)>§drop_highlight: Option<Instant>§drop_import_rx: Option<Receiver<DropImportEvent>>§drop_import_cancel: Option<Arc<AtomicBool>>§drop_preview: Option<DropPreview>§browser_scroll_offset: Cell<usize>§show_favourites_bar: bool§browsing_favourites: bool§favourites_scroll_offset: Cell<usize>§last_clicked_favourite: Option<(Instant, usize)>§presets: Vec<ExportPreset>User-saved export setting bundles. Loaded from
presets.json at startup, written back on every change.
active_preset: Option<String>Name of the preset that was last applied, if any. Shown in the Export Settings panel header so the user can see why the current settings look the way they do.
preset_picker: PresetPickerStateState of the preset-picker overlay.
preset_naming: Option<PresetNamingState>True while the user is typing a name for a new preset. Captures the live text and the cursor position. Esc cancels, Enter saves.
spinner_frame: u8§progress_anim_offset: u8§fps_counter: FPSCounter§shockwave_ticks_remaining: u8§grade_strip_active: bool§grade_morph: Option<(usize, u8)>§phosphor_trail: Vec<(f32, u8)>§grade_before_snapshot: Option<GradeSliders>§grade_strip_idle_ticks: u8Implementations§
Source§impl App
impl App
pub fn new() -> Self
pub fn load_file(&mut self, path: String)
Sourcepub fn load_files_batch(&mut self, paths: &[String]) -> (usize, usize)
pub fn load_files_batch(&mut self, paths: &[String]) -> (usize, usize)
Add multiple files to the media pool (used by drag-drop). Returns (imported_count, failed_count).
Sourcepub fn start_async_import(&mut self, paths: Vec<String>)
pub fn start_async_import(&mut self, paths: Vec<String>)
Start async import of dropped files on a background thread. Returns immediately; results arrive via DropImportEvent channel.
Sourcepub fn poll_drop_import(&mut self)
pub fn poll_drop_import(&mut self)
Poll for async drag-drop import results. Call every frame.
pub fn load_all_in_folder(&mut self, dir: &Path)
pub fn focused_file_info(&self) -> Option<&McrawFileInfo>
pub fn toggle_media_pool_selection(&mut self)
pub fn add_selected_to_queue(&mut self)
pub fn add_all_to_queue(&mut self)
pub fn remove_from_media_pool(&mut self)
pub fn toggle_queue_selection(&mut self)
pub fn remove_from_queue(&mut self)
pub fn clear_completed_queue(&mut self)
pub fn render_selected(&mut self)
pub fn render_all(&mut self)
pub fn active_profile_is_8bit(&self) -> bool
pub fn active_profile_name(&self) -> &'static str
pub fn cycle_rate_control(&mut self)
pub fn cycle_codec(&mut self, forward: bool)
pub fn cycle_profile(&mut self, forward: bool)
pub fn start_export(&mut self)
pub fn remove_selected_from_media_pool(&mut self)
pub fn set_export_folder(&mut self, folder: PathBuf)
pub fn toggle_favourite_folder(&mut self, folder: PathBuf)
Sourcepub fn save_current_as_preset(&mut self, name: String)
pub fn save_current_as_preset(&mut self, name: String)
Snapshot the current export settings as a named preset and persist the full preset list to disk. If a preset with the same name already exists it is replaced in place.
Sourcepub fn apply_preset(&mut self, index: usize)
pub fn apply_preset(&mut self, index: usize)
Apply the preset at the given index, copying every field onto the app’s live state.
Sourcepub fn delete_preset(&mut self, index: usize)
pub fn delete_preset(&mut self, index: usize)
Delete the preset at the given index. If that preset was the active one, clear the active marker.
Sourcepub fn open_preset_picker(&mut self)
pub fn open_preset_picker(&mut self)
Open the preset picker overlay. If there are no presets, surface a hint in the status bar instead of opening an empty list.
pub fn close_preset_picker(&mut self)
Sourcepub fn begin_naming_preset(&mut self)
pub fn begin_naming_preset(&mut self)
Enter the in-line naming mode for a new preset. The user types the name and presses Enter to save.
pub fn cancel_naming_preset(&mut self)
Sourcepub fn commit_naming_preset(&mut self)
pub fn commit_naming_preset(&mut self)
Finalize naming: save the preset and exit the naming state.
Sourcepub fn current_matches_preset(&self, name: &str) -> bool
pub fn current_matches_preset(&self, name: &str) -> bool
True if the current settings exactly match the named preset (best effort: only checked for the fields we know about).
pub fn import_selected_from_browser(&mut self)
pub fn cancel_export(&mut self)
pub fn poll_export(&mut self)
pub fn add_encode_job(&mut self, format: OutputFormat)
pub fn select_file(&mut self)
Sourcepub fn scan_mcraw_files_in_folder(&self, folder: &str) -> Vec<String>
pub fn scan_mcraw_files_in_folder(&self, folder: &str) -> Vec<String>
Scan a folder for all .mcraw files and return sorted paths
Move the favourites-list cursor by delta. Clamps to bounds.
Sourcepub fn open_selected_favourite(&mut self)
pub fn open_selected_favourite(&mut self)
Navigate into the favourite at the current cursor position.
Sourcepub fn delete_selected_favourite(&mut self)
pub fn delete_selected_favourite(&mut self)
Delete the favourite at the current cursor position.
pub fn cycle_focus(&mut self)
pub fn set_focus(&mut self, target: FocusTarget)
Auto Trait Implementations§
impl !Freeze for App
impl !RefUnwindSafe for App
impl !Sync for App
impl Send for App
impl Unpin for App
impl UnsafeUnpin for App
impl UnwindSafe for App
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more