class Kikeru::Window

Public Class Methods

new() click to toggle source
Calls superclass method
# File lib/kikeru/window.rb, line 6
def initialize
  super
  setup
end

Public Instance Methods

add_container(container) click to toggle source
# File lib/kikeru/window.rb, line 11
def add_container(container)
  @container = container
  @file = @container.shift
end
load() click to toggle source
# File lib/kikeru/window.rb, line 16
def load
  stop
  @playbin.uri = Gst.filename_to_uri(@file)
  self.title = File.basename(@file)
  play
end

Private Instance Methods

pause() click to toggle source
# File lib/kikeru/window.rb, line 78
def pause
  @playbin.pause
  @playing = false
end
play() click to toggle source
# File lib/kikeru/window.rb, line 73
def play
  @playbin.play
  @playing = true
end
setup() click to toggle source
# File lib/kikeru/window.rb, line 24
def setup
  setup_window
  setup_gst
end
setup_gst() click to toggle source
# File lib/kikeru/window.rb, line 54
def setup_gst
  Gst.init

  @playbin = Gst::ElementFactory.make("playbin")
  if @playbin.nil?
    puts "'playbin' gstreamer plugin missing"
    exit(false)
  end

  @playbin.bus.add_watch do |bus, message|
    case message.type
    when Gst::MessageType::EOS
      @file = @container.shift(@file)
      load
    end
    true
  end
end
setup_window() click to toggle source
# File lib/kikeru/window.rb, line 29
def setup_window
  signal_connect("destroy") do
    stop
    Gtk.main_quit
  end

  signal_connect("key_press_event") do |widget, event|
    case event.keyval
    when Gdk::Keyval::GDK_KEY_n
      @file = @container.shift(@file)
      load
    when Gdk::Keyval::GDK_KEY_p
      @file = @container.pop(@file)
      load
    when Gdk::Keyval::GDK_KEY_r
      load
    when Gdk::Keyval::GDK_KEY_q
      stop
      Gtk.main_quit
    when Gdk::Keyval::GDK_KEY_space
      toggle
    end
  end
end
stop() click to toggle source
# File lib/kikeru/window.rb, line 83
def stop
  @playbin.stop
  @playing = false
end
toggle() click to toggle source
# File lib/kikeru/window.rb, line 88
def toggle
  @playing ? pause : play
end