mirror of
https://github.com/screentinker/screentinker.git
synced 2026-08-13 13:53:12 -06:00
The dashboard offered every control to every display, so on a Tizen panel the volume
slider and screen_off did nothing and read as bugs. Two of them were genuinely dead:
- set_volume fell through STDeviceControl.run()'s default case and was answered
"unknown command". It is not a Samsung fleet action and must work on every build,
so it is handled in app.js instead: tizen.tvaudiocontrol where the TV profile
provides it (that is the TV's own volume, the only thing that reaches AVPlay video
on the hardware plane), otherwise the media elements. The level is remembered and
re-applied on 'play' — media elements are created per item, so a one-shot set
lasted only until the playlist advanced.
- screen_off was a z-index overlay, which covers the web layer only. Portrait and
flipped video runs through AVPlay on a separate hardware plane the DOM cannot draw
over, so the overlay went up and the video played straight through it. It now tears
the AVPlay session down as well; screen_on re-mounts via playCurrent(), because a
torn-down session cannot be resumed and gotoIndex() early-returns on an unchanged
index.
js/capabilities.js declares the rest at runtime rather than from a static table,
because on Tizen the answer varies by build: reboot exists only through the B2B
surface injected on a partner-signed .wgt, and tizen.tvaudiocontrol is absent in a
browser context. Against the server baseline this adds display.power, remote.screenshot
and remote.stream (all backed by real handlers) and drops offline.cache — the payload
is cached, but media bytes are still fetched from the network, so content does not
survive an outage and claiming it would overstate.
Adds the tv.audio privilege; without it tvaudiocontrol throws SecurityError.
41 lines
2.3 KiB
XML
41 lines
2.3 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<widget xmlns="http://www.w3.org/ns/widgets" xmlns:tizen="http://tizen.org/ns/widgets"
|
|
id="http://screentinker.com/player" version="1.9.29" viewmodes="maximized">
|
|
<tizen:application id="ScrnTinkr1.ScreenTinker" package="ScrnTinkr1" required_version="2.4"/>
|
|
<tizen:profile name="tv"/>
|
|
<name>ScreenTinker</name>
|
|
<author email="support@screentinker.net">ScreenTinker</author>
|
|
<description>ScreenTinker digital signage player</description>
|
|
<icon src="icon.png"/>
|
|
<content src="index.html"/>
|
|
|
|
<!-- Landscape signage, no context menu, allow background, keep app full-screen -->
|
|
<tizen:setting screen-orientation="landscape" context-menu="disable"
|
|
background-support="enable" encryption="disable"
|
|
install-location="auto" hwkey-event="enable"/>
|
|
|
|
<feature name="http://tizen.org/feature/screen.size.all"/>
|
|
|
|
<!-- Allow the player to reach any signage server + load remote media / YouTube -->
|
|
<access origin="*" subdomains="true"/>
|
|
<tizen:allow-navigation>*</tizen:allow-navigation>
|
|
|
|
<tizen:privilege name="http://tizen.org/privilege/internet"/>
|
|
<tizen:privilege name="http://tizen.org/privilege/application.launch"/>
|
|
<tizen:privilege name="http://tizen.org/privilege/display"/>
|
|
<!-- tizen.tvaudiocontrol: sets the TV's OWN volume, which is what reaches AVPlay video on the
|
|
hardware plane. Without this privilege the API throws SecurityError and the player falls
|
|
back to per-element media volume, which cannot touch that plane. -->
|
|
<tizen:privilege name="http://tizen.org/privilege/tv.audio"/>
|
|
<tizen:privilege name="http://developer.samsung.com/privilege/network.public"/>
|
|
|
|
<!-- #125: Samsung B2B fleet control (reboot / panel power via b2bcontrol /
|
|
systemcontrol). These are PARTNER-level privileges: they only take effect
|
|
when the .wgt is signed with a Samsung Partner distributor certificate on a
|
|
real SSSP panel. On unsigned / URL-Launcher / web / consumer-TV builds they
|
|
are ignored (not fatal) — the APIs are simply absent and device-control.js
|
|
reports "unsupported". -->
|
|
<tizen:privilege name="http://developer.samsung.com/privilege/b2bcontrol"/>
|
|
<tizen:privilege name="http://developer.samsung.com/privilege/systemcontrol"/>
|
|
</widget>
|