Method: CHD::Metadata.parse
- Defined in:
- lib/chd/metadata.rb
.parse(data, flags, type) ⇒ Hash{Symbol => Object}
Parse metadata returned by CHD#get_metadata
114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 |
# File 'lib/chd/metadata.rb', line 114 def self.parse(data, flags, type) # Flags unless (flags & ~(METADATA_FLAG_CHECKSUM)).zero? raise ParsingError, "unsupported flag (0x#{flags.to_s(16)}) (fill bug report)" end set_flags = Set.new set_flags << :checksum unless (flags & METADATA_FLAG_CHECKSUM).zero? # Data case type when CDROM_TRACK then parse_cdrom_track(data, CDROM_TRACK_REGEX) when CDROM_TRACK_PREGAP then parse_cdrom_track(data, CDROM_TRACK_PREGAP_REGEX) when GDROM_TRACK then parse_cdrom_track(data, GDROM_TRACK_REGEX) when HARD_DISK then parse_hard_disk(data, HARD_DISK_REGEX) else raise "not implemented yet" end end |