Add camera/webcam capture engine with engine-aware display picker
- New CameraEngine using OpenCV VideoCapture for webcam capture - HAS_OWN_DISPLAYS class attribute on CaptureEngine base to distinguish engines with their own device lists from desktop monitor engines - Display picker renders device list for cameras/scrcpy, spatial layout for desktop monitors - Engine-aware display label formatting (camera name vs monitor index) - Stream modal properly loads engine-specific displays on template change, edit, and clone - Camera backend config rendered as dropdown (auto/dshow/msmf/v4l2) - Remove offline label from device cards (healthcheck indicator suffices) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -723,6 +723,36 @@
|
||||
background: rgba(76, 175, 80, 0.12) !important;
|
||||
}
|
||||
|
||||
/* ── Device picker list (cameras, scrcpy) ─────────────────────── */
|
||||
|
||||
.device-picker-list {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 0.5rem;
|
||||
}
|
||||
|
||||
.device-picker-item {
|
||||
position: relative;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 0.75rem;
|
||||
padding: 0.75rem 1rem;
|
||||
border: 2px solid var(--border-color);
|
||||
border-radius: 8px;
|
||||
background: linear-gradient(135deg, rgba(128, 128, 128, 0.08), rgba(128, 128, 128, 0.03));
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.device-picker-item .layout-index-label {
|
||||
position: static;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
.device-picker-item .layout-display-label {
|
||||
text-align: left;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
/* ── Gradient editor ────────────────────────────────────────────── */
|
||||
|
||||
.effect-palette-preview {
|
||||
|
||||
Reference in New Issue
Block a user