Module: CHD::Metadata
- Defined in:
- lib/chd/metadata.rb
Overview
| Type | Associated scanf string | |——|—————————————————————————————-| | GDDD | “CYLS:%d,HEADS:%d,SECS:%d,BPS:%d” | | CHTR | “TRACK:%d TYPE:%s SUBTYPE:%s FRAMES:%d” | | CHT2 | “TRACK:%d TYPE:%s SUBTYPE:%s FRAMES:%d PREGAP:%d PGTYPE:%s PGSUB:%s POSTGAP:%d” | | CHGD | “TRACK:%d TYPE:%s SUBTYPE:%s FRAMES:%d PAD:%d PREGAP:%d PGTYPE:%s PGSUB:%s POSTGAP:%d” | | AVAV | “FPS:%d.%06d WIDTH:%d HEIGHT:%d INTERLACED:%d CHANNELS:%d SAMPLERATE:%d” |
Constant Summary collapse
- HARD_DISK =
Hard disk
:'GDDD'
- HARD_DISK_IDENT =
Hard disk identity
:'IDNT'
- HARD_DISK_KEY =
Hard disk key
:'KEY '
- PCMCIA_CIS =
PCMCIA CIS
:'CIS '
- CDROM_TRACK =
CDROM Track
:'CHTR'
- CDROM_TRACK_PREGAP =
CDROM Track with pregap
:'CHT2'
- GDROM_TRACK =
GDROM Track (SEGA Genesis)
:'CHGD'
- AV =
Audio/Video
:'AVAV'
- AV_LD =
Audio/Video Laser Disk
:'AVLD'
- CDROM_OLD =
CDROM Track (old CHD version)
:'CHCD'
- GDROM_OLD =
GDROM Track (old CHD version)
:'CHGT'
Class Method Summary collapse
-
.parse(data, flags, type) ⇒ Hash{Symbol => Object}
Parse metadata returned by #get_metadata.
Class Method Details
.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 |