Files

1.6 KiB

Helpers — index

Cross-cutting utilities. See schema.md for the memory-map conventions.

File Purpose
ViewModelBase.cs INotifyPropertyChanged + SetProperty<T>() — base for all ViewModels
RelayCommand.cs ICommand implementation for all button actions
AppLog.cs File logger to %APPDATA%\ytLlive\startup.log; startup checkpoints + unhandled-exception capture (the crash this map is named for)
FocusPreservingListBox.cs ListBox subclass that keeps selection/focus coherent when the selected item is deleted; IsSelectable predicate skips hidden scenes; drag-reorder guard
OAuthCredentials.cs Baked-in Google OAuth client ID/secret (desktop app; loopback callback)
TokenStore.cs DPAPI-protected OAuth session persistence (%APPDATA%\ytLlive\ytLlive.auth, CurrentUser scope); Save/Load/Clear — sign-in survives restarts
ImageCache.cs Image byte caching (assets live in the DB)
InverseBoolToVisibilityConverter.cs / NotNullToVisibilityConverter.cs XAML value converters for visibility bindings
CameraConflictProbe.cs Best-effort diagnostic: when a camera won't start, enumerates running processes known to hold cameras (OBS, Zoom, Teams, NVIDIA Broadcast, browsers, etc.) — Windows doesn't expose "which process has this device" via any public API, so this is a suspect list, not a verdict

Related: Themes/Controls.xaml styles the lists this class backs; Models/index.md and ViewModels/index.md for the objects it works on.