feat: Improve blueprint timing information#80
Open
rjmunro wants to merge 4 commits intofeat/top-bar-t-timersfrom
Open
feat: Improve blueprint timing information#80rjmunro wants to merge 4 commits intofeat/top-bar-t-timersfrom
rjmunro wants to merge 4 commits intofeat/top-bar-t-timersfrom
Conversation
afb4e9c to
82659e0
Compare
Instead of having them in corelib
Expose mode and state properties separately in IPlaylistTTimer, matching the RundownTTimer database model structure. This removes the computed IPlaylistTTimerState abstraction layer and allows blueprints to access timer.mode and timer.state directly, consistent with how the WebUI already works. Changes: - Add mode: RundownTTimerMode | null to IPlaylistTTimer - Add state: TimerState | null to IPlaylistTTimer - Remove IPlaylistTTimerState union and related interfaces - Simplify PlaylistTTimerImpl getters to return DB properties directly - Remove unnecessary tests
…own timing Add comprehensive T-Timer manipulation methods to IPlaylistTTimer interface: - setDuration(duration) - Reset timer to a specific duration - setDuration(options) - Independently update original and/or current duration - original: Duration timer resets to on restart() - current: Current countdown value - Preserves elapsed time when only original is provided Add T-Timer query methods: - getCurrentDuration() - Get current timer value in milliseconds - getZeroTime() - Get absolute timestamp of timer's zero point - getProjectedDuration() - Get projected countdown value (for over/under calculation) - getProjectedZeroTime() - Get projected zero time timestamp Add shared utility functions in corelib: - timerStateToDuration() - Calculate current duration from TimerState (already existed) - timerStateToZeroTime() - Calculate zero time from TimerState (new) - Both shared between backend and frontend for consistent calculations Expose timing information to blueprints: - Add timing field to IBlueprintSegmentRundown interface - Exposes RundownPlaylistTiming via context.rundown.timing - Removes need for accessing private _rundown property Implementation: - PlaylistTTimerImpl implements all new methods using shared utilities - Update convertRundownToBlueprintSegmentRundown() to include timing - All methods properly handle paused/running states and edge cases Related to BBC-SOFIE-454
Add startedPlayback property to IRundownContext interface and implement as getters in RundownActivationContext and SyncIngestUpdateToPartInstanceContext. This provides blueprints access to playlist.startedPlayback timing data. Part of BBC-SOFIE-454
82659e0 to
93069ea
Compare
justandras
approved these changes
Mar 27, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
About the Contributor
This pull request is posted on behalf of the BBC.
Type of Contribution
This is a Feature
Current Behavior
It's hard to access timing information from blueprints that can be useful, for example, in setting T-Timers.
New Behavior
Blueprint context now includes a timing property with information about the current rundown playlist timing.
Extra methods have been added to T-Timers to get information and update timings.
Testing
Affected areas
This affects T-Timers and blueprint intergration.
Time Frame
Other Information
Status