$LOAD_PATH << 'lib/' << 'ext/' << '../ext/' << '../lib/'
require 'discid'
device = ARGV[0] || DiscId.default_device
puts "Reading TOC from device '#{device}'."
begin
disc = DiscId.read(device, :isrc, :mcn)
rescue DiscId::DiscError => e
puts e
exit(1)
end
print <<OUT
Device : #{disc.device}
DiscID : #{disc.id}
FreeDB ID : #{disc.freedb_id}
TOC string : #{disc.toc_string}
First track : #{disc.first_track_number}
Last track : #{disc.last_track_number}
Total length: #{disc.seconds} seconds
Sectors : #{disc.sectors}
OUT
puts "MCN : #{disc.mcn}" if DiscId.feature?(:mcn)
puts
disc.tracks do |track|
puts "Track ##{track.number}"
puts format(' Length: %<minutes>02d:%<seconds>02d (%<sectors>i sectors)',
minutes: track.seconds / 60,
seconds: track.seconds % 60,
sectors: track.sectors)
puts format(' Start : %<minutes>02d:%<seconds>02d (sector %<sector>i)',
minutes: track.start_time / 60,
seconds: track.start_time % 60,
sector: track.offset)
puts format(' End : %<minutes>02d:%<seconds>02d (sector %<sector>i)',
minutes: track.end_time / 60,
seconds: track.end_time % 60,
sector: track.end_sector)
puts " ISRC : #{track.isrc}" if DiscId.feature?(:isrc)
end
puts "\nSubmit via #{disc.submission_url}"