LogoLogo
ForumCodeDonate
  • Introduction
    • About
    • Release / Change Log
  • Installation
    • Requirements
    • Tuners
    • Linux
    • Virtualisation - Proxmox
    • Docker
    • NAS
    • Android
  • SETUP
    • Stages
    • Concepts
    • Muxes/Scan Files
      • Scan Files
      • Using w_scan Scan Files
  • CONFIGURATION
    • Concepts
    • Electronic Program Guide
    • Digital Video Recorder
    • Web User Interface Customisation
      • Theme
      • Date/Time Format
  • HTTPS access via Reverse Proxy
  • APPENDICES
    • FAQ
    • CLI Commands
    • Debugging
  • Development
    • Compiling
      • Compiling TVH with VAAPI Support
        • for Lubuntu 24.04
        • for Lubuntu 22.04
        • Level 2
    • HTSP
      • General
      • HTSMSG Binary Format
      • Communication
      • Client to Server (RPC) methods
      • Server to Client methods
      • Protocol Changes
      • HTTP Proxy Examples
    • JSON API
      • API Description
        • Common Parameters
        • Access
        • Bouquet
        • Caclient
        • Channel
        • Codec
        • Config
        • DVR
        • EPG
        • EPGgrab
        • ESfilter
        • idnode
        • Input
        • intlconv/charsets
        • Language
        • MPEGts
        • Profile
        • RatingLabel
        • Raw
        • Satip
        • Service
        • Status
        • Timeshift
        • Tvhlog
      • Examples
      • Other Functions
      • WebSocket
    • Object Class Relationships
    • Testing Tuners Using Files
    • Translations
    • Programmers Translation Workflow
    • XMLTV
      • Input
        • Recognised Tags/Attributes
        • Episode Numbering
      • Output
    • Object ID Representation
    • WebUI Help Content Workflow
    • Random Notes
  • Creating a Mux Dump
  • WIP
    • Release / Change Log Mockup
Powered by GitBook

© Tvheadend 2006-2024

On this page
  • WebUI
  • Red Black Trees

Was this helpful?

Export as PDF
  1. Development

Random Notes

Snippets of stuff that developers have learned that may be useful to other developers but is not yet sufficiently complete or structured for a dedicated page.

PreviousWebUI Help Content WorkflowNextCreating a Mux Dump

Last updated 10 months ago

Was this helpful?

WebUI

The WebUI is built on a 'single page application' framework called . The version used appears to be 3.4.1.1 which, is considerably outdated (released circa 2009-2011).

A link to the Ext JS documentation can be found here:

The WebUI appears to be heavily dependent upon the internal idnode structures that not only supply the data to the WebUI via JSON, but also data type and formatting information. See the for more details.

Each page or group of pages in the WebUI has its own JavaScript file, however, these normally contain just some setup and housekeeping functions specific to that area, all of the heaving lifting is done in idnode.js and tvheadend.js based on the idnode(s) in question.

Red Black Trees

Internally, TVH stores many objects in Red-Black tree structures rather than arrays. There are a number of preprocessor macros to support this. All of these macros are named RB_fn, for example, RB_FOREACH.

Ext JS
https://cdn.sencha.com/ext/gpl/3.4.1.1/docs/
JSON Documentation
https://github.com/tvheadend/tvheadend/blob/master/src/redblack.h
https://en.wikipedia.org/wiki/Red%E2%80%93black_tree