ampv 1.2.1 → 1.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 943c6cc8f359174b3bf8d5c51c38761dacf1523b
4
- data.tar.gz: 8a2c814830826c6c8f3c698bd1f8ec0ab7a1cde5
3
+ metadata.gz: 8c53292e5b30740dc7acb2f2c636b3a9f10d8461
4
+ data.tar.gz: 2878f0245d381052d5926d47d5a65866024e7186
5
5
  SHA512:
6
- metadata.gz: 081a7c98b93fad0f3604c8f1de457b9966477562941db6093954a1dffd5749fa9e3dd4eb7ea8bafa17e32a42b95c8d86e3c50061e2ce0fd383cc94f816b8c928
7
- data.tar.gz: 3bed50ec7e8b7b2150321d2a7970c6eca6069de872869cc854c1b052658e31e77d7f2036ff066d348ec11cee5cb36f21f4a12b4edec14c154455e504ed62be5b
6
+ metadata.gz: 18e14e349249708b0c2b647288918c8b94c7d578e7818692113f5a3e4efbab548712bf05dbe05ca504a0983e4ebb2bf6e741f1ffc40c6abe4be09d3cf7dd37b4
7
+ data.tar.gz: 6ca3f6b671aa8ffae1e6a2262a3b5f6bd87e0ae6bca3e3b729beadf42ae50a3d746241743b65b6535d9e32e44e94c5cd09d09785f66946e2c4875b264234ddad
@@ -75,6 +75,10 @@ module Ampv
75
75
  }
76
76
  @mpv.signal_connect("playing_watched") { @playlist.on_playing_watched }
77
77
  @mpv.signal_connect("length_changed") { |w, len| @playlist.update_length(@length = len) }
78
+ @mpv.signal_connect("title_changed") { |w, t|
79
+ @playlist.update_title(t)
80
+ set_title(t)
81
+ }
78
82
  @mpv.signal_connect("time_pos_changed") { |w, pos| @progress_bar.value = pos / @length.to_f }
