Skip to content

Latest commit

History

20 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

TomorrowOS Player (Tizen V1)

A Tizen-based digital signage player that connects to a CMS via WebSocket, receives content policy commands, and plays playlist items (image/video/widget/web) with brand fallback.

App Scope

  • Player app: core/ (runs on Samsung Tizen)
  • Main runtime file: core/main.js

Core Features (Current)

  • Device pairing and resume via WebSocket
  • Device commands:
    • device.info.get
    • device.info.getCapabilities
    • device.power.reboot
    • device.content.setPolicy
    • device.content.clear
  • Playlist runtime:
    • Sequential play + loop
    • Optional schedule per playlist (start/end)
    • No active playlist -> branded fallback screen
  • Media caching:
    • Image/video local cache by URL
    • Pre-cache first item immediately after setPolicy
    • Background sequential pre-cache for remaining items while playing
  • Widget package flow (.zip/.wgt):
    • Download once (cached by url + version)
    • Extract to local storage
    • Resolve local entry file (default index.html)
    • Play from local file URL
    • Reuse local cache after reboot when same url + version is sent

Important Behavior Notes

  • setPolicyreplaces the current active policy (not append).
  • clear:
    • Stops playback and timers
    • Clears active policy state
    • Cancels active downloads/in-flight cache operations
    • Shows branded fallback
  • When player command handling fails, it emits command.result with status: "failed" and error details.

Policy Format (Input To Player)

Input should be a policy object with playlists and optional fallback behavior.

Minimal example:

{
"policy": {
"playlists": [
{
"id": "default",
"items": [
{ "url": "https://example.com/a.jpg", "type": "image", "durationMs": 8000 },
{ "url": "https://example.com/b.mp4", "type": "video", "durationMs": 30000 }
]
}
],
"fallback": { "type": "brand" }
}
}

Widget item example:

{
"url": "https://example.com/queue-widget.wgt",
"type": "widget",
"version": "1.0.0", (optional)"entryFile": "index.html", (optional)"durationMs": 20000
}

Build / Package (Tizen)

Project metadata and privileges are defined in:

  • templates/tizen/config.xml
  • sssp_config.xml

Typical install command used during development:

tizen install -n "D:\Amped Digital\TomorrowOS\Tomorrow MVP\build\tizen\TomorrowOS.wgt"-t <DEVICE_NAME>

Configuration

  • WebSocket CMS endpoint is hardcoded in core/main.js:
    • CMS_ENDPOINT
  • HTTP endpoint is derived from WS endpoint at runtime.

Releases

Packages

Used by

Contributors

Languages