webatem 2.0.0__tar.gz → 2.0.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {webatem-2.0.0 → webatem-2.0.2}/PKG-INFO +8 -1
- {webatem-2.0.0 → webatem-2.0.2}/README.md +7 -0
- {webatem-2.0.0 → webatem-2.0.2}/atem_control/media_pool/watcher.py +3 -1
- {webatem-2.0.0 → webatem-2.0.2}/atem_control/static/css/atem_control.css +0 -83
- {webatem-2.0.0 → webatem-2.0.2}/atem_control/static/js/atem_control.js +0 -7
- {webatem-2.0.0 → webatem-2.0.2}/pyproject.toml +1 -1
- {webatem-2.0.0 → webatem-2.0.2}/webatem.egg-info/PKG-INFO +8 -1
- {webatem-2.0.0 → webatem-2.0.2}/LICENSE +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/atem_control/__init__.py +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/atem_control/activity.py +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/atem_control/apps.py +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/atem_control/control/__init__.py +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/atem_control/control/activity.py +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/atem_control/control/commands.py +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/atem_control/control/consumer.py +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/atem_control/control/device_api.py +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/atem_control/control/logging.py +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/atem_control/control/views.py +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/atem_control/discovery.py +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/atem_control/hooks.py +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/atem_control/hyperdeck/__init__.py +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/atem_control/hyperdeck/connection.py +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/atem_control/hyperdeck/views.py +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/atem_control/ip_upload_lock.py +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/atem_control/media_pool/__init__.py +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/atem_control/media_pool/broadcast.py +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/atem_control/media_pool/views.py +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/atem_control/migrations/0001_initial.py +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/atem_control/migrations/0002_legacy_log.py +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/atem_control/migrations/__init__.py +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/atem_control/models.py +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/atem_control/netutil.py +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/atem_control/profile/__init__.py +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/atem_control/profile/dialog.py +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/atem_control/profile/export.py +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/atem_control/profile/views.py +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/atem_control/routing.py +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/atem_control/sightings.py +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/atem_control/static/brand/apple-touch-icon.png +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/atem_control/static/brand/brand.css +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/atem_control/static/brand/favicon-32.png +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/atem_control/static/brand/favicon.ico +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/atem_control/static/brand/fonts/Archivo-400-latin-ext.woff2 +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/atem_control/static/brand/fonts/Archivo-400-latin.woff2 +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/atem_control/static/brand/fonts/Archivo-500-latin-ext.woff2 +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/atem_control/static/brand/fonts/Archivo-500-latin.woff2 +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/atem_control/static/brand/fonts/Archivo-600-latin-ext.woff2 +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/atem_control/static/brand/fonts/Archivo-600-latin.woff2 +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/atem_control/static/brand/fonts/Archivo-800-latin-ext.woff2 +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/atem_control/static/brand/fonts/Archivo-800-latin.woff2 +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/atem_control/static/brand/fonts/IBMPlexMono-400-latin-ext.woff2 +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/atem_control/static/brand/fonts/IBMPlexMono-400-latin.woff2 +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/atem_control/static/brand/fonts/IBMPlexMono-500-latin-ext.woff2 +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/atem_control/static/brand/fonts/IBMPlexMono-500-latin.woff2 +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/atem_control/static/brand/fonts/IBMPlexMono-600-latin-ext.woff2 +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/atem_control/static/brand/fonts/IBMPlexMono-600-latin.woff2 +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/atem_control/static/brand/fonts/OFL-Archivo.txt +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/atem_control/static/brand/fonts/OFL-IBMPlexMono.txt +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/atem_control/static/brand/icon-192.png +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/atem_control/static/brand/icon-512.png +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/atem_control/static/brand/icon-maskable-512.png +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/atem_control/static/brand/manifest.webmanifest +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/atem_control/static/brand/mark.svg +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/atem_control/static/brand/tray/linux-24.png +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/atem_control/static/brand/tray/mac-22.png +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/atem_control/static/brand/tray/mac-44.png +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/atem_control/static/brand/tray/win-16.png +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/atem_control/static/brand/tray/win-32.png +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/atem_control/static/css/atem_connect.css +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/atem_control/static/icon.png +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/atem_control/static/js/atem_connect.js +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/atem_control/static/js/atem_control_page.js +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/atem_control/static/js/atem_discovery.js +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/atem_control/static/js/atem_hyperdeck.js +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/atem_control/static/js/atem_profile.js +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/atem_control/static/js/atem_realtime_slider.js +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/atem_control/static/js/custom-scrollbar.js +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/atem_control/static/js/recent_label.js +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/atem_control/static/js/wa-select.js +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/atem_control/static/vendor/README.md +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/atem_control/static/vendor/alpine.min.js +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/atem_control/static/vendor/alpinejs-collapse-3.14.3.min.js +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/atem_control/static/vendor/bootstrap-icons/bootstrap-icons.min.css +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/atem_control/static/vendor/bootstrap-icons/fonts/bootstrap-icons.woff +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/atem_control/static/vendor/bootstrap-icons/fonts/bootstrap-icons.woff2 +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/atem_control/static/vendor/webatem.css +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/atem_control/storage.py +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/atem_control/tally.py +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/atem_control/templates/connect.html +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/atem_control/templates/control/_atem_info.html +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/atem_control/templates/control/_fade_to_black.html +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/atem_control/templates/control/_fairlight.html +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/atem_control/templates/control/_header.html +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/atem_control/templates/control/_hyperdeck_panel.html +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/atem_control/templates/control/_macros.html +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/atem_control/templates/control/_media_pool.html +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/atem_control/templates/control/_profile_modal.html +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/atem_control/templates/control/_settings_dsk.html +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/atem_control/templates/control/_settings_transition.html +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/atem_control/templates/control/_settings_usk.html +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/atem_control/templates/control/_slider.html +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/atem_control/templates/control/_transition_controls.html +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/atem_control/templates/control/_transition_style.html +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/atem_control/templates/control/_usk_fly.html +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/atem_control/templates/control/_usk_keyframe.html +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/atem_control/templates/control/_usk_mask.html +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/atem_control/templates/control/_usk_slider.html +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/atem_control/templates/control.html +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/atem_control/templatetags/__init__.py +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/atem_control/templatetags/static_v.py +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/atem_control/uploader.py +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/atem_control/urls.py +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/setup.cfg +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/webatem/__init__.py +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/webatem/__main__.py +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/webatem/applog.py +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/webatem/asgi.py +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/webatem/context.py +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/webatem/launcher.py +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/webatem/server.py +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/webatem/settings.py +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/webatem/templates/base.html +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/webatem/templates/brand/_mark.svg +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/webatem/templates/launcher.html +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/webatem/uninstall.py +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/webatem/updates.py +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/webatem/urls.py +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/webatem/views.py +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/webatem/websocket.py +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/webatem.egg-info/SOURCES.txt +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/webatem.egg-info/dependency_links.txt +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/webatem.egg-info/entry_points.txt +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/webatem.egg-info/requires.txt +0 -0
- {webatem-2.0.0 → webatem-2.0.2}/webatem.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: webatem
|
|
3
|
-
Version: 2.0.
|
|
3
|
+
Version: 2.0.2
|
|
4
4
|
Summary: Browser-based control for Blackmagic ATEM switchers: run it, open the browser, your switchers are there
|
|
5
5
|
Author: Lucas Romanenko
|
|
6
6
|
License: MIT
|
|
@@ -115,6 +115,13 @@ behind each strip:
|
|
|
115
115
|
<p align="center">
|
|
116
116
|
<img src="docs/screenshot-audio.png" alt="WebATEM Fairlight audio mixer: 14 strips with input, EQ, dynamics, faders, pan and meters" width="900">
|
|
117
117
|
</p>
|
|
118
|
+
|
|
119
|
+
The **media pool**: live thumbnails of every still slot and what each media
|
|
120
|
+
player is holding, with drag-and-drop upload straight onto a slot:
|
|
121
|
+
|
|
122
|
+
<p align="center">
|
|
123
|
+
<img src="docs/screenshot-media-pool.png" alt="WebATEM media pool: two media players, MP1 on air with colour bars, and twenty still slots, five holding stills (bars, a lower third, a Starting soon card, a logo bug, a Back in five card)" width="900">
|
|
124
|
+
</p>
|
|
118
125
|
---
|
|
119
126
|
|
|
120
127
|
## Which switchers has it run on?
|
|
@@ -85,6 +85,13 @@ behind each strip:
|
|
|
85
85
|
<p align="center">
|
|
86
86
|
<img src="docs/screenshot-audio.png" alt="WebATEM Fairlight audio mixer: 14 strips with input, EQ, dynamics, faders, pan and meters" width="900">
|
|
87
87
|
</p>
|
|
88
|
+
|
|
89
|
+
The **media pool**: live thumbnails of every still slot and what each media
|
|
90
|
+
player is holding, with drag-and-drop upload straight onto a slot:
|
|
91
|
+
|
|
92
|
+
<p align="center">
|
|
93
|
+
<img src="docs/screenshot-media-pool.png" alt="WebATEM media pool: two media players, MP1 on air with colour bars, and twenty still slots, five holding stills (bars, a lower third, a Starting soon card, a logo bug, a Back in five card)" width="900">
|
|
94
|
+
</p>
|
|
88
95
|
---
|
|
89
96
|
|
|
90
97
|
## Which switchers has it run on?
|
|
@@ -1099,7 +1099,9 @@ class MediaPoolWatcher:
|
|
|
1099
1099
|
raw_ycbcr = None
|
|
1100
1100
|
failure: Optional[str] = None
|
|
1101
1101
|
download_started = time.monotonic()
|
|
1102
|
-
|
|
1102
|
+
# is_ready (bmdwire >= 1.3) is also False through a transport
|
|
1103
|
+
# re-handshake, when is_connected stays True over an empty state.
|
|
1104
|
+
if conn is None or not getattr(conn, 'is_ready', conn.is_connected):
|
|
1103
1105
|
failure = 'pooled connection not ready'
|
|
1104
1106
|
else:
|
|
1105
1107
|
try:
|
|
@@ -787,86 +787,3 @@
|
|
|
787
787
|
background: oklch(var(--b3));
|
|
788
788
|
border-left: 2px solid oklch(var(--p) / 0.5);
|
|
789
789
|
}
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
/* ---- Live program monitor (atem_pgm_monitor.js) ---- */
|
|
793
|
-
.pgm-monitor {
|
|
794
|
-
position: fixed; /* left/top set by JS: home is bottom-right, draggable */
|
|
795
|
-
z-index: 900;
|
|
796
|
-
background: #111;
|
|
797
|
-
border: 1px solid rgb(255 255 255 / 0.15);
|
|
798
|
-
border-radius: 8px;
|
|
799
|
-
overflow: hidden;
|
|
800
|
-
box-shadow: 0 10px 34px rgb(0 0 0 / 0.6);
|
|
801
|
-
}
|
|
802
|
-
/* Resize grip at the top-left corner (the free corner). */
|
|
803
|
-
.pgm-monitor-resize {
|
|
804
|
-
position: absolute;
|
|
805
|
-
top: 0;
|
|
806
|
-
left: 0;
|
|
807
|
-
width: 20px;
|
|
808
|
-
height: 20px;
|
|
809
|
-
z-index: 2;
|
|
810
|
-
display: flex;
|
|
811
|
-
align-items: center;
|
|
812
|
-
justify-content: center;
|
|
813
|
-
color: #9a9a9a;
|
|
814
|
-
font-size: 11px;
|
|
815
|
-
cursor: nwse-resize;
|
|
816
|
-
touch-action: none;
|
|
817
|
-
opacity: 0.7;
|
|
818
|
-
}
|
|
819
|
-
.pgm-monitor-resize:hover { opacity: 1; color: #fff; }
|
|
820
|
-
.pgm-monitor-bar {
|
|
821
|
-
display: flex;
|
|
822
|
-
align-items: center;
|
|
823
|
-
gap: 6px;
|
|
824
|
-
height: 30px;
|
|
825
|
-
padding: 0 6px 0 24px; /* left pad clears the resize grip */
|
|
826
|
-
background: #1b1b1b;
|
|
827
|
-
color: #ddd;
|
|
828
|
-
cursor: move;
|
|
829
|
-
user-select: none;
|
|
830
|
-
touch-action: none;
|
|
831
|
-
}
|
|
832
|
-
.pgm-monitor-title {
|
|
833
|
-
flex: 1;
|
|
834
|
-
font-size: 12px;
|
|
835
|
-
font-weight: 600;
|
|
836
|
-
white-space: nowrap;
|
|
837
|
-
overflow: hidden;
|
|
838
|
-
text-overflow: ellipsis;
|
|
839
|
-
display: flex;
|
|
840
|
-
align-items: center;
|
|
841
|
-
gap: 6px;
|
|
842
|
-
}
|
|
843
|
-
.pgm-monitor-title::before {
|
|
844
|
-
content: "";
|
|
845
|
-
width: 7px;
|
|
846
|
-
height: 7px;
|
|
847
|
-
border-radius: 50%;
|
|
848
|
-
background: #f43f5e;
|
|
849
|
-
flex: 0 0 auto;
|
|
850
|
-
animation: pgm-live-pulse 1.6s ease-in-out infinite;
|
|
851
|
-
}
|
|
852
|
-
@keyframes pgm-live-pulse { 50% { opacity: 0.35; } }
|
|
853
|
-
.pgm-monitor-ctl {
|
|
854
|
-
background: none;
|
|
855
|
-
border: 0;
|
|
856
|
-
padding: 2px 3px;
|
|
857
|
-
color: #9a9a9a;
|
|
858
|
-
cursor: pointer;
|
|
859
|
-
font-size: 13px;
|
|
860
|
-
line-height: 1;
|
|
861
|
-
display: inline-flex;
|
|
862
|
-
align-items: center;
|
|
863
|
-
text-decoration: none;
|
|
864
|
-
}
|
|
865
|
-
.pgm-monitor-ctl:hover { color: #fff; }
|
|
866
|
-
.pgm-monitor-video {
|
|
867
|
-
display: block;
|
|
868
|
-
width: 100%;
|
|
869
|
-
aspect-ratio: 16 / 9;
|
|
870
|
-
border: 0;
|
|
871
|
-
background: #000;
|
|
872
|
-
}
|
|
@@ -2459,13 +2459,6 @@
|
|
|
2459
2459
|
_userInitiatedDisconnect: false,
|
|
2460
2460
|
currentIP: "---.---.---.---",
|
|
2461
2461
|
currentName: "",
|
|
2462
|
-
// Live program-monitor (see atem_pgm_monitor.js). pgmStreamUrl is the
|
|
2463
|
-
// room's program stream, resolved from the IP via the lookup-name
|
|
2464
|
-
// API; null when this ATEM has no stream mapping (the Live PGM button
|
|
2465
|
-
// hides). pgmMonitorOpen mirrors the floating panel's open state so
|
|
2466
|
-
// the header button can show an active style.
|
|
2467
|
-
pgmStreamUrl: null,
|
|
2468
|
-
pgmMonitorOpen: false,
|
|
2469
2462
|
statusText: "",
|
|
2470
2463
|
// empty so the loading overlay shows
|
|
2471
2464
|
// "Connecting…" instead of "Disconnected"
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "webatem"
|
|
7
|
-
version = "2.0.
|
|
7
|
+
version = "2.0.2"
|
|
8
8
|
description = "Browser-based control for Blackmagic ATEM switchers: run it, open the browser, your switchers are there"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
license = { text = "MIT" }
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: webatem
|
|
3
|
-
Version: 2.0.
|
|
3
|
+
Version: 2.0.2
|
|
4
4
|
Summary: Browser-based control for Blackmagic ATEM switchers: run it, open the browser, your switchers are there
|
|
5
5
|
Author: Lucas Romanenko
|
|
6
6
|
License: MIT
|
|
@@ -115,6 +115,13 @@ behind each strip:
|
|
|
115
115
|
<p align="center">
|
|
116
116
|
<img src="docs/screenshot-audio.png" alt="WebATEM Fairlight audio mixer: 14 strips with input, EQ, dynamics, faders, pan and meters" width="900">
|
|
117
117
|
</p>
|
|
118
|
+
|
|
119
|
+
The **media pool**: live thumbnails of every still slot and what each media
|
|
120
|
+
player is holding, with drag-and-drop upload straight onto a slot:
|
|
121
|
+
|
|
122
|
+
<p align="center">
|
|
123
|
+
<img src="docs/screenshot-media-pool.png" alt="WebATEM media pool: two media players, MP1 on air with colour bars, and twenty still slots, five holding stills (bars, a lower third, a Starting soon card, a logo bug, a Back in five card)" width="900">
|
|
124
|
+
</p>
|
|
118
125
|
---
|
|
119
126
|
|
|
120
127
|
## Which switchers has it run on?
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{webatem-2.0.0 → webatem-2.0.2}/atem_control/static/brand/fonts/IBMPlexMono-400-latin-ext.woff2
RENAMED
|
File without changes
|
|
File without changes
|
{webatem-2.0.0 → webatem-2.0.2}/atem_control/static/brand/fonts/IBMPlexMono-500-latin-ext.woff2
RENAMED
|
File without changes
|
|
File without changes
|
{webatem-2.0.0 → webatem-2.0.2}/atem_control/static/brand/fonts/IBMPlexMono-600-latin-ext.woff2
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{webatem-2.0.0 → webatem-2.0.2}/atem_control/static/vendor/bootstrap-icons/bootstrap-icons.min.css
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|