TurboPlayer Service SDK
TurboPlayer Service and the TurboPlayer Service SDK are in preview status
We strongly recommend to first use this version in a test environment before going productive with it. A stress test in a productive-like situation is needed in order to ensure the stability of this version.
Contact our support team to get this version.
Component | Version |
---|---|
TurboPlayerServiceSDK | 6.3.226.0 (Test version) |
Non-backwards compatible changes…
Parameter & metadata name
itemId
is renamed tonodeId
in all requests and in the DataModelSetKernelMode request is renamed to SetTurboPlayerMode
ExecuteGuiMacro is removed
ExecuteKernelMacro is renamed to ExecuteCommand and have improvement functionality included ExecuteGuiMacro
GetShow request is no more supported. Use GetLoadedRundown request instead
Metadata name Prelisten doesn't exist anymore
Following TurboPlayer Metadata are removed
ActiveShowId
ActiveShowName
ActiveShowTimeStart
Following TurboPlayer Metadata are provided but with the different logic in comparison with above described removed metadata
RunningShowId
RunningShowName
RunningShowTimeStart
Following TurboPlayer Metadata are renamed
FollowedElement is renamed to FollowingElement
Following DataModel keywords are renamed
MaxFollowedElementAfterFirst is renamed to MaxFollowingElementAfterFirst
FollowedElementsConditions is renamed to FollowingElementsConditions
New Features
New API based on the DataModel and markup language
Warning! New API is completely incompatible with the old API 1.xMore clear error message about configured to execution TurboPlayer macro commands
BCS XML -> JSON conversion based on .NET for multiplatform compatibility
.NET based XML <-> JSON conversion to remove windows platform dependency
Subscribe for notifications about playout state changes and updates in the broadcast list
Users can subscribe for notifications regarding changes for any BCS and TurboPlayer metadata (e.g., change in rundown list, change of current play position)
Client-defined DataModel subscription mechanic allows clients to determine how notification data is organized and communicated between TurboPlayer Service and the client
Notification traffic can be optimized by including conditions in client-defined DataModels (e.g., only send play position updates for a specific channel number or playing state)
New features in DataModel
Support global option SendAlways
Support feature to get the elements after the target element
Warning about disabled notifications after the DataModel update
Separate conditions for followed elements
Support ActiveShowTimeStart metadata
Support LoadedRundown metadata
Human-readable additional information if field format isn't specified in the DataModel
Support regular expressions in the DataMdoel conditions
New active show logic
Limited total maximum number of fields pro DataModel and maximum index value for the fields with index in name
Support new condition "Changed"
New Commands
SetKernelMode request is renamed to SetTurboPlayerMode
Reworked ExecuteGuiMacro & ExecuteKernelMacro requests
Support Heartbeat request
Support GetServiceState request
Support GetLoadedRundown request
Fixes
Return empty NodeId metadata by specified flag "SendAlways = true", if the NodeId metadata doesn't exist
Remove dynamically created unused global DataModels
Return empty NodeId metadata by invalid field value in the DataModels with returning all fields
Send changed fields to the client, if no fields are specified in the DataModel
Correct ActiveShowId & ActiveShowName metadata values after executing TP_SetProgram macro
Correct ActiveShowId & ActiveShowName metadata values after loading new program
Return error message if followed requests are used with the Prelisten rundown list type
NodeDelete
NodeInsert
NodeMove
NodeCopy
NodeCopyAsNext
NodeUpdateTree
NodeInsertAsNextAndPrepare
Return error message if AdjustTimes request is used with Jingles or Prelisten rundown list type
Return error message if NodeDelink request is used with Prelisten rundown list type
Return error message if SelectNode request is used with Prelisten rundown list type
Return error message if ElementSelectPrelisten / ElementSelectNextPlay / ElementChangePrelistenState requests are used with Prelisten rundown list type
Return all values in the DataModel with the type "full" in the second and followed DataModel requests
ElementAddPrelisten request returned DigaXML parser error
SetRundownListMode request returned error for the AutoPrepare, AutoDelete, ClearOnReset, AllowRearrangement modes
Return error message if SetRundownListMode request is used with Prelisten rundown list type
Client receive notifications from deleted DataModel
Client don't receive subscribed events
Check user rights before executing ExecuteMacro request
NodeId is always present in the broadcast tree events
Client receive delete events from changes in the broadcast list
BCS metadata is present in the broadcast tree events
Provide properly BCS metadata for non-element BCS nodes in the broadcast tree events
Properly handle non-alphabetical characters in the DataModel "type" field
TP_AddTimedRecording macro can't be executed via ExecuteKernelMacro request
TP_SetLineParameter macro can't be executed via ExecuteKernelMacro request
Wrong mandatory parameter name "Element" instead of "NodeId" in ElementChangePrelistenState request
Client receive changes in the broadcast list initiated in the in TurboPlayer GUI
Client receive messages not matched to conditions
Service send unnecessary events about changes in the broadcast list to the client
Error message "Recursive write lock acquisitions not allowed in this mode" for some DataModels
Update all subscribed DataModels after reestablished connection to the TurboPlayer
Wrong transaction id by login request with invalid authentication data
Wrong unlocked internal resources
ServiceSettingsReloaded metadata isn't returned by "full" request
Properly handle the metadata not related to the usual BCS nodes
Provide all possible elements as followed elements
Field "PlayState" is properly handled with the combination with field "Channel"
Send prelisten notifications to client
Properly handle DataModels with the field names with & without index in name in the same model
Service send the notificaions with the index keyword in the fieldname instead of real fieldname
Properly handle massive changes in the broadcast list from TurboPlayer
Return error if the client tries to update non existed DataModel
Return error if requested show id is invalid in GetLoadedRundown request
Don't mix the events from the different list types & channels related to the same element
Wrong track node id returned from GetLoadedRundown request
Return properly global service status by simultaneous multi-output playback
No more wrong error message if no any optional metadata is specified for NodeCopyAsNext and NodeCopy requests
Followed commands are returns the errors with the properly transactionId
GetLoadedRundown
ReloadSettings
Request any licensed command by service without license (“Service has no license” error, Error code 300) returns the errors with the properly transactionId
Followed elements aren't present in notifications
Wrong handled TurboPlayer events with empty BCS node id
Empty BCS node id in following elements
Following metadata aren't supported for "Changed" condition
CustomGuiMessage
CustomGuiMessageNumber
EventName
EventParameter
TreeNotificationType
ParentNodeId
PreviousNodeId
BCSTransactionId
Properly handle changes in BCS elements still not pepared in the TurboPlayer
Wrong LoopMode value
Properly handle asynchronous changes from the TurboPlayer in the same time as the service send the notification to the client
Properly handle TurboPlayer events for the metadata changes in played element
Properly handle number of following element if it configured less than default
Properly handle BCS following elements from the next show related to the start element from previous show
Properly handle following elements from the TurboPlayer stacks
Properly handle UpdateTreePartially notification for actions initiated in TurboPlayer GUI
Properly handle notifications about changes in TurboPlayer stacks
Properly handle send state changes from TurboPlayer
Properly handle broadcast tree notifications from TurboPlayer
Properly handle broadcast tree notifications from TurboPlayer
Properly handle 0 / 1 integer values as a boolean
Properly handle integer values as a time
Properly handle time information update for elements in groups
Properly handle start / stop events from the TurboPlayer
Properly convert BCS metadata to Date format
Properly convert BCS metadata to DateTimeStamp format
Properly handle real times, generated from TurboPlayer
Metadadata node always contains all metadata levels
Using fieldname in notifications from the keyword "Name" in the DataModel
Wrong elements sequence in notification after the UpdateTreePartially event from the TurboPlayer
Missed or local only node id instead of full BCS node id in UpdateTree notifications from the TurboPlayer
Known issues
The following keywords are currently not supported in markup language. We plan to have these supported in future releases.
Immortal
LocalIndex
RemoteIndex
Component
Rights
LocalIndexStartValue
Color