@name = name
@db = db
@selectors = selectors
-
@time = 0
@index = 0
@queue = []
@current = files[@index] if files.length > 0
end
-
-
def update(playing)
return false if !@current || items.length == 0
@time += 1 if playing
}
end
+ def export_state()
+ {
+ "name" => @name,
+ "time" => @time,
+ "index" => @index,
+ "queue" => @queue,
+ "current" => @current
+ }
+ end
+
+ def import_state(state)
+ # "name" is ignored so we ensure the config value is used.
+ if @name == state["name"] then
+ @time = state["time"]
+ @index = state["index"]
+ @queue = state["queue"]
+ @current = state["current"]
+ else
+ puts "Rejecting channel state import: #{@name} != #{state["name"]}"
+ end
+ end
+
def items()
# pp filedata[:tree]
{ "items" => filedata[:tree] }
@channel = 0
@channels = channels
@playing = true
+ if File.exist? "/tmp/atv.json"
+ data = JSON.parse(File.read("/tmp/atv.json"))
+ data.each_with_index {|e, i| channels[i].import_state e }
+ end
end
def update()
+ export_data = []
updated = false
@channels.each do |c|
updated ||= c.update(@playing)
+ export_data << c.export_state
+ end
+ File.open("/tmp/atv.json", "wb") do |f|
+ f.write JSON.dump(export_data)
end
+ pp export_data
updated
end