Skip to main content

App

Struct App 

Source
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: PresetPickerState

State 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: u8

Implementations§

Source§

impl App

Source

pub fn new() -> Self

Source

pub fn load_file(&mut self, path: String)

Source

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

Source

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.

Source

pub fn poll_drop_import(&mut self)

Poll for async drag-drop import results. Call every frame.

Source

pub fn load_all_in_folder(&mut self, dir: &Path)

Source

pub fn focused_file_info(&self) -> Option<&McrawFileInfo>

Source

pub fn toggle_media_pool_selection(&mut self)

Source

pub fn add_selected_to_queue(&mut self)

Source

pub fn add_all_to_queue(&mut self)

Source

pub fn remove_from_media_pool(&mut self)

Source

pub fn toggle_queue_selection(&mut self)

Source

pub fn remove_from_queue(&mut self)

Source

pub fn clear_completed_queue(&mut self)

Source

pub fn render_selected(&mut self)

Source

pub fn render_all(&mut self)

Source

pub fn active_profile_is_8bit(&self) -> bool

Source

pub fn active_profile_name(&self) -> &'static str

Source

pub fn cycle_rate_control(&mut self)

Source

pub fn cycle_codec(&mut self, forward: bool)

Source

pub fn cycle_profile(&mut self, forward: bool)

Source

pub fn start_export(&mut self)

Source

pub fn remove_selected_from_media_pool(&mut self)

Source

pub fn set_export_folder(&mut self, folder: PathBuf)

Source

pub fn toggle_favourite_folder(&mut self, folder: PathBuf)

Source

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.

Source

pub fn apply_preset(&mut self, index: usize)

Apply the preset at the given index, copying every field onto the app’s live state.

Source

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.

Source

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.

Source

pub fn close_preset_picker(&mut self)

Source

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.

Source

pub fn cancel_naming_preset(&mut self)

Source

pub fn commit_naming_preset(&mut self)

Finalize naming: save the preset and exit the naming state.

Source

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

Source

pub fn import_selected_from_browser(&mut self)

Source

pub fn cancel_export(&mut self)

Source

pub fn poll_export(&mut self)

Source

pub fn add_encode_job(&mut self, format: OutputFormat)

Source

pub fn select_file(&mut self)

Source

pub fn scan_mcraw_files_in_folder(&self, folder: &str) -> Vec<String>

Scan a folder for all .mcraw files and return sorted paths

Source

pub fn navigate_browser(&mut self, direction: BrowserDirection)

Source

pub fn navigate_favourites(&mut self, delta: i64)

Move the favourites-list cursor by delta. Clamps to bounds.

Source

pub fn open_selected_favourite(&mut self)

Navigate into the favourite at the current cursor position.

Source

pub fn delete_selected_favourite(&mut self)

Delete the favourite at the current cursor position.

Source

pub fn cycle_focus(&mut self)

Source

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> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> Downcast<T> for T

Source§

fn downcast(&self) -> &T

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts 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
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> Upcast<T> for T

Source§

fn upcast(&self) -> Option<&T>

Source§

impl<T> WasmNotSend for T
where T: Send,

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more