airstream 0.3.2 → 0.3.4

Sign up to get free protection for your applications and to get access to all the features.
data/bin/airstream CHANGED
@@ -70,23 +70,24 @@ begin
70
70
  exit 68
71
71
  end
72
72
 
73
+ io = Airstream::Io.new
74
+ io.quiet = options[:quiet]
75
+ io.verbose = options[:verbose]
73
76
  server = Airstream::Server.new(options[:reciever])
74
77
 
75
78
  puts "=> Ctrl-C to exit airstream"
76
79
  ARGV.each do |file|
77
80
 
78
81
  server.allow_local_httpd = options[:use_local_httpd]
79
- puts "sending video file #{file}" if options[:verbose]
82
+ io.info "sending video file #{file}"
80
83
  server.video = file
81
84
 
82
- print "loading " unless options[:quiet]
83
- "|/-\\".chars.cycle.each do |c|
84
- print c unless options[:quiet]
85
- sleep(0.2)
86
- print "\b" unless options[:quiet]
87
- break unless server.loading?
85
+ io.print "loading"
86
+ while server.loading?
87
+ io.print "."
88
+ sleep(0.7)
88
89
  end
89
- puts "done" unless options[:quiet]
90
+ io.puts " done"
90
91
 
91
92
  video_title = File.basename(file, '.mp4')
92
93
  pbar_options = {
@@ -94,14 +95,20 @@ begin
94
95
  total: server.video_duration,
95
96
  format: '%t |%b%i| %p%%'
96
97
  }
98
+
99
+ io.hide_input
97
100
  pbar = ProgressBar.create(pbar_options)
98
101
  while (elapsed_time=server.video_position) < server.video_duration
102
+ io.catch_input
103
+ break if io.quit? || io.skip?
99
104
  pbar.progress = elapsed_time
100
105
  formatted_time = Time.at(elapsed_time).gmtime.strftime('%R:%S')
101
106
  pbar.title = "#{video_title} #{formatted_time}"
102
- sleep 1.0
107
+ sleep 0.5
103
108
  end
109
+ io.show_input
104
110
  pbar.finish
111
+ break if io.quit?
105
112
  end
106
113
 
107
114
  rescue Airplay::Protocol::InvalidMediaError
data/lib/airstream.rb CHANGED
@@ -11,6 +11,7 @@ module Airstream
11
11
  end
12
12
 
13
13
  require 'airstream/version.rb'
14
+ require 'airstream/io.rb'
14
15
  require 'airstream/network.rb'
15
16
  require 'airstream/node.rb'
16
17
  require 'airstream/video.rb'
@@ -0,0 +1,46 @@
1
+
2
+ require 'io/wait'
3
+
4
+ module Airstream
5
+ class Io
6
+ attr_writer :quiet, :verbose
7
+ attr_reader :key
8
+
9
+ def print(msg)
10
+ STDOUT.print msg unless @quiet
11
+ end
12
+
13
+ def puts(msg)
14
+ STDOUT.puts msg unless @quiet
15
+ end
16
+
17
+ def info(msg)
18
+ STDOUT.puts msg if @verbose
19
+ end
20
+
21
+ def hide_input
22
+ `stty raw -echo`
23
+ end
24
+
25
+ def show_input
26
+ `stty -raw echo`
27
+ end
28
+
29
+ def catch_input
30
+ @key = nil
31
+ if STDIN.ready?
32
+ @key = STDIN.getc
33
+ end
34
+ rescue
35
+ show_input
36
+ end
37
+
38
+ def quit?
39
+ @key == "q"
40
+ end
41
+
42
+ def skip?
43
+ @key == "s"
44
+ end
45
+ end
46
+ end
@@ -1,4 +1,4 @@
1
1
 
2
2
  module Airstream
3
- VERSION = '0.3.2'
3
+ VERSION = '0.3.4'
4
4
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: airstream
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.2
4
+ version: 0.3.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-11-07 00:00:00.000000000 Z
12
+ date: 2012-11-12 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: airplay
@@ -43,6 +43,38 @@ dependencies:
43
43
  - - ! '>='
44
44
  - !ruby/object:Gem::Version
45
45
  version: '0'
46
+ - !ruby/object:Gem::Dependency
47
+ name: rack
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ type: :runtime
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ - !ruby/object:Gem::Dependency
63
+ name: webrick
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ type: :runtime
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
46
78
  - !ruby/object:Gem::Dependency
47
79
  name: rake
48
80
  requirement: !ruby/object:Gem::Requirement
@@ -72,6 +104,7 @@ files:
72
104
  - bin/airimg
73
105
  - lib/airstream.rb
74
106
  - lib/airstream/version.rb
107
+ - lib/airstream/io.rb
75
108
  - lib/airstream/network.rb
76
109
  - lib/airstream/node.rb
77
110
  - lib/airstream/video.rb