79
83
  @mpv.signal_connect("stopped") {
80
84
  @progress_bar.value = 0
@@ -122,6 +126,7 @@ module Ampv
122
126
  end
123
127
  end
124
128
 
129
+ mouse_cursor_timeout
125
130
  Gtk.main
126
131
  end
127
132
 
@@ -135,7 +140,7 @@ module Ampv
135
140
 
136
141
  return unless File.directory?(file) or valid_video_file?(file) or uri
137
142
 
138
- if @playlist.count == 0 and auto_add
143
+ if @playlist.count == 0 and auto_add and !uri
139
144
  file = create_playlist(file)
140
145
  elsif !@playlist.include?(file)
141
146
  @playlist.add_file(file)
@@ -184,7 +189,7 @@ module Ampv
184
189
  GLib::Source.remove(@cursor_timeout) if @cursor_timeout
185
190
  window.set_cursor(nil)
186
191
  @cursor_timeout = GLib::Timeout.add(1000) {
187
- window.set_cursor(Gdk::Cursor.new(Gdk::Cursor::BLANK_CURSOR)) unless @mpv.is_paused
192
+ window.set_cursor(Gdk::Cursor.new(Gdk::Cursor::BLANK_CURSOR))
188
193
  # hacky workaround when called after a mouse event
189
194
  # without this the cursor is still shown when it should not be.
190
195
  Gdk::Display.default.warp_pointer(*Gdk::Display.default.pointer[0..2]) if mevent
@@ -240,7 +245,6 @@ module Ampv
240
245
  @progress_bar.hide unless Config["fullscreen_progressbar"]
241
246
  fullscreen
242
247
  end
243
- mouse_cursor_timeout
244
248
  end
245
249
 
246
250
  def toggle_progress_bar
@@ -1,4 +1,3 @@
1
- require "fifo"
2
1
  require "tmpdir"
3
2
 
4
3
  module Ampv
@@ -7,6 +6,7 @@ module Ampv
7
6
  type_register
8
7
  signal_new("file_changed", GLib::Signal::RUN_FIRST, nil, nil, String)
9
8
  signal_new("length_changed", GLib::Signal::RUN_FIRST, nil, nil, Integer)
9
+ signal_new("title_changed", GLib::Signal::RUN_FIRST, nil, nil, String)
10
10
  signal_new("playing_watched", GLib::Signal::RUN_FIRST, nil, nil)
11
11
  signal_new("time_pos_changed", GLib::Signal::RUN_FIRST, nil, nil, Float)
12
12
  signal_new("stopped", GLib::Signal::RUN_FIRST, nil, nil)
@@ -40,7 +40,8 @@ module Ampv
40
40
  end
41
41
 
42
42
  def send(cmd)
43
- @fifo.puts(cmd) if @fifo
43
+ @fifo.puts(cmd)
44
+ @fifo.flush
44
45
  end
45
46
 
46
47
  def load_file(file, force_play = false)
@@ -68,7 +69,8 @@ module Ampv
68
69
  private
69
70
  def start
70
71
  return if @thread and @thread.alive?
71
- @fifo = Fifo.new(@mpv_fifo, :w, :nowait)
72
+ system("mkfifo \"#{@mpv_fifo}\"")
73
+ @fifo = File.open(@mpv_fifo, "w+")
72
74
  ObjectSpace.define_finalizer(self, proc { File.delete(@mpv_fifo) })
73
75
 
74
76
  cmd = "#{PATH} \
@@ -85,10 +87,13 @@ module Ampv
85
87
  line.chomp!
86
88
  if line.start_with?("Playing: ")
87
89
  signal_emit("file_changed", (@playing = line.partition("Playing: ")[-1]))
90
+ send("get_property media-title")
88
91
  send("get_property length")
89
92
  send("get_property time-pos")
90
93
  send("get_property pause")
91
94
  @is_stopped = false
95
+ elsif line.start_with?("ANS_media-title=")
96
+ signal_emit("title_changed", line.rpartition("=")[-1])
92
97
  elsif line.start_with?("ANS_length=")
93
98
  signal_emit("length_changed", (@length = line.rpartition("=")[-1].to_i))
94
99
  elsif line.start_with?("ANS_pause=")
@@ -126,6 +131,7 @@ module Ampv
126
131
 
127
132
  def signal_do_file_changed(file) end
128
133
  def signal_do_length_changed(len) end
134
+ def signal_do_title_changed(title) end
129
135
  def signal_do_playing_watched; end
130
136
  def signal_do_time_pos_changed(pos) end
131
137
  def signal_do_stopped
@@ -32,6 +32,7 @@ module Ampv
32
32
  hide_on_delete if e.keyval == Gdk::Keyval::GDK_Escape
33
33
  }
34
34
 
35
+ @titles = Hash.new
35
36
  vbox = Gtk::VBox.new(false, 10)
36
37
  sw = Gtk::ScrolledWindow.new
37
38
  @model = Gtk::ListStore.new(String, String, Gdk::Pixbuf)
@@ -69,7 +70,11 @@ module Ampv
69
70
  renderer.ellipsize = Pango::ELLIPSIZE_MIDDLE
70
71
  column.expand = true
71
72
  column.set_cell_data_func(renderer) { |t, c, m, j|
72
- c.text = File.basename(m.get_value(j, 0)) unless m.get_value(j, 0).nil?
73
+ if @titles[j[0]]
74
+ c.text = @titles[j[0]]
75
+ else
76
+ c.text = File.basename(j[0])
77
+ end
73
78
  }
74
79
  end
75
80
 
@@ -161,6 +166,7 @@ module Ampv
161
166
  end
162
167
 
163
168
  def clear(quiet = false)
169
+ @titles.clear
164
170
  @model.clear
165
171
  signal_emit("playing_removed") unless quiet or @playing_iter.nil?
166
172
  @playing_iter = nil
@@ -194,6 +200,11 @@ module Ampv
194
200
  @playing_iter[1] = Time.at(length).utc.strftime("%H:%M:%S") if @playing_iter
195
201
  end
196
202
 
203
+ def update_title(title)
204
+ return unless title
205
+ @titles[@playing_iter[0]] = title
206
+ end
207
+
197
208
  private
198
209
  def move_selected_up
199
210
  @treeview.selection.selected_rows.each { |path|
@@ -223,6 +234,7 @@ module Ampv
223
234
  @playing_iter = nil
224
235
  signal_emit("playing_removed")
225
236
  end
237
+ @titles.delete(iter[0])
226
238
  @model.remove(iter)
227
239
  }
228
240
  end
@@ -1,5 +1,5 @@
1
1
  module Ampv
2
2
  PACKAGE = "ampv"
3
- VERSION = "1.2.1"
3
+ VERSION = "1.2.2"
4
4
  end
5
5
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ampv
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.1
4
+ version: 1.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - ahoka
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-04-21 00:00:00.000000000 Z
11
+ date: 2014-04-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: gtk2
@@ -38,20 +38,6 @@ dependencies:
38
38
  - - '>='
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
- - !ruby/object:Gem::Dependency
42
- name: ruby-fifo
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - '>='
46
- - !ruby/object:Gem::Version
47
- version: '0'
48
- type: :runtime
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - '>='
53
- - !ruby/object:Gem::Version
54
- version: '0'
55
41
  description: A minimal GTK2 mpv frontend.
56
42
  email:
57
43
  executables:
@@ -61,11 +47,11 @@ extra_rdoc_files: []
61
47
  files:
62
48
  - LICENSE
63
49
  - input.conf
64
- - lib/ampv/playlist.rb
50
+ - lib/ampv/mpvwidget.rb
65
51
  - lib/ampv/progressbarwidget.rb
66
52
  - lib/ampv/config.rb
67
53
  - lib/ampv/version.rb
68
- - lib/ampv/mpvwidget.rb
54
+ - lib/ampv/playlist.rb
69
55
  - lib/ampv.rb
70
56
  - bin/ampv
71
57
  homepage: https://github.com/ahodesuka/ampv
@@ -89,7 +75,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
89
75
  requirements:
90
76
  - mpv v0.3.x
91
77
  rubyforge_project:
92
- rubygems_version: 2.0.3
78
+ rubygems_version: 2.0.14
93
79
  signing_key:
94
80
  specification_version: 4
95
81
  summary: ampv