122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
|
# File 'lib/rbtune/radio.rb', line 122
def record(filename, sec, quiet: false, dt: DateTime.now)
begin
uri = channel_to_uri
raise 'not tuned yet.' unless uri
puts "record: #{uri}"
player = create_player uri
remain_sec = sec
rtime = 0
minimum_sec = 60 datetimes = []
begin
rtime += Benchmark.realtime do
dt = datetime dt
datetimes << dt
tmpfile = make_tmpfile @channel, dt
player.rec tmpfile, remain_sec, quiet
end
remain_sec -= rtime
dt = DateTime.now
end while remain_sec >= minimum_sec
rescue Interrupt, Errno::EPIPE
ensure
datetimes.each do |dt|
tmpfile = make_tmpfile @channel, dt
recfile = make_recfile(filename, dt)
convert tmpfile, recfile
end
end
end
|