1.9 KiB
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.