Files
ytLlive/Models/index.md
T

1.9 KiB

Models — index

Plain data types. No logic beyond what a property can carry. See schema.md for the memory-map conventions.

File Purpose
Scene.cs A scene: Name, IsHidden, IsChatScene, IsEditing, Elements collection (images + webcam config), WebcamConfig accessor
Source.cs An image source: SourceType enum (Image/Screen/Background/Text — Webcam removed), X/Y/Width/Height, Opacity, IsEnabled, ImageSource (static) / VideoImageSource (live frames), DisplaySource, ClipShape enum (Traditional/Round), IsMirrored + MirrorScale, MirrorButtonText/ShapeButtonText, asset identity, IsImageSource (XAML binds this, never Type)
SceneElement.cs Base for anything placeable in a scene: shared layout/clip/mirror/border surface, virtual IsWebcam/virtual IsImageSource; ToggleClipShape + persisted RectWidth/RectHeight (pre-Round rect so round→rect restores after reload)
Webcam.cs Singleton webcam identity: Id, DeviceId, Name (one row app-wide)
WebcamSceneConfig.cs Per-scene webcam placement (subclass of SceneElement): geometry + IsVisible + border (BorderColor/BorderOpacity/BorderWidth/BorderAnimation) + VideoImageSource; WebcamId links to Webcam
QualityOption.cs Resolution tier record (Display, Fps, Bitrate, Width, Height); Label formats as 1080p60 (8Mbps) — drives the bottom-bar dropdown and the output-rect math
StreamConfig.cs StreamConfig (note: TargetBitrate/Resolution defaults are stale — not yet wired to the dropdown), StreamHealth (bitrate/FPS/dropped/duration), StreamStatus enum
YouTube.cs YouTubeChannel and ChatMessage (chat feed)

Related: ViewModels/index.md consume these; Services/LayoutStore.cs persists Scene/Source.