lib/vlcraptor.rb in vlcraptor-0.3.0 vs lib/vlcraptor.rb in vlcraptor-0.4.0

- old
+ new

@@ -5,16 +5,21 @@ require_relative "vlcraptor/player" require_relative "vlcraptor/player_controller" require_relative "vlcraptor/preferences" require_relative "vlcraptor/queue" require_relative "vlcraptor/notifiers" +require_relative "vlcraptor/scrobbler" module Vlcraptor def self.autoplay(value) Vlcraptor::Preferences.new[:autoplay] = value == "on" end + def self.clear + Vlcraptor::Queue.clear + end + def self.crossfade(value) Vlcraptor::Preferences.new[:crossfade] = value == "on" end def self.history @@ -22,22 +27,24 @@ end def self.list started = Vlcraptor::Preferences.new[:started] offset = 0 + index = 0 Vlcraptor::Queue.each do |track| - array = [] + array = [Rainbow(index.to_s).magenta] array << Time.at(started + offset).strftime("%I:%M:%S") if started array += [Rainbow(track[:title]).green, "by", Rainbow(track[:artist]).yellow] array += ["from", Rainbow(track[:album]).cyan] if (track[:album] || "").length.positive? if track[:length] mins = track[:length] / 60 secs = track[:length] % 60 array << "(#{mins} minutes and #{secs} seconds)" end puts array.join(" ") offset += track[:length] + index += 1 end end def self.pause Vlcraptor::Preferences.new[:pause] = true @@ -94,10 +101,14 @@ ensure player_controller.cleanup Curses.close_screen end + def self.remove(index) + Vlcraptor::Queue.remove(index) { list } + end + def self.queue(paths) paths.each do |path| if File.file?(path) Vlcraptor::Queue.add(path) else @@ -107,16 +118,24 @@ end end end def self.scrobble(value) - Vlcraptor::Preferences.new[:scrobble] = value == "on" + preferences = Vlcraptor::Preferences.new + preferences[:scrobble] = value == "on" + scrobbler = Vlcraptor::Scrobbler.load if preferences.scrobble? + preferences[:scrobble] = false unless scrobbler end def self.skip Vlcraptor::Preferences.new[:skip] = true end def self.stop Vlcraptor::Preferences.new[:stop] = true + end + + def self.swap(args) + a, b = *args + Vlcraptor::Queue.swap(a, b) { list } end end