-
Notifications
You must be signed in to change notification settings - Fork 0
playlist_manager
Manages parsing SMIL playlists and controlling media players. The function block manages downloading content and subsequently asserts time-triggered ouput events as defined in the SMIL playlist.
The SMIL format is defined in https://www.w3.org/TR/SMIL20/cover.html . The following functions are supported:
- seq : SMIL sequence list. All content is played in sequence
- par : SMIL par list. All content is started at the same time, unless a start time is specified.
- media : Specify remote or locally stored media URL using src= attribute. e.g. (src="http://a.b.c/d/e.mp3" or src="/d/e.mp3" for locally downloaded).
- img : Specify remote or local image URL using src= attribute. e.g. (src="(http://a.b.c/d/e.jpg" or src="/d/e.jpg" for locally downloaded).
- smilText : Specify immediate text to display (e.g. <smilText>Hello There!</smilText>
- audio : same as media
- video : same as media
- begin : wallclock time values only as below
- end : wallclock time values only as below
- dur : relative duration times as HH:MM:SS, seconds (e.g. 22s), minutes (e.g. 10.5min or 10.5m), hours (e.g. 1.5h)
- class : Free text that is output for content.
- region : layout ID defined in the <layout> header section
- xml:id : ID that is output for all media
SMIL timing synatx is extended with the following wall-clock related features to allow various repeat rates:
- Daily : HH:MM:SS
- Weekly : wTHH:MM:SS
- 2 weekly : W1wTHH:MM:SS / W2wTHH:MM:SS
- monthly : ddTHH:MM:SS
- yearly : mm-ddTHH:MM:SS
- Once only : YY-mm-ddTHH:MM:SS
- textstyle IDs to be used in regions
- textstyle region IDs mapped to layouts
- root aspect ration (used to trigger screen orientation changes)
e.g.
<textarea "="" cols="100" rows="20"><smil xmlns="http://www.w3.org/2001/SMIL20/Language"> <head> <meta content="0,0" name="tableconfig_55"/> <textstyling> <textstyle textfontfamily="Arial" textfontsize="Small" xml:id="TextStyle_55_normal"></textstyle> <textstyle textfontfamily="Arial" textfontsize="Small" xml:id="TextStyle_55_title"></textstyle> <textstyle textfontfamily="Arial" textfontsize="Small" xml:id="TextStyle_55_table"></textstyle> </textstyling> <layout> <root-layout height="900" width="1600"></root-layout> <region bottom="0%" left="0%" right="100%" textstyle="TextStyle_55_title" top="50%" xml:id="RegionId_55_0"></region> <region bottom="50%" left="0%" right="100%" textstyle="TextStyle_55_normal" top="100%" xml:id="RegionId_55_1"></region> </layout> </head> <body> <seq begin="wallclock( 00:00:00 )" end="wallclock( 23:59:00 )" xml:id="SectionId_55"> <media dur="50s" region="RegionId_55_1" src="/_data/01 Silver.m4a"></media> <media dur="1:30" region="RegionId_55_0" src="/_data/02 Nocturnal Me.m4a"></media> <media dur="1.5h" region="RegionId_55_0" src="/_data/08 My Kingdom.m4a"></media> </seq> </body> </smil> </textarea>| name | type | default | min. | max. | description |
|---|
| In Ev. | |
|---|---|
| New Playlist | Triggers reading a new playlist (see parameters for initialisation options) |
| Started PI | |
| Last Ended | Must be asserted if a media object finishes. |
| Next URL | This must triggeref for all files that have been downloaded after the respective file has been downloaded and usually after the "got" event has been processed. |
| Got | This is the local filename of a downloaded file after the appropriate "local path" prefix has been prepended (usually a copy of the output below). |
| Set Paths | This should be asserted when a media file has been downloaded for local play to indicate it can be found locally. |
| Data In | |
| Playlist path | This is the local file system path of a SMIL file. |
| ID | The item ID to be played, as defined by the outputted ID |
| ID | The item ID of an played object after it has ended (including endings caused by instructions by this function block) |
| ID | The item ID of a downloaded file as defined by the get ID outout. |
| URL | This is a media URL if the content is not found locally (e.g. has a http:// prefix on the media name, which implies it should be streamed, rather than downloaded and played locally.) |
| Local File | This is the local filename of a downloaded file after the appropriate "local path" prefix has been prepended (usually a copy of the output below). |
| DL URL | |
| DL Local | This is the URL of any file that has been downloaded after the remote media download server URL has been prepended |
| start mode | |
| Data Out | |
| Playlist path | Copy of the playlist filename concetanted on to the download path (if provided). |
| ID | The ID of a media object that is to be played. |
| Media File | This is the local filesystem path to a media oject to be played. |
| Type | This is an optional W3C SMIL meda type string |
| Volume | |
| Fade | |
| class | This is an optional W3C SMIL object class string that might be included in SMIL |
| Text | This any text (instead of media) in the SMIL file to display |
| Region | |
| URL | This is a media URL if the content is not found locally (e.g. has a http:// prefix on the media name, which implies it should be streamed, rather than downloaded and played locally.) |
| ID | The ID of a file that needs to be downloaded. |
| Local File | This is the local filename of a downloaded file after the appropriate "local path" prefix has been prepended. |
| ------------- | |
| ------------- | |
| ------------- | |
| ------------- | |
| start time | This identifies the next media start time in the playlist |
| Stop time | The next time when the current media, will be instructed to stop |
| Region JSON | |
| AR JSON | |
| Out Ev. | |
| -------------- | |
| Play Now | |
| play remote | |
| Play Stop | |
| ------------ | |
| Get | |
| ------------ | |
| Tried All | |
| ------------ | |
| Earliest | |
| New Layout | |
| State Machine | Stateless. | ||||
| Toolbox | GUI/Level1. | Version | v2.1. | ||
| Licence Type | MPL2.0 | Component Supplier | inx ltd. | ||
| Minumum DCC | A0000 | Profiles | |
||
copyright inx limited, UK, 2025 - join the inxware community @appland
- event_identifier - Registers which input event was last asserted as an index integer
- event_switch - Asserts different events based index integer
- event_text_switch - Asserts events conditioned on string LUT matches.
- EventCounter_versatile1 - Counts events (up and down, with overflow detection)
- trigger_counter - Simple EventCounter
- trigger_eventor2 - Combines all event paths and passes all events through unconditionally
- trigger_eventand2 - Waits for all events to be asserted
- trigger_eventManRstAnd1 - Waits for all events to be asserted and requires a reset event to before retriggering again.
- trigger_eventrstand2 - Waits for all events to be asserted and requires a reset event to before retriggering again.
- trigger_eventboolctrl - passes events through conditional on a Boolean value.
- trigger_eventsetrstbool - Sets and unsets a Boolean depending on event inputs
- trigger_eventtoggbool - Toggles a Boolean value on each inout event.
- trigger_negedgedetect - Asserts events on negative edge of a Boolean value change
- trigger_posedgedetect - Asserts events on positive edge of a Boolean value change
- trigger_eventedgedetect - Asserts events when a Boolean value changes
- STATE - Represents a State in Lucid
- state_condition - Event driven state condition --> transition and actions
- state_debug - To debug state machines this function block is required.
- state_manager - Each state machine is defined by a State Manager
- ArrayBool1 - Array of Boolean Values
- ArrayInt1 - Array Integer Values
- ArrayReal1 - Array of Real Values
- ArrayString1 - Array of String Values
- buffer_fifobbq - FIFO Boolean
- buffer_fifoiiq - FIFO Integer
- buffer_fiforrq - FIFO Real
- buffer_fifossq - FIFO String
- buffer_lifobbq - LIFO Boolean
- buffer_lifoiiq - LIFO Integer
- buffer_liforrq - LIFO Real
- buffer_lifossq - LIFO String
- const_b1 - Boolean Constant
- const_i1 - Integer Constant
- const_r1 - Real Constant
- const_s1 - String Constant
- convertor_tranbix - Converts Bool to Int
- convertor_tranbrx - Converts Bool to Real
- convertor_tranbsx - Converts Int to Bool
- convertor_tranibx - Converts Int to Bool
- convertor_tranirx - Converts Int to Real
- convertor_tranisx - Converts Int to String
- convertor_tranrbx - Converts Real to Bool
- convertor_tranrix - Converts Real to Int
- convertor_tranrsx - Converts Real to String
- convertor_transbx - Converts String to Bool
- convertor_transix - Converts String to Int
- convertor_transrx - Converts String to Real
- logic_and2bbx - Two Input And
- logic_and3bbx - Three Input And
- logic_and4bbx - Four Input And
- logic_nand2bbx - Two Input Nand
- logic_nand3bbx - Three Input Nand
- logic_nand4bbx - Four Input Nand
- logic_nor2bbx - Two Input Nor
- logic_nor3bbx - Three Input Nor
- logic_nor4bbx - Four Input Nor
- logic_notbbx - Not
- logic_or2bbx - Two Input Or
- logic_or3bbx - Three Input Or
- logic_or4bbx - Four Input Or
- logic_xorbbx - Two Input Xor
- calc2_i1 - Single variable expression
- calc2_i2 - 2 variable expression
- calc2_i4 - 4 variable expression
- calc2_i6 - 6 variable expression
- calc2_i8 - 8 variable expression
- operator_absix - AbsoluteInt
- operator_add2ix - AdditionTwo Input Int
- operator_add2rx - AdditionTwo Input Real
- operator_addacci - AddAccumulateInt
- operator_addaccr - AddAccumulateReal
- operator_divix - DivisionInt
- operator_divrx - DivisionReal
- operator_max - Max_Int
- operator_min - Min_Int
- operator_modix - ModulusInt
- operator_modrx - ModulusReal
- operator_mul2ix - MultiplyTwo Input Int
- operator_mul2rx - MultiplyTwo Input Real
- operator_mul3ix - MultiplyThree Input Int
- operator_mul3rx - MultiplyThree Input Real
- operator_mul4ix - MultiplyFour Input Int
- operator_mul4rx - MultiplyFour Input Real
- operator_powix - PowerInt
- operator_powrx - PowerReal
- integrator - Integrator_Int
- integrator_r - Integrator_Real
- operator_cmeibx - operator_cmeibx
- operator_cmeibx1 - ComparatorGreaterEqualInt1
- operator_cmerbx - operator_cmerbx
- operator_cmerbx1 - ComparatorGreaterEqualReal1
- operator_cmpibx - operator_cmpibx
- operator_cmpibx1 - ComparatorGreaterInt1
- operator_cmprbx - operator_cmprbx
- operator_cmprbx1 - ComparatorGreaterReal1
- operator_equibx - operator_equibx
- operator_equibx1 - ComparatorEqualInt1
- operator_equrbx - operator_equrbx
- operator_equrbx1 - ComparatorEqualReal1
- operator_asinhrx - ArcHyperbolicSineReal
- operator_asinrx - ArcSineReal
- operator_atanhrx - ArcHyperbolicTanReal
- operator_atanrx - ArcTanReal
- operator_coshrx - operator_coshrx
- operator_cosrx - CosineReal
- operator_acoshrx - ArcHyperbolicCosineReal
- operator_acosrx - ArcCosineReal
- operator_exprx - ExponentialReal
- operator_log10rx - LogBaseTenReal
- operator_logrx - LogReal
- operator_sqrix - SquareInt
- operator_sqrrx - SquareReal
- operator_sqrtrx - SquareRootReal
- operator_subacci - SubAccumulateInt
- operator_subaccr - SubAccumulateReal
- operator_subix - SubtractionInt
- operator_subrx - SubtractionReal
- operator_tanhrx - HyperbolicTanReal
- operator_tanrx - TanReal
- indexed_mux_int - Indexed Mux Int
- indexed_mux_str - Indexed Mux String
- map_int - Map Int
- mux_1b - mux_1b
- mux_1i - mux_1i
- mux_1r - mux_1r
- mux_1s - mux_1s
- mux_2b - MultiplexTwo Input Bool
- mux_2i - MultiplexTwo Input Int
- mux_2r - MultiplexTwo Input Real
- mux_2s - MultiplexTwo Input String
- mux_3b - MultiplexThree Input Bool
- mux_3i - MultiplexThree Input Int
- mux_3r - MultiplexThree Input Real
- mux_3s - MultiplexThree Input String
- mux_4b - MultiplexFour Input Bool
- mux_4i - MultiplexFour Input Int
- mux_4r - MultiplexFour Input Real
- mux_4s - MultiplexFour Input String
- mux_8b - 8-Input Indexed Boolean Multiplexer Function Block
- mux_8i - 8-Input Indexed Integer Multiplexer Function Block
- mux_8r - 8-Input Real Number Multiplexer Function Block
- mux_8s - Number Multiplexer Function Block
- num_mux - Numeric Multiplexer Function Block
- binary2decimal8 - binary2decimal8
- cgi2json - cgi2json Function Block
- hex2string - Hex String to String Conversion Function Block
- int2HexString - Int2HexString Function Block
- json_stream - JSON Stream Parser Function Block
- JSONObjectFunctionBlock - JSON Object
- key_value - Key Value Pair
- sample2string - Samples to String
- xml_stream - XML Stream
- database - database
- inx-permanent_storage_bool - inx-permanent_storage_bool
- inx-permanent_storage_int - inx-permanent_storage_int
- inx-permanent_storage_real - inx-permanent_storage_real
- inx-permanent_storage_string - inx-permanent_storage_string
- demux_2b - DemultiplexTwoOutputBool
- demux_2i - DemultiplexTwoOutputInt
- demux_2r - DemultiplexTwoOutputReal
- demux_2s - DemultiplexTwoOutputString
- demux_3b - DemultiplexThreeOutputBool
- demux_3i - DemultiplexThreeOutputInt
- demux_3r - DemultiplexThreeOutputReal
- demux_3s - DemultiplexThreeOutputString
- demux_4b - DemultiplexFourOutputBool
- demux_4i - DemultiplexFourOutputInt
- demux_4r - DemultiplexFourOutputReal
- demux_4s - DemultiplexFourOutputString
- demux_8b - 8-Output Boolean Demultiplexer Function Block
- demux_8i - 8-Output Indexed Integer Demultiplexer Function Block
- demux_8r - 8-Output Real Number Demultiplexer Function Block
- demux_8s - 8-Output String Demultiplexer Function Block
- demux_8indexedb - IndexedDemultiplexer_Bool
- demux_8indexedi - IndexedDemultiplexer_Int
- demux_8indexedr - IndexedDemultiplexer_Real
- demux_8indexeds - IndexedDemultiplexer_String
- indexed_demux_int - Indexed Demux Int
- num_demux - Numeric Demultiplexer Function Block
- string_divider - String Divider
- string_subs - SubString
- stringfn_cats - CatString
- stringfn_charats - CharAtString
- stringfn_cmps - CmpString
- stringfn_finds - FindString
- stringfn_formats - string_format_2
- stringfn_formats8 - string_format_8
- stringfn_inserts - InsertString
- stringfn_lens - LenString
- stringfn_lwrs - to LowerString
- stringfn_scanf8 - string_scanf
- stringfn_strats - StrAtString
- stringfn_uprs - to UpperString
- file_rob - FILE_ReadOnly_Bool
- file_roi - FILE_ReadOnly_Int
- file_ror - FILE_ReadOnly_Real
- file_ros - FILE_ReadOnly_String
- file_wob - FILE_WriteOnly_Bool
- file_woi - FILE_WriteOnly_Int
- file_wor - FILE_WriteOnly_Real
- file_wos - FILE_WriteOnly_String
- fs_dir_create_remove - FileSystemDirCreateRemove
- fs_dir_list - FileSystemDirList1
- adc_read - adc_read
- dac - Digital-to-Analog Converter
- display_backlight - Display Backlight Function Block
- gpio_in - GPIO In
- gpio_out - Gpio Output
- numeric_display_char - Digit Display
- pwm - Pulse Width Modulation
- gui_image_file - GUI Image File
- gui_leds - gui_leds
- gui_patch - Gui Patch
- gui_text_bool - gui_text_bool
- gui_text_bool1 - gui_text_bool1
- gui_text_bool2 - Gui Text Bool
- gui_text_int - gui_text_int
- gui_text_int1 - gui_text_int1
- gui_text_int2 - Gui Text Int
- gui_text_real - gui_text_real
- gui_text_real1 - gui_text_real1
- gui_text_real2 - Gui Text Real
- gui_text_string - gui_text_string
- gui_text_string1 - gui_text_string1
- gui_text_string2 - Gui Text String
- gui_viewport - Gui Viewport
- guiimage - guiimage
- guiimage1 - guiimage1
- guitextbox_b - guitextbox_b
- guitextbox_i - guitextbox_i
- guitextbox_r - guitextbox_r
- guitextbox_s - guitextbox_s
- ui_chart - Gui Chart
- ui_list - Gui List
- ui_spinner - Gui Spinner
- keypress - Reads key presses & control keys
- inx-unity - Provides media and animation widget interface
- unity2 - Unity 3D
- webkit - JavaScript/WebKit Interface (Obsolete)
- AvailableLanguages - AvailableLanguages
- SelectLang - SelectLang
- audio_input_level - Calibrate Function Block
- devman_player - devman_player
- playlist_manager - Play Manager
- dtv_diag_s - Dtvdiagnosticstring
- dtv_pvr_list - dtv_pvr_list
- dtv_pvr_play - dtv_pvr_play
- dtv_pvr_play2 - Dtvpvrplay2
- dtv_remote - dtv_remote
- dtv_remote1 - dtv_remote1
- dtv_remote2 - Dtvremotekey2
- inx-netsocket - Provides a raw TCPIP Socket Client
- netsocketrsrvr - Provides a raw TCPIP Socket Server
- url_get - Implements HTTP requests with file or in-memory result processing.
- mqtt_client - MQTT Client
- mqtt_publish - MQTT Publish
- mqtt_subscribe - MQTT Subscribe
- network_config - TCPIP Network Config
- devman_interface - Devman Device Management control and data source.
- wifi_station - Wifi station configurator
- lorawan - LoRaWAN configuration and data processing
- uart - Bi directional UART data IO.
- uart_config - UART Config (e.g. USB, TTL, RS232, RS485)
- modbus_config - Modbus Configuration
- modbus_slave_register - Modbus Slave mode register read/write.
- modbus_read - MODBUS Master Mode data register read
- modbus_write - MODBUS Master Mode register Write
- ADC Polled Analogue to Digital converter.
- ADC_continuous Advanced ADC supporting clocked ISR modes and advanced signal averaging.
- FFT8 Fast Fourier Transform of 8 bit binary input data
- FIR8 Finite Impulse Response filter for 8 bit binary data.
- IIR8 Infinite Impulse Response filter for 8 bit binary data.
- [calibrate](ADC calibrate) - Calibrates the ADCs
- pid_controller - PID Controller with hardware accelertion options
- pid_relay_config - PID GPIO/PWM Configuration Function Block
- mv_camera - Provides access to camera input data image streams
- mv_idsplay - Renders camera image streams.
- mv_resize - Resizes an image using given interpolation method
- mv_crop - Crops and image width and height at a give offset
- mv_apriltag_reader Plain Old Prgramming AprilTag Reader
- ml_tflite_inference Machine learning model inference.
- ml_osvm Online iterative machine learning (training& inference).
- reboot - Reboot the device
- rtc - RealTimeClock - provdes date/time from RTC device or OS.
- rtinfo - RuntimeInfo (e.g. MAC/IP address, memory,... )
- scheduler - Weekly Scheduler
- system_exec - Executes linux shell commands
- rng - Random Number Generator (may use hardware RNG)
- time_clock - time internal clock generator
- wall_clock - wall clock (date/time) provider.
- appget - Application Server
- appinfo - App Info
- application_info_getter - application_info_getter
- application_run - ApplicationRun
- ehs_controller - Runtime Control
- ota - OTA Function Block for updating firmware
- ota_data_parser - Assembles OTA data files from Devman.
Some function blocks that can be used Lucid app are for visual/organisation purposes only and do not translate into any executable ert-components.
- xinputb - XinputBoolean
- xinputi - XinputInteger
- xinputr - XinputReal
- xinputs - XinputString
- xoutputb - XoutputBoolean
- xoutputi - XoutputInteger
- xoutputr - XoutputReal
- xoutputs - XoutputString
-Note this file is autogenerated from ert-config help files and may not currently be complete or properly categorised!