From 1ce8669ace9721300d72a9c3de2b235876c361fd Mon Sep 17 00:00:00 2001 From: Natalia Portillo Date: Mon, 11 Feb 2019 20:05:00 +0000 Subject: [PATCH] Add VideoNow media types. --- DiscImageChef.CommonTypes/MediaType.cs | 6 ++++++ DiscImageChef.CommonTypes/Metadata/Dimensions.cs | 11 +++++++++++ DiscImageChef.CommonTypes/Metadata/MediaType.cs | 12 ++++++++++++ DiscImageChef.DiscImages/Alcohol120/Helpers.cs | 5 ++++- DiscImageChef.DiscImages/Alcohol120/Properties.cs | 3 ++- DiscImageChef.DiscImages/Alcohol120/Write.cs | 3 +++ DiscImageChef.DiscImages/CDRDAO/Properties.cs | 3 ++- DiscImageChef.DiscImages/CDRWin/Helpers.cs | 5 ++++- DiscImageChef.DiscImages/CDRWin/Properties.cs | 3 ++- DiscImageChef.DiscImages/CloneCD/Properties.cs | 3 ++- DiscImageChef.DiscImages/DiscImageChef/Helpers.cs | 5 ++++- DiscImageChef.DiscImages/DiscImageChef/Write.cs | 9 ++++++--- DiscImageChef.Gui/Forms/frmDump.xeto.cs | 5 ++++- templates/dicformat.bt | 4 ++++ 14 files changed, 66 insertions(+), 11 deletions(-) diff --git a/DiscImageChef.CommonTypes/MediaType.cs b/DiscImageChef.CommonTypes/MediaType.cs index 465c38b98..040df1d68 100644 --- a/DiscImageChef.CommonTypes/MediaType.cs +++ b/DiscImageChef.CommonTypes/MediaType.cs @@ -1049,5 +1049,11 @@ namespace DiscImageChef.CommonTypes /// Imation 320Gb RDX RDX320 = 734, #endregion Imation, types 730 to 739 + + #region VideoNow, types 740 to 749 + VideoNow = 740, + VideoNowColor = 741, + VideoNowXp = 742 + #endregion } } \ No newline at end of file diff --git a/DiscImageChef.CommonTypes/Metadata/Dimensions.cs b/DiscImageChef.CommonTypes/Metadata/Dimensions.cs index b4bbec172..983ebe743 100644 --- a/DiscImageChef.CommonTypes/Metadata/Dimensions.cs +++ b/DiscImageChef.CommonTypes/Metadata/Dimensions.cs @@ -902,6 +902,17 @@ namespace DiscImageChef.CommonTypes.Metadata dmns.DiameterSpecified = true; dmns.Thickness = 1.2; return dmns; + case CommonTypes.MediaType.VideoNow: + dmns.Diameter = 85; + dmns.DiameterSpecified = true; + dmns.Thickness = 1.2; + return dmns; + case CommonTypes.MediaType.VideoNowColor: + case CommonTypes.MediaType.VideoNowXp: + dmns.Diameter = 108; + dmns.DiameterSpecified = true; + dmns.Thickness = 1.2; + return dmns; #endregion CD/DVD/BD #region Apple Hard Disks diff --git a/DiscImageChef.CommonTypes/Metadata/MediaType.cs b/DiscImageChef.CommonTypes/Metadata/MediaType.cs index d5b0a81b3..728956af7 100644 --- a/DiscImageChef.CommonTypes/Metadata/MediaType.cs +++ b/DiscImageChef.CommonTypes/Metadata/MediaType.cs @@ -1861,6 +1861,18 @@ namespace DiscImageChef.CommonTypes.Metadata discType = "Hard Disk Drive"; discSubType = "Microdrive"; break; + case CommonTypes.MediaType.VideoNow: + discType = "VideoNow"; + discSubType = "VideoNow"; + break; + case CommonTypes.MediaType.VideoNowColor: + discType = "VideoNow"; + discSubType = "VideoNow Color"; + break; + case CommonTypes.MediaType.VideoNowXp: + discType = "VideoNow"; + discSubType = "VideoNow XP"; + break; default: discType = "Unknown"; discSubType = "Unknown"; diff --git a/DiscImageChef.DiscImages/Alcohol120/Helpers.cs b/DiscImageChef.DiscImages/Alcohol120/Helpers.cs index 89e4eff25..f77f92161 100644 --- a/DiscImageChef.DiscImages/Alcohol120/Helpers.cs +++ b/DiscImageChef.DiscImages/Alcohol120/Helpers.cs @@ -130,7 +130,10 @@ namespace DiscImageChef.DiscImages case MediaType.Playdia: case MediaType.Pippin: case MediaType.FMTOWNS: - case MediaType.MilCD: return AlcoholMediumType.CD; + case MediaType.MilCD: + case MediaType.VideoNow: + case MediaType.VideoNowColor: + case MediaType.VideoNowXp: return AlcoholMediumType.CD; case MediaType.CDR: return AlcoholMediumType.CDR; case MediaType.CDRW: case MediaType.CDMRW: return AlcoholMediumType.CDRW; diff --git a/DiscImageChef.DiscImages/Alcohol120/Properties.cs b/DiscImageChef.DiscImages/Alcohol120/Properties.cs index e07c46d58..8728e7828 100644 --- a/DiscImageChef.DiscImages/Alcohol120/Properties.cs +++ b/DiscImageChef.DiscImages/Alcohol120/Properties.cs @@ -133,7 +133,8 @@ namespace DiscImageChef.DiscImages MediaType.SuperCDROM2, MediaType.SVCD, MediaType.SVOD, MediaType.SATURNCD, MediaType.ThreeDO, MediaType.UDO, MediaType.UDO2, MediaType.UDO2_WORM, MediaType.UMD, MediaType.VCD, MediaType.VCDHD, MediaType.NeoGeoCD, MediaType.PCFX, MediaType.CDTV, MediaType.CD32, MediaType.Nuon, - MediaType.Playdia, MediaType.Pippin, MediaType.FMTOWNS, MediaType.MilCD + MediaType.Playdia, MediaType.Pippin, MediaType.FMTOWNS, MediaType.MilCD, MediaType.VideoNow, + MediaType.VideoNowColor, MediaType.VideoNowXp }; public IEnumerable<(string name, Type type, string description, object @default)> SupportedOptions => new (string name, Type type, string description, object @default)[] { }; diff --git a/DiscImageChef.DiscImages/Alcohol120/Write.cs b/DiscImageChef.DiscImages/Alcohol120/Write.cs index 1c85a650e..e1731c158 100644 --- a/DiscImageChef.DiscImages/Alcohol120/Write.cs +++ b/DiscImageChef.DiscImages/Alcohol120/Write.cs @@ -109,6 +109,9 @@ namespace DiscImageChef.DiscImages case MediaType.Pippin: case MediaType.FMTOWNS: case MediaType.MilCD: + case MediaType.VideoNow: + case MediaType.VideoNowColor: + case MediaType.VideoNowXp: isDvd = false; break; default: diff --git a/DiscImageChef.DiscImages/CDRDAO/Properties.cs b/DiscImageChef.DiscImages/CDRDAO/Properties.cs index 62d935bfd..c7d95a61b 100644 --- a/DiscImageChef.DiscImages/CDRDAO/Properties.cs +++ b/DiscImageChef.DiscImages/CDRDAO/Properties.cs @@ -115,7 +115,8 @@ namespace DiscImageChef.DiscImages MediaType.PS1CD, MediaType.PS2CD, MediaType.SuperCDROM2, MediaType.SVCD, MediaType.SATURNCD, MediaType.ThreeDO, MediaType.VCD, MediaType.VCDHD, MediaType.NeoGeoCD, MediaType.PCFX, MediaType.CDTV, MediaType.CD32, MediaType.Nuon, MediaType.Playdia, MediaType.Pippin, - MediaType.FMTOWNS + MediaType.FMTOWNS, MediaType.MilCD, MediaType.VideoNow, MediaType.VideoNowColor, + MediaType.VideoNowXp }; public IEnumerable<(string name, Type type, string description, object @default)> SupportedOptions => new[] {("separate", typeof(bool), "Write each track to a separate file.", (object)false)}; diff --git a/DiscImageChef.DiscImages/CDRWin/Helpers.cs b/DiscImageChef.DiscImages/CDRWin/Helpers.cs index 51ba9d479..b2393c780 100644 --- a/DiscImageChef.DiscImages/CDRWin/Helpers.cs +++ b/DiscImageChef.DiscImages/CDRWin/Helpers.cs @@ -211,7 +211,10 @@ namespace DiscImageChef.DiscImages case MediaType.ThreeDO: case MediaType.VCD: case MediaType.VCDHD: - case MediaType.MilCD: return CDRWIN_DISK_TYPE_CD; + case MediaType.MilCD: + case MediaType.VideoNow: + case MediaType.VideoNowColor: + case MediaType.VideoNowXp: return CDRWIN_DISK_TYPE_CD; case MediaType.CDMRW: return CDRWIN_DISK_TYPE_CDMRW; case MediaType.CDRW: return CDRWIN_DISK_TYPE_CDRW; case MediaType.DVDPR: return CDRWIN_DISK_TYPE_DVDPR; diff --git a/DiscImageChef.DiscImages/CDRWin/Properties.cs b/DiscImageChef.DiscImages/CDRWin/Properties.cs index 6d7ec6d43..538032a73 100644 --- a/DiscImageChef.DiscImages/CDRWin/Properties.cs +++ b/DiscImageChef.DiscImages/CDRWin/Properties.cs @@ -120,7 +120,8 @@ namespace DiscImageChef.DiscImages MediaType.SuperCDROM2, MediaType.SVCD, MediaType.SVOD, MediaType.SATURNCD, MediaType.ThreeDO, MediaType.UDO, MediaType.UDO2, MediaType.UDO2_WORM, MediaType.UMD, MediaType.VCD, MediaType.VCDHD, MediaType.NeoGeoCD, MediaType.PCFX, MediaType.CDTV, MediaType.CD32, MediaType.Nuon, - MediaType.Playdia, MediaType.Pippin, MediaType.FMTOWNS, MediaType.MilCD + MediaType.Playdia, MediaType.Pippin, MediaType.FMTOWNS, MediaType.MilCD, MediaType.VideoNow, + MediaType.VideoNowColor, MediaType.VideoNowXp }; public IEnumerable<(string name, Type type, string description, object @default)> SupportedOptions => new[] {("separate", typeof(bool), "Write each track to a separate file.", (object)false)}; diff --git a/DiscImageChef.DiscImages/CloneCD/Properties.cs b/DiscImageChef.DiscImages/CloneCD/Properties.cs index d39add930..9fa785e22 100644 --- a/DiscImageChef.DiscImages/CloneCD/Properties.cs +++ b/DiscImageChef.DiscImages/CloneCD/Properties.cs @@ -68,7 +68,8 @@ namespace DiscImageChef.DiscImages MediaType.PS1CD, MediaType.PS2CD, MediaType.SuperCDROM2, MediaType.SVCD, MediaType.SATURNCD, MediaType.ThreeDO, MediaType.VCD, MediaType.VCDHD, MediaType.NeoGeoCD, MediaType.PCFX, MediaType.CDTV, MediaType.CD32, MediaType.Nuon, MediaType.Playdia, MediaType.Pippin, - MediaType.FMTOWNS, MediaType.MilCD + MediaType.FMTOWNS, MediaType.MilCD, MediaType.VideoNow, MediaType.VideoNowColor, + MediaType.VideoNowXp }; public IEnumerable<(string name, Type type, string description, object @default)> SupportedOptions => new (string name, Type type, string description, object @default)[] { }; diff --git a/DiscImageChef.DiscImages/DiscImageChef/Helpers.cs b/DiscImageChef.DiscImages/DiscImageChef/Helpers.cs index fea84e8d2..2027025af 100644 --- a/DiscImageChef.DiscImages/DiscImageChef/Helpers.cs +++ b/DiscImageChef.DiscImages/DiscImageChef/Helpers.cs @@ -215,7 +215,10 @@ namespace DiscImageChef.DiscImages case MediaType.Playdia: case MediaType.Pippin: case MediaType.FMTOWNS: - case MediaType.MilCD: return XmlMediaType.OpticalDisc; + case MediaType.MilCD: + case MediaType.VideoNow: + case MediaType.VideoNowColor: + case MediaType.VideoNowXp: return XmlMediaType.OpticalDisc; default: return XmlMediaType.BlockMedia; } } diff --git a/DiscImageChef.DiscImages/DiscImageChef/Write.cs b/DiscImageChef.DiscImages/DiscImageChef/Write.cs index 47128532b..0d8dcf748 100644 --- a/DiscImageChef.DiscImages/DiscImageChef/Write.cs +++ b/DiscImageChef.DiscImages/DiscImageChef/Write.cs @@ -996,9 +996,12 @@ namespace DiscImageChef.DiscImages ) currentBlockHeader.compression = CompressionType.Flac; // JaguarCD stores data in audio tracks. FLAC is too inefficient, use LZMA there. - if(imageInfo.MediaType == MediaType.JaguarCD && trk.TrackType == TrackType.Audio && - !nocompress && - currentBlockHeader.compression == CompressionType.Flac && + // VideoNow stores video in audio tracks, and LZMA works better too. + if((imageInfo.MediaType == MediaType.JaguarCD || imageInfo.MediaType == MediaType.VideoNow || + imageInfo.MediaType == MediaType.VideoNowColor || imageInfo.MediaType == MediaType.VideoNowXp) && + trk.TrackType == TrackType.Audio && + !nocompress && + currentBlockHeader.compression == CompressionType.Flac && trk.TrackSession > 1) currentBlockHeader.compression = CompressionType.Lzma; blockStream = new MemoryStream(); diff --git a/DiscImageChef.Gui/Forms/frmDump.xeto.cs b/DiscImageChef.Gui/Forms/frmDump.xeto.cs index 54cc9cd6d..15badeb3a 100644 --- a/DiscImageChef.Gui/Forms/frmDump.xeto.cs +++ b/DiscImageChef.Gui/Forms/frmDump.xeto.cs @@ -59,7 +59,7 @@ namespace DiscImageChef.Gui.Forms { public class frmDump : Form { - string devicePath; + readonly string devicePath; string outputPrefix; Resume resume; CICMMetadataType sidecar; @@ -167,6 +167,9 @@ namespace DiscImageChef.Gui.Forms case MediaType.CD32: case MediaType.Playdia: case MediaType.Pippin: + case MediaType.VideoNow: + case MediaType.VideoNowColor: + case MediaType.VideoNowXp: chkTrack1Pregap.Visible = true; break; default: diff --git a/templates/dicformat.bt b/templates/dicformat.bt index fac5ccc83..846e32363 100644 --- a/templates/dicformat.bt +++ b/templates/dicformat.bt @@ -544,6 +544,10 @@ enum MediaType FD32MB = 732, RDX = 733, RDX320 = 734, + + VideoNow = 740, + VideoNowColor = 741, + VideoNowXp = 742 }; enum CompressionType