mirror of
https://github.com/Kunsi/scheduled-plugin-pretalx-broadcast-tools.git
synced 2024-11-25 11:31:04 +00:00
next talk: add option to switch between track bar and track name
This commit is contained in:
parent
00c25529de
commit
738e1d0300
2 changed files with 28 additions and 9 deletions
10
tile.js
10
tile.js
|
@ -14,7 +14,7 @@ var config = {
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
<div class='col-xs-3'>
|
<div class='col-xs-3'>
|
||||||
Text Color<br/>
|
Text Colour<br/>
|
||||||
<input
|
<input
|
||||||
type="color"
|
type="color"
|
||||||
v-model="color"
|
v-model="color"
|
||||||
|
@ -50,6 +50,13 @@ var config = {
|
||||||
class='form-check-input'/>
|
class='form-check-input'/>
|
||||||
Show abstract
|
Show abstract
|
||||||
</div>
|
</div>
|
||||||
|
<div class='col-xs-3'>
|
||||||
|
<input
|
||||||
|
type="checkbox"
|
||||||
|
v-model="next_track_text"
|
||||||
|
class='form-check-input'/>
|
||||||
|
Show track name instead of coloured bar
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<template v-if='mode == "room"'>
|
<template v-if='mode == "room"'>
|
||||||
|
@ -94,6 +101,7 @@ var config = {
|
||||||
font_size: ChildTile.config_value('font_size', 70, parseInt),
|
font_size: ChildTile.config_value('font_size', 70, parseInt),
|
||||||
all_speakers: ChildTile.config_value('all_speakers', true),
|
all_speakers: ChildTile.config_value('all_speakers', true),
|
||||||
next_abstract: ChildTile.config_value('next_abstract', false),
|
next_abstract: ChildTile.config_value('next_abstract', false),
|
||||||
|
next_track_text: ChildTile.config_value('next_track_text', false),
|
||||||
room_align: ChildTile.config_value('room_align', 'left'),
|
room_align: ChildTile.config_value('room_align', 'left'),
|
||||||
day_align: ChildTile.config_value('day_align', 'left'),
|
day_align: ChildTile.config_value('day_align', 'left'),
|
||||||
day_template: ChildTile.config_value('day_template', 'Day %d'),
|
day_template: ChildTile.config_value('day_template', 'Day %d'),
|
||||||
|
|
27
tile.lua
27
tile.lua
|
@ -121,6 +121,7 @@ end
|
||||||
local function view_next_talk(starts, ends, config, x1, y1, x2, y2)
|
local function view_next_talk(starts, ends, config, x1, y1, x2, y2)
|
||||||
local font_size = config.font_size or 70
|
local font_size = config.font_size or 70
|
||||||
local show_abstract = config.next_abstract
|
local show_abstract = config.next_abstract
|
||||||
|
local track_text = config.next_track_text
|
||||||
local default_color = {helper.parse_rgb(config.color or "#ffffff")}
|
local default_color = {helper.parse_rgb(config.color or "#ffffff")}
|
||||||
|
|
||||||
local a = anims.Area(x2 - x1, y2 - y1)
|
local a = anims.Area(x2 - x1, y2 - y1)
|
||||||
|
@ -138,11 +139,12 @@ local function view_next_talk(starts, ends, config, x1, y1, x2, y2)
|
||||||
local title_size = font_size
|
local title_size = font_size
|
||||||
local abstract_size = math.floor(font_size * 0.8)
|
local abstract_size = math.floor(font_size * 0.8)
|
||||||
local speaker_size = math.floor(font_size * 0.8)
|
local speaker_size = math.floor(font_size * 0.8)
|
||||||
|
local track_size = math.floor(font_size * 0.6)
|
||||||
|
|
||||||
local current_talk = room_next_talks[1]
|
local current_talk = room_next_talks[1]
|
||||||
|
|
||||||
local col1 = 0
|
local col1 = 0
|
||||||
local col2 = 0 + font:width("in XXX min", time_size)
|
local col2 = 35 + font:width("in XXX min", time_size)
|
||||||
|
|
||||||
if #schedule == 0 then
|
if #schedule == 0 then
|
||||||
text(col2, y, "Fetching talks...", time_size, rgba(default_color,1))
|
text(col2, y, "Fetching talks...", time_size, rgba(default_color,1))
|
||||||
|
@ -174,12 +176,6 @@ local function view_next_talk(starts, ends, config, x1, y1, x2, y2)
|
||||||
text(col2, y, lines[idx], title_size, rgba(default_color,1))
|
text(col2, y, lines[idx], title_size, rgba(default_color,1))
|
||||||
y = y + title_size
|
y = y + title_size
|
||||||
end
|
end
|
||||||
|
|
||||||
if current_talk.track then
|
|
||||||
local r,g,b = helper.parse_rgb(current_talk.track.color)
|
|
||||||
text(col2, y, current_talk.track.name, title_size, r,g,b,1)
|
|
||||||
y = y + title_size
|
|
||||||
end
|
|
||||||
y = y + 20
|
y = y + 20
|
||||||
|
|
||||||
-- Show abstract only if it fits into the drawing area completely
|
-- Show abstract only if it fits into the drawing area completely
|
||||||
|
@ -199,6 +195,21 @@ local function view_next_talk(starts, ends, config, x1, y1, x2, y2)
|
||||||
y = y + speaker_size
|
y = y + speaker_size
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
if current_talk.track then
|
||||||
|
local r,g,b = helper.parse_rgb(current_talk.track.color)
|
||||||
|
if track_text then
|
||||||
|
if a.height > y + 20 + track_size then
|
||||||
|
text(col2, y+20, current_talk.track.name, track_size, r,g,b,1)
|
||||||
|
end
|
||||||
|
else
|
||||||
|
a.add(anims.moving_image_raw(
|
||||||
|
S, E, resource.create_colored_texture(r,g,b,1),
|
||||||
|
col2 - 25, 0,
|
||||||
|
col2 - 10, y
|
||||||
|
))
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
for now in api.frame_between(starts, ends) do
|
for now in api.frame_between(starts, ends) do
|
||||||
|
@ -221,7 +232,7 @@ local function view_all_talks(starts, ends, config, x1, y1, x2, y2)
|
||||||
|
|
||||||
-- always leave room for 15px of track bar
|
-- always leave room for 15px of track bar
|
||||||
local col1 = 0
|
local col1 = 0
|
||||||
local col2 = 25 + font:width("XXX min ago", time_size)
|
local col2 = 35 + font:width("XXX min ago", time_size)
|
||||||
|
|
||||||
local x, y = 0, 0
|
local x, y = 0, 0
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue