diff options
author | Thomas White <taw@bitwiz.me.uk> | 2020-01-21 23:29:44 +0100 |
---|---|---|
committer | Thomas White <taw@bitwiz.me.uk> | 2020-01-21 23:29:44 +0100 |
commit | db275d5f5503124d353393d78e899e2ecfdf03c3 (patch) | |
tree | f1a6cf53dde5b6ab1d0b0f7bb400557c1436dfb8 /libstorycode/narrative.c | |
parent | 161ff9ecc9be47e9016ef5e347d347f7a336765b (diff) |
Add basic timing ruler
Diffstat (limited to 'libstorycode/narrative.c')
-rw-r--r-- | libstorycode/narrative.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/libstorycode/narrative.c b/libstorycode/narrative.c index c9c94d6..6bedd30 100644 --- a/libstorycode/narrative.c +++ b/libstorycode/narrative.c @@ -766,6 +766,26 @@ static double timing_from_wordcount(struct narrative_item *item) } +/* Find the position (in units of narrative items) of time 'minutes' */ +double narrative_find_time_pos(Narrative *n, double minutes) +{ + int i; + double t = 0.0; + + if ( minutes == 0.0 ) return 0.0; + + for ( i=0; i<n->n_items; i++ ) { + double idur = n->items[i].estd_duration; + if ( t + idur > minutes ) { + /* It's in this item */ + return (double)i + (minutes - t)/idur; + } + t += n->items[i].estd_duration; + } + return n->n_items; +} + + void update_timing(struct narrative_item *item) { switch ( item->type ) { |