mirror of
https://github.com/aaru-dps/Aaru.git
synced 2025-12-16 19:24:25 +00:00
Migrate server from ASP.NET Webforms to MVC.
This commit is contained in:
36
.idea/.idea.DiscImageChef/.idea/contentModel.xml
generated
36
.idea/.idea.DiscImageChef/.idea/contentModel.xml
generated
@@ -1784,6 +1784,7 @@
|
||||
<e p="App.config" t="Include" />
|
||||
<e p="App_Start" t="Include">
|
||||
<e p="Ata.cs" t="Include" />
|
||||
<e p="RouteConfig.cs" t="Include" />
|
||||
<e p="ScsiEvpd.cs" t="Include" />
|
||||
<e p="ScsiInquiry.cs" t="Include" />
|
||||
<e p="ScsiMmcFeatures.cs" t="Include" />
|
||||
@@ -1794,15 +1795,13 @@
|
||||
<e p="TestedMedia.cs" t="Include" />
|
||||
<e p="WebApiConfig.cs" t="Include" />
|
||||
</e>
|
||||
<e p="Changelog.aspx" t="Include" />
|
||||
<e p="Controllers" t="Include">
|
||||
<e p="HomeController.cs" t="Include" />
|
||||
<e p="ReportController.cs" t="Include" />
|
||||
<e p="StatsController.cs" t="Include" />
|
||||
<e p="UploadReportController.cs" t="Include" />
|
||||
<e p="UploadStatsController.cs" t="Include" />
|
||||
</e>
|
||||
<e p="DONATING.aspx" t="Include" />
|
||||
<e p="Default.aspx" t="Include" />
|
||||
<e p="Default.aspx.cs" t="Include" />
|
||||
<e p="Default.aspx.designer.cs" t="Include" />
|
||||
<e p="DiscImageChef.Server.csproj" t="IncludeRecursive" />
|
||||
<e p="Global.asax" t="Include" />
|
||||
<e p="Global.asax.cs" t="Include" />
|
||||
@@ -1844,11 +1843,13 @@
|
||||
<e p="Command.cs" t="Include" />
|
||||
<e p="Context.cs" t="Include" />
|
||||
<e p="Device.cs" t="Include" />
|
||||
<e p="DeviceItem.cs" t="Include" />
|
||||
<e p="DeviceStat.cs" t="Include" />
|
||||
<e p="Filesystem.cs" t="Include" />
|
||||
<e p="Filter.cs" t="Include" />
|
||||
<e p="Media.cs" t="Include" />
|
||||
<e p="MediaFormat.cs" t="Include" />
|
||||
<e p="MediaItem.cs" t="Include" />
|
||||
<e p="OperatingSystem.cs" t="Include" />
|
||||
<e p="Partition.cs" t="Include" />
|
||||
<e p="UploadedReport.cs" t="Include" />
|
||||
@@ -1859,19 +1860,30 @@
|
||||
<e p="Reports" t="Include">
|
||||
<e p=".htaccess" t="Include" />
|
||||
</e>
|
||||
<e p="Statistics.aspx" t="Include" />
|
||||
<e p="Statistics.aspx.cs" t="Include" />
|
||||
<e p="Statistics.aspx.designer.cs" t="Include" />
|
||||
<e p="TODO.aspx" t="Include" />
|
||||
<e p="ViewReport.aspx" t="Include" />
|
||||
<e p="ViewReport.aspx.cs" t="Include" />
|
||||
<e p="ViewReport.aspx.designer.cs" t="Include" />
|
||||
<e p="Views" t="Include">
|
||||
<e p="Home" t="Include">
|
||||
<e p="Changelog.cshtml" t="Include" />
|
||||
<e p="DONATING.cshtml" t="Include" />
|
||||
<e p="Index.cshtml" t="Include" />
|
||||
<e p="TODO.cshtml" t="Include" />
|
||||
</e>
|
||||
<e p="Report" t="Include">
|
||||
<e p="View.cshtml" t="Include" />
|
||||
</e>
|
||||
<e p="Stats" t="Include">
|
||||
<e p="Index.cshtml" t="Include" />
|
||||
</e>
|
||||
<e p="Web.config" t="Include" />
|
||||
</e>
|
||||
<e p="Web.Debug.config" t="Include" />
|
||||
<e p="Web.Release.config" t="Include" />
|
||||
<e p="Web.config" t="Include" />
|
||||
<e p="bin" t="ExcludeRecursive" />
|
||||
<e p="docs" t="Include">
|
||||
<e p="Changelog.md" t="Include" />
|
||||
<e p="DONATING.md" t="Include" />
|
||||
<e p="README.md" t="Include" />
|
||||
<e p="TODO.md" t="Include" />
|
||||
</e>
|
||||
<e p="dos.css" t="Include" />
|
||||
<e p="int10h.org" t="Include">
|
||||
|
||||
16
DiscImageChef.Server/App_Start/RouteConfig.cs
Normal file
16
DiscImageChef.Server/App_Start/RouteConfig.cs
Normal file
@@ -0,0 +1,16 @@
|
||||
using System.Web.Mvc;
|
||||
using System.Web.Routing;
|
||||
|
||||
namespace DiscImageChef.Server
|
||||
{
|
||||
public class RouteConfig
|
||||
{
|
||||
public static void RegisterRoutes(RouteCollection routes)
|
||||
{
|
||||
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
|
||||
|
||||
routes.MapRoute("Default", "{controller}/{action}/{id}",
|
||||
new {controller = "Home", action = "Index", id = UrlParameter.Optional});
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,69 +0,0 @@
|
||||
<%@ Page Language="C#" %>
|
||||
<%@ Register TagPrefix="velyo" Namespace="Velyo.AspNet.Markdown" Assembly="Velyo.AspNet.Markdown" %>
|
||||
<%--
|
||||
// /***************************************************************************
|
||||
// The Disc Image Chef
|
||||
// ----------------------------------------------------------------------------
|
||||
//
|
||||
// Filename : Changelog.aspx
|
||||
// Author(s) : Natalia Portillo <claunia@claunia.com>
|
||||
//
|
||||
// Component : DiscImageChef Server.
|
||||
//
|
||||
// --[ Description ] ----------------------------------------------------------
|
||||
//
|
||||
// Renders Changelog.md.
|
||||
//
|
||||
// --[ License ] --------------------------------------------------------------
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify
|
||||
// it under the terms of the GNU Lesser General Public License as
|
||||
// published by the Free Software Foundation; either version 2.1 of the
|
||||
// License, or (at your option) any later version.
|
||||
//
|
||||
// This library is distributed in the hope that it will be useful, but
|
||||
// WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with this library; if not, see <http://www.gnu.org/licenses/>.
|
||||
//
|
||||
// ----------------------------------------------------------------------------
|
||||
// Copyright © 2011-2018 Natalia Portillo
|
||||
// ****************************************************************************/
|
||||
--%>
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<meta charset="UTF-8">
|
||||
<head runat="server">
|
||||
<link href="dos.css"
|
||||
rel="stylesheet"
|
||||
type="text/css" />
|
||||
<title>DiscImageChef's TODO</title>
|
||||
<!-- Global site tag (gtag.js) - Google Analytics -->
|
||||
<script async
|
||||
src="https://www.googletagmanager.com/gtag/js?id=UA-111466173-1"></script>
|
||||
<script>
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
|
||||
function gtag() { dataLayer.push(arguments); }
|
||||
|
||||
gtag('js', new Date());
|
||||
|
||||
gtag('config', 'UA-111466173-1');
|
||||
</script>
|
||||
</head>
|
||||
<body id="body"
|
||||
runat="server">
|
||||
<p>
|
||||
<a href="Default.aspx">Return to main page.</a><br />
|
||||
DiscImageChef list of changes:
|
||||
</p>
|
||||
<div>
|
||||
<velyo:MarkdownContent ID="todo"
|
||||
Path="~/docs/Changelog.md"
|
||||
runat="server" />
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
80
DiscImageChef.Server/Controllers/HomeController.cs
Normal file
80
DiscImageChef.Server/Controllers/HomeController.cs
Normal file
@@ -0,0 +1,80 @@
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Reflection;
|
||||
using System.Web.Hosting;
|
||||
using System.Web.Mvc;
|
||||
using Markdig;
|
||||
|
||||
namespace DiscImageChef.Server.Controllers
|
||||
{
|
||||
public class HomeController : Controller
|
||||
{
|
||||
public ActionResult Index()
|
||||
{
|
||||
StreamReader sr =
|
||||
new StreamReader(Path.Combine(HostingEnvironment.MapPath("~") ?? throw new InvalidOperationException(),
|
||||
"docs", "README.md"));
|
||||
string mdcontent = sr.ReadToEnd();
|
||||
sr.Close();
|
||||
|
||||
mdcontent = mdcontent.Replace(".md)", ")");
|
||||
|
||||
ViewBag.Markdown = Markdown.ToHtml(mdcontent);
|
||||
|
||||
ViewBag.lblVersion = Assembly.GetExecutingAssembly().GetName().Version.ToString();
|
||||
|
||||
return View();
|
||||
}
|
||||
|
||||
public ActionResult Changelog()
|
||||
{
|
||||
StreamReader sr =
|
||||
new StreamReader(Path.Combine(HostingEnvironment.MapPath("~") ?? throw new InvalidOperationException(),
|
||||
"docs", "Changelog.md"));
|
||||
string mdcontent = sr.ReadToEnd();
|
||||
sr.Close();
|
||||
|
||||
mdcontent = mdcontent.Replace(".md)", ")");
|
||||
|
||||
ViewBag.Markdown = Markdown.ToHtml(mdcontent);
|
||||
|
||||
ViewBag.lblVersion = Assembly.GetExecutingAssembly().GetName().Version.ToString();
|
||||
|
||||
return View();
|
||||
}
|
||||
|
||||
public ActionResult DONATING()
|
||||
{
|
||||
StreamReader sr =
|
||||
new StreamReader(Path.Combine(HostingEnvironment.MapPath("~") ?? throw new InvalidOperationException(),
|
||||
"docs", "DONATING.md"));
|
||||
string mdcontent = sr.ReadToEnd();
|
||||
sr.Close();
|
||||
|
||||
mdcontent = mdcontent.Replace(".md)", ")");
|
||||
|
||||
ViewBag.Markdown = Markdown.ToHtml(mdcontent);
|
||||
|
||||
ViewBag.lblVersion = Assembly.GetExecutingAssembly().GetName().Version.ToString();
|
||||
|
||||
return View();
|
||||
}
|
||||
|
||||
public ActionResult TODO()
|
||||
{
|
||||
StreamReader sr =
|
||||
new StreamReader(Path.Combine(HostingEnvironment.MapPath("~") ?? throw new InvalidOperationException(),
|
||||
"docs", "TODO.md"));
|
||||
string mdcontent = sr.ReadToEnd();
|
||||
sr.Close();
|
||||
|
||||
mdcontent = mdcontent.Replace(".md)", ")");
|
||||
|
||||
ViewBag.Markdown = Markdown.ToHtml(mdcontent);
|
||||
|
||||
ViewBag.lblVersion = Assembly.GetExecutingAssembly().GetName().Version.ToString();
|
||||
|
||||
return View();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,75 +1,37 @@
|
||||
// /***************************************************************************
|
||||
// The Disc Image Chef
|
||||
// ----------------------------------------------------------------------------
|
||||
//
|
||||
// Filename : ViewReport.aspx.cs
|
||||
// Author(s) : Natalia Portillo <claunia@claunia.com>
|
||||
//
|
||||
// Component : DiscImageChef Server.
|
||||
//
|
||||
// --[ Description ] ----------------------------------------------------------
|
||||
//
|
||||
// Renders a device report.
|
||||
//
|
||||
// --[ License ] --------------------------------------------------------------
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify
|
||||
// it under the terms of the GNU Lesser General Public License as
|
||||
// published by the Free Software Foundation; either version 2.1 of the
|
||||
// License, or (at your option) any later version.
|
||||
//
|
||||
// This library is distributed in the hope that it will be useful, but
|
||||
// WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with this library; if not, see <http://www.gnu.org/licenses/>.
|
||||
//
|
||||
// ----------------------------------------------------------------------------
|
||||
// Copyright © 2011-2018 Natalia Portillo
|
||||
// ****************************************************************************/
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Web;
|
||||
using System.Web.UI;
|
||||
using System.Web.Mvc;
|
||||
using System.Web.Routing;
|
||||
using DiscImageChef.CommonTypes.Metadata;
|
||||
using DiscImageChef.Decoders.PCMCIA;
|
||||
using DiscImageChef.Decoders.SCSI;
|
||||
using DiscImageChef.Server.Models;
|
||||
using Tuple = DiscImageChef.Decoders.PCMCIA.Tuple;
|
||||
|
||||
namespace DiscImageChef.Server
|
||||
namespace DiscImageChef.Server.Controllers
|
||||
{
|
||||
/// <summary>
|
||||
/// Renders the specified report from the server
|
||||
/// </summary>
|
||||
public partial class ViewReport : Page
|
||||
public class ReportController : Controller
|
||||
{
|
||||
protected void Page_Load(object sender, EventArgs e)
|
||||
public ActionResult Index()
|
||||
{
|
||||
return RedirectToAction("View", "Report", new RouteValueDictionary {{"id", 1}});
|
||||
}
|
||||
|
||||
public ActionResult View(int? id)
|
||||
{
|
||||
if(id == null || id <= 0) return Content("Incorrect device report request");
|
||||
|
||||
try
|
||||
{
|
||||
if(!int.TryParse(Request.QueryString["id"], out int id) || id <= 0)
|
||||
{
|
||||
content.InnerHtml = "<b>Incorrect device report request</b>";
|
||||
return;
|
||||
}
|
||||
|
||||
DicServerContext ctx = new DicServerContext();
|
||||
Device report = ctx.Devices.FirstOrDefault(d => d.Id == id);
|
||||
|
||||
if(report is null)
|
||||
{
|
||||
content.InnerHtml = "<b>Cannot find requested report</b>";
|
||||
return;
|
||||
}
|
||||
if(report is null) return Content("Cannot find requested report");
|
||||
|
||||
lblManufacturer.Text = report.Manufacturer;
|
||||
lblModel.Text = report.Model;
|
||||
lblRevision.Text = report.Revision;
|
||||
ViewBag.lblManufacturer = report.Manufacturer;
|
||||
ViewBag.lblModel = report.Model;
|
||||
ViewBag.lblRevision = report.Revision;
|
||||
|
||||
if(report.USB != null)
|
||||
{
|
||||
@@ -93,33 +55,40 @@ namespace DiscImageChef.Server
|
||||
usbVendorDescription = dbProduct.Vendor.Vendor;
|
||||
}
|
||||
|
||||
lblUsbManufacturer.Text = HttpUtility.HtmlEncode(report.USB.Manufacturer);
|
||||
lblUsbProduct.Text = HttpUtility.HtmlEncode(report.USB.Product);
|
||||
lblUsbVendor.Text = $"0x{report.USB.VendorID:x4}";
|
||||
if(usbVendorDescription != null)
|
||||
lblUsbVendorDescription.Text = $"({HttpUtility.HtmlEncode(usbVendorDescription)})";
|
||||
lblUsbProductId.Text = $"0x{report.USB.ProductID:x4}";
|
||||
if(usbProductDescription != null)
|
||||
lblUsbProductDescription.Text = $"({HttpUtility.HtmlEncode(usbProductDescription)})";
|
||||
ViewBag.UsbItem = new Item
|
||||
{
|
||||
Manufacturer = report.USB.Manufacturer,
|
||||
Product = report.USB.Product,
|
||||
VendorDescription =
|
||||
usbVendorDescription != null
|
||||
? $"0x{report.USB.VendorID:x4} ({usbVendorDescription})"
|
||||
: $"0x{report.USB.VendorID:x4}",
|
||||
ProductDescription = usbProductDescription != null
|
||||
? $"0x{report.USB.ProductID:x4} ({usbProductDescription})"
|
||||
: $"0x{report.USB.ProductID:x4}"
|
||||
};
|
||||
}
|
||||
else divUsb.Visible = false;
|
||||
|
||||
if(report.FireWire != null)
|
||||
{
|
||||
lblFirewireManufacturer.Text = HttpUtility.HtmlEncode(report.FireWire.Manufacturer);
|
||||
lblFirewireProduct.Text = HttpUtility.HtmlEncode(report.FireWire.Product);
|
||||
lblFirewireVendor.Text = $"0x{report.FireWire.VendorID:x8}";
|
||||
lblFirewireProductId.Text = $"0x{report.FireWire.ProductID:x8}";
|
||||
}
|
||||
else divFirewire.Visible = false;
|
||||
ViewBag.FireWireItem = new Item
|
||||
{
|
||||
Manufacturer = report.FireWire.Manufacturer,
|
||||
Product = report.FireWire.Product,
|
||||
VendorDescription = $"0x{report.FireWire.VendorID:x8}",
|
||||
ProductDescription = $"0x{report.FireWire.ProductID:x8}"
|
||||
};
|
||||
|
||||
if(report.PCMCIA != null)
|
||||
{
|
||||
lblPcmciaManufacturer.Text = HttpUtility.HtmlEncode(report.PCMCIA.Manufacturer);
|
||||
lblPcmciaProduct.Text = HttpUtility.HtmlEncode(report.PCMCIA.ProductName);
|
||||
lblPcmciaManufacturerCode.Text = $"0x{report.PCMCIA.ManufacturerCode:x4}";
|
||||
lblPcmciaCardCode.Text = $"0x{report.PCMCIA.CardCode:x4}";
|
||||
lblPcmciaCompliance.Text = HttpUtility.HtmlEncode(report.PCMCIA.Compliance);
|
||||
ViewBag.PcmciaItem = new PcmciaItem
|
||||
{
|
||||
Manufacturer = report.PCMCIA.Manufacturer,
|
||||
Product = report.PCMCIA.ProductName,
|
||||
VendorDescription = $"0x{report.PCMCIA.ManufacturerCode:x4}",
|
||||
ProductDescription = $"0x{report.PCMCIA.CardCode:x4}",
|
||||
Compliance = report.PCMCIA.Compliance
|
||||
};
|
||||
|
||||
Tuple[] tuples = CIS.GetTuples(report.PCMCIA.CIS);
|
||||
if(tuples != null)
|
||||
{
|
||||
@@ -191,16 +160,9 @@ namespace DiscImageChef.Server
|
||||
break;
|
||||
}
|
||||
|
||||
if(decodedTuples.Count > 0)
|
||||
{
|
||||
repPcmciaTuples.DataSource = decodedTuples;
|
||||
repPcmciaTuples.DataBind();
|
||||
}
|
||||
else repPcmciaTuples.Visible = false;
|
||||
if(decodedTuples.Count > 0) ViewBag.repPcmciaTuples = decodedTuples;
|
||||
}
|
||||
else repPcmciaTuples.Visible = false;
|
||||
}
|
||||
else divPcmcia.Visible = false;
|
||||
|
||||
bool removable = true;
|
||||
List<TestedMedia> testedMedia = null;
|
||||
@@ -217,26 +179,27 @@ namespace DiscImageChef.Server
|
||||
|
||||
if(report.ATAPI != null)
|
||||
{
|
||||
lblAtapi.Text = "PI";
|
||||
ataReport = report.ATAPI;
|
||||
atapi = true;
|
||||
ViewBag.AtaItem = "ATAPI";
|
||||
ataReport = report.ATAPI;
|
||||
atapi = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
ViewBag.AtaItem = "ATA";
|
||||
ataReport = report.ATA;
|
||||
}
|
||||
else ataReport = report.ATA;
|
||||
|
||||
bool cfa = report.CompactFlash;
|
||||
|
||||
if(atapi && !cfa) lblAtaDeviceType.Text = "ATAPI device";
|
||||
else if(!atapi && cfa) lblAtaDeviceType.Text = "CompactFlash device";
|
||||
else lblAtaDeviceType.Text = "ATA device";
|
||||
if(atapi && !cfa) ViewBag.lblAtaDeviceType = "ATAPI device";
|
||||
else if(!atapi && cfa) ViewBag.lblAtaDeviceType = "CompactFlash device";
|
||||
else ViewBag.lblAtaDeviceType = "ATA device";
|
||||
|
||||
Ata.Report(ataReport, cfa, atapi, ref removable, ref ataOneValue, ref ataTwoValue, ref testedMedia);
|
||||
|
||||
repAtaOne.DataSource = ataOneValue;
|
||||
repAtaOne.DataBind();
|
||||
repAtaTwo.DataSource = ataTwoValue;
|
||||
repAtaTwo.DataBind();
|
||||
ViewBag.repAtaOne = ataOneValue;
|
||||
ViewBag.repAtaTwo = ataTwoValue;
|
||||
}
|
||||
else divAta.Visible = false;
|
||||
|
||||
if(report.SCSI != null)
|
||||
{
|
||||
@@ -248,11 +211,11 @@ namespace DiscImageChef.Server
|
||||
if(report.SCSI.Inquiry != null)
|
||||
{
|
||||
Inquiry.SCSIInquiry inq = report.SCSI.Inquiry.Value;
|
||||
lblScsiVendor.Text = VendorString.Prettify(vendorId) != vendorId
|
||||
? $"{vendorId} ({VendorString.Prettify(vendorId)})"
|
||||
: vendorId;
|
||||
lblScsiProduct.Text = StringHandlers.CToString(inq.ProductIdentification);
|
||||
lblScsiRevision.Text = StringHandlers.CToString(inq.ProductRevisionLevel);
|
||||
ViewBag.lblScsiVendor = VendorString.Prettify(vendorId) != vendorId
|
||||
? $"{vendorId} ({VendorString.Prettify(vendorId)})"
|
||||
: vendorId;
|
||||
ViewBag.lblScsiProduct = StringHandlers.CToString(inq.ProductIdentification);
|
||||
ViewBag.lblScsiRevision = StringHandlers.CToString(inq.ProductRevisionLevel);
|
||||
}
|
||||
|
||||
scsiOneValue.AddRange(ScsiInquiry.Report(report.SCSI.Inquiry));
|
||||
@@ -269,25 +232,11 @@ namespace DiscImageChef.Server
|
||||
ScsiModeSense.Report(report.SCSI.ModeSense, vendorId, devType, ref scsiOneValue, ref modePages);
|
||||
}
|
||||
|
||||
if(modePages.Count > 0)
|
||||
{
|
||||
repModeSense.DataSource = modePages;
|
||||
repModeSense.DataBind();
|
||||
}
|
||||
else divScsiModeSense.Visible = false;
|
||||
if(modePages.Count > 0) ViewBag.repModeSense = modePages;
|
||||
|
||||
if(report.SCSI.EVPDPages != null) ScsiEvpd.Report(report.SCSI.EVPDPages, vendorId, ref evpdPages);
|
||||
|
||||
if(evpdPages.Count > 0)
|
||||
{
|
||||
repEvpd.DataSource = evpdPages;
|
||||
repEvpd.DataBind();
|
||||
}
|
||||
else divScsiEvpd.Visible = false;
|
||||
|
||||
divScsiMmcMode.Visible = false;
|
||||
divScsiMmcFeatures.Visible = false;
|
||||
divScsiSsc.Visible = false;
|
||||
if(evpdPages.Count > 0) ViewBag.repEvpd = evpdPages;
|
||||
|
||||
if(report.SCSI.MultiMediaDevice != null)
|
||||
{
|
||||
@@ -297,52 +246,34 @@ namespace DiscImageChef.Server
|
||||
{
|
||||
List<string> mmcModeOneValue = new List<string>();
|
||||
ScsiMmcMode.Report(report.SCSI.MultiMediaDevice.ModeSense2A, ref mmcModeOneValue);
|
||||
if(mmcModeOneValue.Count > 0)
|
||||
{
|
||||
divScsiMmcMode.Visible = true;
|
||||
repScsiMmcMode.DataSource = mmcModeOneValue;
|
||||
repScsiMmcMode.DataBind();
|
||||
}
|
||||
if(mmcModeOneValue.Count > 0) ViewBag.repScsiMmcMode = mmcModeOneValue;
|
||||
}
|
||||
|
||||
if(report.SCSI.MultiMediaDevice.Features != null)
|
||||
{
|
||||
List<string> mmcFeaturesOneValue = new List<string>();
|
||||
ScsiMmcFeatures.Report(report.SCSI.MultiMediaDevice.Features, ref mmcFeaturesOneValue);
|
||||
if(mmcFeaturesOneValue.Count > 0)
|
||||
{
|
||||
divScsiMmcFeatures.Visible = true;
|
||||
repScsiMmcFeatures.DataSource = mmcFeaturesOneValue;
|
||||
repScsiMmcFeatures.DataBind();
|
||||
}
|
||||
if(mmcFeaturesOneValue.Count > 0) ViewBag.repScsiMmcFeatures = mmcFeaturesOneValue;
|
||||
}
|
||||
}
|
||||
else if(report.SCSI.SequentialDevice != null)
|
||||
{
|
||||
divScsiSsc.Visible = true;
|
||||
ViewBag.divScsiSscVisible = true;
|
||||
|
||||
lblScsiSscGranularity.Text =
|
||||
ViewBag.lblScsiSscGranularity =
|
||||
report.SCSI.SequentialDevice.BlockSizeGranularity?.ToString() ?? "Unspecified";
|
||||
|
||||
lblScsiSscMaxBlock.Text =
|
||||
ViewBag.lblScsiSscMaxBlock =
|
||||
report.SCSI.SequentialDevice.MaxBlockLength?.ToString() ?? "Unspecified";
|
||||
|
||||
lblScsiSscMinBlock.Text =
|
||||
ViewBag.lblScsiSscMinBlock =
|
||||
report.SCSI.SequentialDevice.MinBlockLength?.ToString() ?? "Unspecified";
|
||||
|
||||
if(report.SCSI.SequentialDevice.SupportedDensities != null)
|
||||
{
|
||||
repScsiSscDensities.DataSource = report.SCSI.SequentialDevice.SupportedDensities;
|
||||
repScsiSscDensities.DataBind();
|
||||
}
|
||||
else repScsiSscDensities.Visible = false;
|
||||
ViewBag.repScsiSscDensities = report.SCSI.SequentialDevice.SupportedDensities;
|
||||
|
||||
if(report.SCSI.SequentialDevice.SupportedMediaTypes != null)
|
||||
{
|
||||
repScsiSscMedias.DataSource = report.SCSI.SequentialDevice.SupportedMediaTypes;
|
||||
repScsiSscMedias.DataBind();
|
||||
}
|
||||
else repScsiSscMedias.Visible = false;
|
||||
ViewBag.repScsiSscMedias = report.SCSI.SequentialDevice.SupportedMediaTypes;
|
||||
|
||||
if(report.SCSI.SequentialDevice.TestedMedia != null)
|
||||
{
|
||||
@@ -350,13 +281,10 @@ namespace DiscImageChef.Server
|
||||
SscTestedMedia.Report(report.SCSI.SequentialDevice.TestedMedia, ref mediaOneValue);
|
||||
if(mediaOneValue.Count > 0)
|
||||
{
|
||||
sscMedia = true;
|
||||
repTestedMedia.DataSource = mediaOneValue;
|
||||
repTestedMedia.DataBind();
|
||||
sscMedia = true;
|
||||
ViewBag.repTestedMedia = mediaOneValue;
|
||||
}
|
||||
else divTestedMedia.Visible = false;
|
||||
}
|
||||
else divTestedMedia.Visible = false;
|
||||
}
|
||||
else if(report.SCSI.ReadCapabilities != null)
|
||||
{
|
||||
@@ -410,10 +338,8 @@ namespace DiscImageChef.Server
|
||||
}
|
||||
else testedMedia = report.SCSI.RemovableMedias;
|
||||
|
||||
repScsi.DataSource = scsiOneValue;
|
||||
repScsi.DataBind();
|
||||
ViewBag.repScsi = scsiOneValue;
|
||||
}
|
||||
else divScsi.Visible = false;
|
||||
|
||||
if(report.MultiMediaCard != null)
|
||||
{
|
||||
@@ -447,10 +373,8 @@ namespace DiscImageChef.Server
|
||||
mmcOneValue.Add("");
|
||||
}
|
||||
|
||||
repMMC.DataSource = mmcOneValue;
|
||||
repMMC.DataBind();
|
||||
ViewBag.repMMC = mmcOneValue;
|
||||
}
|
||||
else divMMC.Visible = false;
|
||||
|
||||
if(report.SecureDigital != null)
|
||||
{
|
||||
@@ -484,32 +408,38 @@ namespace DiscImageChef.Server
|
||||
sdOneValue.Add("");
|
||||
}
|
||||
|
||||
repSD.DataSource = sdOneValue;
|
||||
repSD.DataBind();
|
||||
ViewBag.repSD = sdOneValue;
|
||||
}
|
||||
else divSD.Visible = false;
|
||||
|
||||
if(removable && !sscMedia && testedMedia != null)
|
||||
{
|
||||
List<string> mediaOneValue = new List<string>();
|
||||
App_Start.TestedMedia.Report(testedMedia, ref mediaOneValue);
|
||||
if(mediaOneValue.Count > 0)
|
||||
{
|
||||
divTestedMedia.Visible = true;
|
||||
repTestedMedia.DataSource = mediaOneValue;
|
||||
repTestedMedia.DataBind();
|
||||
}
|
||||
else divTestedMedia.Visible = false;
|
||||
if(mediaOneValue.Count > 0) ViewBag.repTestedMedia = mediaOneValue;
|
||||
}
|
||||
else divTestedMedia.Visible &= sscMedia;
|
||||
}
|
||||
catch(Exception)
|
||||
{
|
||||
content.InnerHtml = "<b>Could not load device report</b>";
|
||||
#if DEBUG
|
||||
throw;
|
||||
#endif
|
||||
return Content("Could not load device report");
|
||||
}
|
||||
|
||||
return View();
|
||||
}
|
||||
}
|
||||
|
||||
public class Item
|
||||
{
|
||||
public string Manufacturer;
|
||||
public string Product;
|
||||
public string ProductDescription;
|
||||
public string VendorDescription;
|
||||
}
|
||||
|
||||
public class PcmciaItem : Item
|
||||
{
|
||||
public string Compliance;
|
||||
}
|
||||
}
|
||||
@@ -1,8 +1,8 @@
|
||||
// /***************************************************************************
|
||||
// /***************************************************************************
|
||||
// The Disc Image Chef
|
||||
// ----------------------------------------------------------------------------
|
||||
//
|
||||
// Filename : Statistics.aspx.cs
|
||||
// Filename : StatisticsController.cs
|
||||
// Author(s) : Natalia Portillo <claunia@claunia.com>
|
||||
//
|
||||
// Component : DiscImageChef Server.
|
||||
@@ -37,7 +37,7 @@ using System.Linq;
|
||||
using System.Reflection;
|
||||
using System.Threading;
|
||||
using System.Web.Hosting;
|
||||
using System.Web.UI;
|
||||
using System.Web.Mvc;
|
||||
using System.Xml;
|
||||
using System.Xml.Serialization;
|
||||
using DiscImageChef.CommonTypes.Interop;
|
||||
@@ -47,12 +47,12 @@ using OperatingSystem = DiscImageChef.Server.Models.OperatingSystem;
|
||||
using PlatformID = DiscImageChef.CommonTypes.Interop.PlatformID;
|
||||
using Version = DiscImageChef.Server.Models.Version;
|
||||
|
||||
namespace DiscImageChef.Server
|
||||
namespace DiscImageChef.Server.Controllers
|
||||
{
|
||||
/// <summary>
|
||||
/// Renders a page with statistics, list of media type, devices, etc
|
||||
/// </summary>
|
||||
public partial class Statistics : Page
|
||||
public class StatsController : Controller
|
||||
{
|
||||
DicServerContext ctx = new DicServerContext();
|
||||
List<DeviceItem> devices;
|
||||
@@ -61,14 +61,16 @@ namespace DiscImageChef.Server
|
||||
List<NameValueStats> versions;
|
||||
List<MediaItem> virtualMedia;
|
||||
|
||||
protected void Page_Load(object sender, EventArgs e)
|
||||
public ActionResult Index()
|
||||
{
|
||||
lblVersion.Text = Assembly.GetExecutingAssembly().GetName().Version.ToString();
|
||||
ViewBag.Version = Assembly.GetExecutingAssembly().GetName().Version.ToString();
|
||||
|
||||
try
|
||||
{
|
||||
if(File.Exists(Path.Combine(HostingEnvironment.MapPath("~") ?? throw new InvalidOperationException(),
|
||||
"Statistics", "Statistics.xml")))
|
||||
if(
|
||||
System.IO.File
|
||||
.Exists(Path.Combine(HostingEnvironment.MapPath("~") ?? throw new InvalidOperationException(),
|
||||
"Statistics", "Statistics.xml")))
|
||||
try
|
||||
{
|
||||
Stats statistics = new Stats();
|
||||
@@ -82,8 +84,9 @@ namespace DiscImageChef.Server
|
||||
|
||||
StatsConverter.Convert(statistics);
|
||||
|
||||
File.Delete(Path.Combine(HostingEnvironment.MapPath("~") ?? throw new InvalidOperationException(),
|
||||
"Statistics", "Statistics.xml"));
|
||||
System.IO.File
|
||||
.Delete(Path.Combine(HostingEnvironment.MapPath("~") ?? throw new InvalidOperationException(),
|
||||
"Statistics", "Statistics.xml"));
|
||||
}
|
||||
catch(XmlException)
|
||||
{
|
||||
@@ -101,10 +104,8 @@ namespace DiscImageChef.Server
|
||||
Value = nvs.Count
|
||||
});
|
||||
|
||||
repOperatingSystems.DataSource = operatingSystems.OrderBy(os => os.name).ToList();
|
||||
repOperatingSystems.DataBind();
|
||||
ViewBag.repOperatingSystems = operatingSystems.OrderBy(os => os.name).ToList();
|
||||
}
|
||||
else divOperatingSystems.Visible = false;
|
||||
|
||||
if(ctx.Versions.Any())
|
||||
{
|
||||
@@ -116,76 +117,57 @@ namespace DiscImageChef.Server
|
||||
Value = nvs.Count
|
||||
});
|
||||
|
||||
repVersions.DataSource = versions.OrderBy(ver => ver.name).ToList();
|
||||
repVersions.DataBind();
|
||||
ViewBag.repVersions = versions.OrderBy(ver => ver.name).ToList();
|
||||
}
|
||||
else divVersions.Visible = false;
|
||||
|
||||
if(ctx.Commands.Any())
|
||||
{
|
||||
lblAnalyze.Text = ctx.Commands.FirstOrDefault(c => c.Name == "analyze")?.Count.ToString() ?? "0";
|
||||
lblCompare.Text = ctx.Commands.FirstOrDefault(c => c.Name == "compare")?.Count.ToString() ?? "0";
|
||||
lblChecksum.Text = ctx.Commands.FirstOrDefault(c => c.Name == "checksum")?.Count.ToString() ?? "0";
|
||||
lblEntropy.Text = ctx.Commands.FirstOrDefault(c => c.Name == "entropy")?.Count.ToString() ?? "0";
|
||||
lblVerify.Text = ctx.Commands.FirstOrDefault(c => c.Name == "verify")?.Count.ToString() ?? "0";
|
||||
lblPrintHex.Text = ctx.Commands.FirstOrDefault(c => c.Name == "printhex")?.Count.ToString() ?? "0";
|
||||
lblDecode.Text = ctx.Commands.FirstOrDefault(c => c.Name == "decode")?.Count.ToString() ?? "0";
|
||||
lblDeviceInfo.Text = ctx.Commands.FirstOrDefault(c => c.Name == "device-info")?.Count.ToString() ??
|
||||
"0";
|
||||
lblMediaInfo.Text = ctx.Commands.FirstOrDefault(c => c.Name == "media-info")?.Count.ToString() ??
|
||||
"0";
|
||||
lblMediaScan.Text = ctx.Commands.FirstOrDefault(c => c.Name == "media-scan")?.Count.ToString() ??
|
||||
"0";
|
||||
lblFormats.Text = ctx.Commands.FirstOrDefault(c => c.Name == "formats")?.Count.ToString() ?? "0";
|
||||
lblBenchmark.Text =
|
||||
ViewBag.lblAnalyze = ctx.Commands.FirstOrDefault(c => c.Name == "analyze")?.Count.ToString() ?? "0";
|
||||
ViewBag.lblCompare = ctx.Commands.FirstOrDefault(c => c.Name == "compare")?.Count.ToString() ?? "0";
|
||||
ViewBag.lblChecksum =
|
||||
ctx.Commands.FirstOrDefault(c => c.Name == "checksum")?.Count.ToString() ?? "0";
|
||||
ViewBag.lblEntropy = ctx.Commands.FirstOrDefault(c => c.Name == "entropy")?.Count.ToString() ?? "0";
|
||||
ViewBag.lblVerify = ctx.Commands.FirstOrDefault(c => c.Name == "verify")?.Count.ToString() ?? "0";
|
||||
ViewBag.lblPrintHex =
|
||||
ctx.Commands.FirstOrDefault(c => c.Name == "printhex")?.Count.ToString() ?? "0";
|
||||
ViewBag.lblDecode = ctx.Commands.FirstOrDefault(c => c.Name == "decode")?.Count.ToString() ?? "0";
|
||||
ViewBag.lblDeviceInfo =
|
||||
ctx.Commands.FirstOrDefault(c => c.Name == "device-info")?.Count.ToString() ?? "0";
|
||||
ViewBag.lblMediaInfo = ctx.Commands.FirstOrDefault(c => c.Name == "media-info")?.Count.ToString() ??
|
||||
"0";
|
||||
ViewBag.lblMediaScan = ctx.Commands.FirstOrDefault(c => c.Name == "media-scan")?.Count.ToString() ??
|
||||
"0";
|
||||
ViewBag.lblFormats = ctx.Commands.FirstOrDefault(c => c.Name == "formats")?.Count.ToString() ?? "0";
|
||||
ViewBag.lblBenchmark =
|
||||
ctx.Commands.FirstOrDefault(c => c.Name == "benchmark")?.Count.ToString() ?? "0";
|
||||
lblCreateSidecar.Text =
|
||||
ViewBag.lblCreateSidecar =
|
||||
ctx.Commands.FirstOrDefault(c => c.Name == "create-sidecar")?.Count.ToString() ?? "0";
|
||||
lblDumpMedia.Text = ctx.Commands.FirstOrDefault(c => c.Name == "dump-media")?.Count.ToString() ??
|
||||
"0";
|
||||
lblDeviceReport.Text =
|
||||
ViewBag.lblDumpMedia = ctx.Commands.FirstOrDefault(c => c.Name == "dump-media")?.Count.ToString() ??
|
||||
"0";
|
||||
ViewBag.lblDeviceReport =
|
||||
ctx.Commands.FirstOrDefault(c => c.Name == "device-report")?.Count.ToString() ?? "0";
|
||||
lblLs.Text = ctx.Commands.FirstOrDefault(c => c.Name == "ls")?.Count.ToString() ?? "0";
|
||||
lblExtractFiles.Text =
|
||||
ViewBag.lblLs = ctx.Commands.FirstOrDefault(c => c.Name == "ls")?.Count.ToString() ?? "0";
|
||||
ViewBag.lblExtractFiles =
|
||||
ctx.Commands.FirstOrDefault(c => c.Name == "extract-files")?.Count.ToString() ?? "0";
|
||||
lblListDevices.Text =
|
||||
ViewBag.lblListDevices =
|
||||
ctx.Commands.FirstOrDefault(c => c.Name == "list-devices")?.Count.ToString() ?? "0";
|
||||
lblListEncodings.Text =
|
||||
ViewBag.lblListEncodings =
|
||||
ctx.Commands.FirstOrDefault(c => c.Name == "list-encodings")?.Count.ToString() ?? "0";
|
||||
lblConvertImage.Text =
|
||||
ViewBag.lblConvertImage =
|
||||
ctx.Commands.FirstOrDefault(c => c.Name == "convert-image")?.Count.ToString() ?? "0";
|
||||
lblImageInfo.Text = ctx.Commands.FirstOrDefault(c => c.Name == "image-info")?.Count.ToString() ??
|
||||
"0";
|
||||
ViewBag.lblImageInfo = ctx.Commands.FirstOrDefault(c => c.Name == "image-info")?.Count.ToString() ??
|
||||
"0";
|
||||
}
|
||||
else divCommands.Visible = false;
|
||||
|
||||
if(ctx.Filters.Any())
|
||||
{
|
||||
repFilters.DataSource = ctx.Filters.OrderBy(filter => filter.Name).ToList();
|
||||
repFilters.DataBind();
|
||||
}
|
||||
else divFilters.Visible = false;
|
||||
if(ctx.Filters.Any()) ViewBag.repFilters = ctx.Filters.OrderBy(filter => filter.Name).ToList();
|
||||
|
||||
if(ctx.MediaFormats.Any())
|
||||
{
|
||||
repMediaImages.DataSource = ctx.MediaFormats.OrderBy(filter => filter.Name).ToList();
|
||||
repMediaImages.DataBind();
|
||||
}
|
||||
else divMediaImages.Visible = false;
|
||||
ViewBag.repMediaImages = ctx.MediaFormats.OrderBy(filter => filter.Name).ToList();
|
||||
|
||||
if(ctx.Partitions.Any())
|
||||
{
|
||||
repPartitions.DataSource = ctx.Partitions.OrderBy(filter => filter.Name).ToList();
|
||||
repPartitions.DataBind();
|
||||
}
|
||||
else divPartitions.Visible = false;
|
||||
if(ctx.Partitions.Any()) ViewBag.repPartitions = ctx.Partitions.OrderBy(filter => filter.Name).ToList();
|
||||
|
||||
if(ctx.Filesystems.Any())
|
||||
{
|
||||
repFilesystems.DataSource = ctx.Filesystems.OrderBy(filter => filter.Name).ToList();
|
||||
repFilesystems.DataBind();
|
||||
}
|
||||
else divFilesystems.Visible = false;
|
||||
ViewBag.repFilesystems = ctx.Filesystems.OrderBy(filter => filter.Name).ToList();
|
||||
|
||||
if(ctx.Medias.Any())
|
||||
{
|
||||
@@ -210,25 +192,12 @@ namespace DiscImageChef.Server
|
||||
}
|
||||
|
||||
if(realMedia.Count > 0)
|
||||
{
|
||||
repRealMedia.DataSource =
|
||||
ViewBag.repRealMedia =
|
||||
realMedia.OrderBy(media => media.Type).ThenBy(media => media.SubType).ToList();
|
||||
repRealMedia.DataBind();
|
||||
}
|
||||
else divRealMedia.Visible = false;
|
||||
|
||||
if(virtualMedia.Count > 0)
|
||||
{
|
||||
repVirtualMedia.DataSource =
|
||||
ViewBag.repVirtualMedia =
|
||||
virtualMedia.OrderBy(media => media.Type).ThenBy(media => media.SubType).ToList();
|
||||
repVirtualMedia.DataBind();
|
||||
}
|
||||
else divVirtualMedia.Visible = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
divRealMedia.Visible = false;
|
||||
divVirtualMedia.Visible = false;
|
||||
}
|
||||
|
||||
if(ctx.DeviceStats.Any())
|
||||
@@ -250,7 +219,7 @@ namespace DiscImageChef.Server
|
||||
|
||||
xmlFile = xmlFile.Replace('/', '_').Replace('\\', '_').Replace('?', '_');
|
||||
|
||||
if(File.Exists(Path.Combine(HostingEnvironment.MapPath("~"), "Reports", xmlFile)))
|
||||
if(System.IO.File.Exists(Path.Combine(HostingEnvironment.MapPath("~"), "Reports", xmlFile)))
|
||||
{
|
||||
DeviceReport deviceReport = new DeviceReport();
|
||||
|
||||
@@ -266,39 +235,37 @@ namespace DiscImageChef.Server
|
||||
device.Report = ctx.Devices.Add(new Device(deviceReportV2));
|
||||
ctx.SaveChanges();
|
||||
|
||||
File.Delete(Path.Combine(HostingEnvironment.MapPath("~") ?? throw new InvalidOperationException(),
|
||||
"Reports", xmlFile));
|
||||
System.IO.File
|
||||
.Delete(Path.Combine(HostingEnvironment.MapPath("~") ?? throw new InvalidOperationException(),
|
||||
"Reports", xmlFile));
|
||||
}
|
||||
|
||||
string url = device.Report != null && device.Report.Id != 0
|
||||
? $"ViewReport.aspx?id={device.Report.Id}"
|
||||
: null;
|
||||
|
||||
devices.Add(new DeviceItem
|
||||
{
|
||||
Manufacturer = device.Manufacturer,
|
||||
Model = device.Model,
|
||||
Revision = device.Revision,
|
||||
Bus = device.Bus,
|
||||
ReportLink =
|
||||
url == null ? "No" : $"<a href=\"{url}\" target=\"_blank\">Yes</a>"
|
||||
ReportId = device.Report != null && device.Report.Id != 0
|
||||
? device.Report.Id
|
||||
: 0
|
||||
});
|
||||
}
|
||||
|
||||
repDevices.DataSource = devices.OrderBy(device => device.Manufacturer)
|
||||
.ThenBy(device => device.Model).ThenBy(device => device.Revision)
|
||||
.ThenBy(device => device.Bus).ToList();
|
||||
repDevices.DataBind();
|
||||
ViewBag.repDevices = devices.OrderBy(device => device.Manufacturer).ThenBy(device => device.Model)
|
||||
.ThenBy(device => device.Revision).ThenBy(device => device.Bus)
|
||||
.ToList();
|
||||
}
|
||||
else divDevices.Visible = false;
|
||||
}
|
||||
catch(Exception)
|
||||
{
|
||||
content.InnerHtml = "<b>Could not load statistics</b>";
|
||||
#if DEBUG
|
||||
throw;
|
||||
#endif
|
||||
return Content("Could not read statistics");
|
||||
}
|
||||
|
||||
return View();
|
||||
}
|
||||
|
||||
static FileStream WaitForFile(string fullPath, FileMode mode, FileAccess access, FileShare share)
|
||||
@@ -320,21 +287,5 @@ namespace DiscImageChef.Server
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
class MediaItem
|
||||
{
|
||||
public string Type { get; set; }
|
||||
public string SubType { get; set; }
|
||||
public long Count { get; set; }
|
||||
}
|
||||
|
||||
class DeviceItem
|
||||
{
|
||||
public string Manufacturer { get; set; }
|
||||
public string Model { get; set; }
|
||||
public string Revision { get; set; }
|
||||
public string Bus { get; set; }
|
||||
public string ReportLink { get; set; }
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,69 +0,0 @@
|
||||
<%@ Page Language="C#" %>
|
||||
<%@ Register TagPrefix="velyo" Namespace="Velyo.AspNet.Markdown" Assembly="Velyo.AspNet.Markdown" %>
|
||||
<%--
|
||||
// /***************************************************************************
|
||||
// The Disc Image Chef
|
||||
// ----------------------------------------------------------------------------
|
||||
//
|
||||
// Filename : DONATING.aspx
|
||||
// Author(s) : Natalia Portillo <claunia@claunia.com>
|
||||
//
|
||||
// Component : DiscImageChef Server.
|
||||
//
|
||||
// --[ Description ] ----------------------------------------------------------
|
||||
//
|
||||
// Renders DONATING.md.
|
||||
//
|
||||
// --[ License ] --------------------------------------------------------------
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify
|
||||
// it under the terms of the GNU Lesser General Public License as
|
||||
// published by the Free Software Foundation; either version 2.1 of the
|
||||
// License, or (at your option) any later version.
|
||||
//
|
||||
// This library is distributed in the hope that it will be useful, but
|
||||
// WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with this library; if not, see <http://www.gnu.org/licenses/>.
|
||||
//
|
||||
// ----------------------------------------------------------------------------
|
||||
// Copyright © 2011-2018 Natalia Portillo
|
||||
// ****************************************************************************/
|
||||
--%>
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<meta charset="UTF-8">
|
||||
<head runat="server">
|
||||
<link href="dos.css"
|
||||
rel="stylesheet"
|
||||
type="text/css" />
|
||||
<title>DiscImageChef's TODO</title>
|
||||
<!-- Global site tag (gtag.js) - Google Analytics -->
|
||||
<script async
|
||||
src="https://www.googletagmanager.com/gtag/js?id=UA-111466173-1"></script>
|
||||
<script>
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
|
||||
function gtag() { dataLayer.push(arguments); }
|
||||
|
||||
gtag('js', new Date());
|
||||
|
||||
gtag('config', 'UA-111466173-1');
|
||||
</script>
|
||||
</head>
|
||||
<body id="body"
|
||||
runat="server">
|
||||
<p>
|
||||
<a href="Default.aspx">Return to main page.</a><br />
|
||||
DiscImageChef list of things to be donated:
|
||||
</p>
|
||||
<div>
|
||||
<velyo:MarkdownContent ID="todo"
|
||||
Path="~/docs/DONATING.md"
|
||||
runat="server" />
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,70 +0,0 @@
|
||||
<%@ Page Language="C#" Inherits="DiscImageChef.Server.Default" %>
|
||||
<%--
|
||||
// /***************************************************************************
|
||||
// The Disc Image Chef
|
||||
// ----------------------------------------------------------------------------
|
||||
//
|
||||
// Filename : Default.aspx
|
||||
// Author(s) : Natalia Portillo <claunia@claunia.com>
|
||||
//
|
||||
// Component : DiscImageChef Server.
|
||||
//
|
||||
// --[ Description ] ----------------------------------------------------------
|
||||
//
|
||||
// Renders README.md.
|
||||
//
|
||||
// --[ License ] --------------------------------------------------------------
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify
|
||||
// it under the terms of the GNU Lesser General Public License as
|
||||
// published by the Free Software Foundation; either version 2.1 of the
|
||||
// License, or (at your option) any later version.
|
||||
//
|
||||
// This library is distributed in the hope that it will be useful, but
|
||||
// WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with this library; if not, see <http://www.gnu.org/licenses/>.
|
||||
//
|
||||
// ----------------------------------------------------------------------------
|
||||
// Copyright © 2011-2018 Natalia Portillo
|
||||
// ****************************************************************************/
|
||||
--%>
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<meta charset="UTF-8">
|
||||
<head runat="server">
|
||||
<link href="dos.css"
|
||||
rel="stylesheet"
|
||||
type="text/css" />
|
||||
<title>DiscImageChef</title>
|
||||
<!-- Global site tag (gtag.js) - Google Analytics -->
|
||||
<script async
|
||||
src="https://www.googletagmanager.com/gtag/js?id=UA-111466173-1"></script>
|
||||
<script>
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
|
||||
function gtag() { dataLayer.push(arguments); }
|
||||
|
||||
gtag('js', new Date());
|
||||
|
||||
gtag('config', 'UA-111466173-1');
|
||||
</script>
|
||||
</head>
|
||||
<body id="body"
|
||||
runat="server">
|
||||
<h1 align="center">
|
||||
Welcome to
|
||||
<i>
|
||||
<a href="http://github.com/claunia/discimagechef"
|
||||
target="_blank">
|
||||
DiscImageChef
|
||||
</a>
|
||||
</i> Server version
|
||||
<asp:Label id="lblVersion"
|
||||
runat="server" />
|
||||
</h1>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,62 +0,0 @@
|
||||
// /***************************************************************************
|
||||
// The Disc Image Chef
|
||||
// ----------------------------------------------------------------------------
|
||||
//
|
||||
// Filename : Default.aspx.cs
|
||||
// Author(s) : Natalia Portillo <claunia@claunia.com>
|
||||
//
|
||||
// Component : DiscImageChef Server.
|
||||
//
|
||||
// --[ Description ] ----------------------------------------------------------
|
||||
//
|
||||
// Renders README.md.
|
||||
//
|
||||
// --[ License ] --------------------------------------------------------------
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify
|
||||
// it under the terms of the GNU Lesser General Public License as
|
||||
// published by the Free Software Foundation; either version 2.1 of the
|
||||
// License, or (at your option) any later version.
|
||||
//
|
||||
// This library is distributed in the hope that it will be useful, but
|
||||
// WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with this library; if not, see <http://www.gnu.org/licenses/>.
|
||||
//
|
||||
// ----------------------------------------------------------------------------
|
||||
// Copyright © 2011-2018 Natalia Portillo
|
||||
// ****************************************************************************/
|
||||
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Reflection;
|
||||
using System.Web.Hosting;
|
||||
using System.Web.UI;
|
||||
using Velyo.AspNet.Markdown;
|
||||
|
||||
namespace DiscImageChef.Server
|
||||
{
|
||||
/// <summary>
|
||||
/// Renders the README.md file
|
||||
/// </summary>
|
||||
public partial class Default : Page
|
||||
{
|
||||
protected void Page_Load(object sender, EventArgs e)
|
||||
{
|
||||
MarkdownContent mkdown = new MarkdownContent();
|
||||
StreamReader sr =
|
||||
new StreamReader(Path.Combine(HostingEnvironment.MapPath("~") ?? throw new InvalidOperationException(),
|
||||
"docs", "README.md"));
|
||||
string mdcontent = sr.ReadToEnd();
|
||||
sr.Close();
|
||||
|
||||
mkdown.Content = mdcontent.Replace(".md)", ".aspx)");
|
||||
body.Controls.Add(mkdown);
|
||||
|
||||
lblVersion.Text = Assembly.GetExecutingAssembly().GetName().Version.ToString();
|
||||
}
|
||||
}
|
||||
}
|
||||
23
DiscImageChef.Server/Default.aspx.designer.cs
generated
23
DiscImageChef.Server/Default.aspx.designer.cs
generated
@@ -1,23 +0,0 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:4.0.30319.42000
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
using System.Web.UI.HtmlControls;
|
||||
using System.Web.UI.WebControls;
|
||||
|
||||
namespace DiscImageChef.Server {
|
||||
|
||||
|
||||
public partial class Default {
|
||||
|
||||
protected HtmlGenericControl body;
|
||||
|
||||
protected Label lblVersion;
|
||||
}
|
||||
}
|
||||
@@ -73,7 +73,12 @@
|
||||
<HintPath>..\packages\Google.Protobuf.3.5.1\lib\net45\Google.Protobuf.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="Markdig, Version=0.15.5.0, Culture=neutral, PublicKeyToken=null">
|
||||
<HintPath>..\packages\Markdig.0.15.5\lib\net40\Markdig.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="mscorlib" />
|
||||
<Reference Include="MySql.Data, Version=8.0.13.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d">
|
||||
<HintPath>..\packages\MySql.Data.8.0.13\lib\net452\MySql.Data.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
@@ -150,10 +155,6 @@
|
||||
<Private>True</Private>
|
||||
<HintPath>..\packages\Microsoft.AspNet.WebPages.3.2.4\lib\net45\System.Web.WebPages.Razor.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Velyo.AspNet.Markdown, Version=1.0.26.6184, Culture=neutral, PublicKeyToken=null">
|
||||
<HintPath>..\packages\Velyo.AspNet.Markdown.1.0.26.6184\lib\net451\Velyo.AspNet.Markdown.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="WebGrease">
|
||||
<Private>True</Private>
|
||||
<HintPath>..\packages\WebGrease.1.6.0\lib\WebGrease.dll</HintPath>
|
||||
@@ -176,6 +177,7 @@
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="App_Start\Ata.cs" />
|
||||
<Compile Include="App_Start\RouteConfig.cs" />
|
||||
<Compile Include="App_Start\ScsiEvpd.cs" />
|
||||
<Compile Include="App_Start\ScsiInquiry.cs" />
|
||||
<Compile Include="App_Start\ScsiMmcFeatures.cs" />
|
||||
@@ -185,15 +187,11 @@
|
||||
<Compile Include="App_Start\StatsConverter.cs" />
|
||||
<Compile Include="App_Start\TestedMedia.cs" />
|
||||
<Compile Include="App_Start\WebApiConfig.cs" />
|
||||
<Compile Include="Controllers\ReportController.cs" />
|
||||
<Compile Include="Controllers\StatsController.cs" />
|
||||
<Compile Include="Controllers\HomeController.cs" />
|
||||
<Compile Include="Controllers\UploadReportController.cs" />
|
||||
<Compile Include="Controllers\UploadStatsController.cs" />
|
||||
<Compile Include="Default.aspx.cs">
|
||||
<DependentUpon>Default.aspx</DependentUpon>
|
||||
<SubType>ASPXCodeBehind</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Default.aspx.designer.cs">
|
||||
<DependentUpon>Default.aspx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Global.asax.cs">
|
||||
<DependentUpon>Global.asax</DependentUpon>
|
||||
</Compile>
|
||||
@@ -242,44 +240,34 @@
|
||||
<Compile Include="Models\Command.cs" />
|
||||
<Compile Include="Models\Context.cs" />
|
||||
<Compile Include="Models\Device.cs" />
|
||||
<Compile Include="Models\DeviceItem.cs" />
|
||||
<Compile Include="Models\DeviceStat.cs" />
|
||||
<Compile Include="Models\Filesystem.cs" />
|
||||
<Compile Include="Models\Filter.cs" />
|
||||
<Compile Include="Models\Media.cs" />
|
||||
<Compile Include="Models\MediaFormat.cs" />
|
||||
<Compile Include="Models\MediaItem.cs" />
|
||||
<Compile Include="Models\OperatingSystem.cs" />
|
||||
<Compile Include="Models\Partition.cs" />
|
||||
<Compile Include="Models\UploadedReport.cs" />
|
||||
<Compile Include="Models\UsbProduct.cs" />
|
||||
<Compile Include="Models\UsbVendor.cs" />
|
||||
<Compile Include="Models\Version.cs" />
|
||||
<Compile Include="Statistics.aspx.cs">
|
||||
<DependentUpon>Statistics.aspx</DependentUpon>
|
||||
<SubType>ASPXCodeBehind</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Statistics.aspx.designer.cs">
|
||||
<DependentUpon>Statistics.aspx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="ViewReport.aspx.cs">
|
||||
<DependentUpon>ViewReport.aspx</DependentUpon>
|
||||
<SubType>ASPXCodeBehind</SubType>
|
||||
</Compile>
|
||||
<Compile Include="ViewReport.aspx.designer.cs">
|
||||
<DependentUpon>ViewReport.aspx</DependentUpon>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="Changelog.aspx" />
|
||||
<Content Include="Default.aspx" />
|
||||
<Content Include="DONATING.aspx" />
|
||||
<Content Include="docs\Changelog.md" />
|
||||
<Content Include="docs\DONATING.md" />
|
||||
<Content Include="docs\README.md" />
|
||||
<Content Include="docs\TODO.md" />
|
||||
<Content Include="dos.css" />
|
||||
<Content Include="Global.asax" />
|
||||
<Content Include="int10h.org\vga_squarepx.eot" />
|
||||
<Content Include="int10h.org\vga_squarepx.ttf" />
|
||||
<Content Include="int10h.org\vga_squarepx.woff" />
|
||||
<Content Include="Statistics.aspx" />
|
||||
<Content Include="TODO.aspx" />
|
||||
<Content Include="ViewReport.aspx" />
|
||||
<Content Include="Views\Home\Changelog.cshtml" />
|
||||
<Content Include="Views\Home\DONATING.cshtml" />
|
||||
<Content Include="Views\Home\TODO.cshtml" />
|
||||
<Content Include="Views\Report\View.cshtml" />
|
||||
<Content Include="Web.config" />
|
||||
<Content Include="Web.Debug.config">
|
||||
<DependentUpon>Web.config</DependentUpon>
|
||||
@@ -287,23 +275,13 @@
|
||||
<Content Include="Web.Release.config">
|
||||
<DependentUpon>Web.config</DependentUpon>
|
||||
</Content>
|
||||
<None Include="..\Changelog.md">
|
||||
<Link>docs/Changelog.md</Link>
|
||||
</None>
|
||||
<None Include="..\DONATING.md">
|
||||
<Link>docs/DONATING.md</Link>
|
||||
</None>
|
||||
<None Include="..\README.md">
|
||||
<Link>docs/README.md</Link>
|
||||
</None>
|
||||
<None Include="..\TODO.md">
|
||||
<Link>docs/TODO.md</Link>
|
||||
</None>
|
||||
<None Include="App.config" />
|
||||
<None Include="docs\README.md" />
|
||||
<None Include="int10h.org\.htaccess" />
|
||||
<None Include="int10h.org\vga_squarepx.woff2" />
|
||||
<None Include="Reports\.htaccess" />
|
||||
<Content Include="Views\Home\Index.cshtml" />
|
||||
<Content Include="Views\Web.config" />
|
||||
<Content Include="Views\Stats\Index.cshtml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="packages.config" />
|
||||
|
||||
@@ -32,6 +32,7 @@
|
||||
|
||||
using System.Web;
|
||||
using System.Web.Http;
|
||||
using System.Web.Routing;
|
||||
|
||||
namespace DiscImageChef.Server
|
||||
{
|
||||
@@ -40,6 +41,7 @@ namespace DiscImageChef.Server
|
||||
protected void Application_Start()
|
||||
{
|
||||
GlobalConfiguration.Configure(WebApiConfig.Register);
|
||||
RouteConfig.RegisterRoutes(RouteTable.Routes);
|
||||
}
|
||||
}
|
||||
}
|
||||
11
DiscImageChef.Server/Models/DeviceItem.cs
Normal file
11
DiscImageChef.Server/Models/DeviceItem.cs
Normal file
@@ -0,0 +1,11 @@
|
||||
namespace DiscImageChef.Server.Models
|
||||
{
|
||||
public class DeviceItem
|
||||
{
|
||||
public string Manufacturer { get; set; }
|
||||
public string Model { get; set; }
|
||||
public string Revision { get; set; }
|
||||
public string Bus { get; set; }
|
||||
public int ReportId { get; set; }
|
||||
}
|
||||
}
|
||||
9
DiscImageChef.Server/Models/MediaItem.cs
Normal file
9
DiscImageChef.Server/Models/MediaItem.cs
Normal file
@@ -0,0 +1,9 @@
|
||||
namespace DiscImageChef.Server.Models
|
||||
{
|
||||
public class MediaItem
|
||||
{
|
||||
public string Type { get; set; }
|
||||
public string SubType { get; set; }
|
||||
public long Count { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -1,412 +0,0 @@
|
||||
<%@ Page Language="C#" Inherits="DiscImageChef.Server.Statistics" %>
|
||||
<%--
|
||||
// /***************************************************************************
|
||||
// The Disc Image Chef
|
||||
// ----------------------------------------------------------------------------
|
||||
//
|
||||
// Filename : Statistics.aspx
|
||||
// Author(s) : Natalia Portillo <claunia@claunia.com>
|
||||
//
|
||||
// Component : DiscImageChef Server.
|
||||
//
|
||||
// --[ Description ] ----------------------------------------------------------
|
||||
//
|
||||
// Renders statistics and links to reports.
|
||||
//
|
||||
// --[ License ] --------------------------------------------------------------
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify
|
||||
// it under the terms of the GNU Lesser General Public License as
|
||||
// published by the Free Software Foundation; either version 2.1 of the
|
||||
// License, or (at your option) any later version.
|
||||
//
|
||||
// This library is distributed in the hope that it will be useful, but
|
||||
// WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with this library; if not, see <http://www.gnu.org/licenses/>.
|
||||
//
|
||||
// ----------------------------------------------------------------------------
|
||||
// Copyright © 2011-2018 Natalia Portillo
|
||||
// ****************************************************************************/
|
||||
--%>
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<meta charset="UTF-8">
|
||||
<head runat="server">
|
||||
<link href="dos.css"
|
||||
rel="stylesheet"
|
||||
type="text/css" />
|
||||
<title>DiscImageChef Statistics</title>
|
||||
<!-- Global site tag (gtag.js) - Google Analytics -->
|
||||
<script async
|
||||
src="https://www.googletagmanager.com/gtag/js?id=UA-111466173-1"></script>
|
||||
<script>
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
|
||||
function gtag() { dataLayer.push(arguments); }
|
||||
|
||||
gtag('js', new Date());
|
||||
|
||||
gtag('config', 'UA-111466173-1');
|
||||
</script>
|
||||
</head>
|
||||
<body id="body"
|
||||
runat="server">
|
||||
<h1 align="center">
|
||||
Welcome to
|
||||
<i>
|
||||
<a href="http://github.com/claunia/discimagechef"
|
||||
target="_blank">
|
||||
DiscImageChef
|
||||
</a>
|
||||
</i> Server version
|
||||
<asp:Label id="lblVersion"
|
||||
runat="server" />
|
||||
</h1>
|
||||
<br />
|
||||
<div id="content"
|
||||
runat="server">
|
||||
<div id="divOperatingSystems"
|
||||
runat="server">
|
||||
<table>
|
||||
<asp:Repeater id="repOperatingSystems"
|
||||
runat="server">
|
||||
<ItemTemplate>
|
||||
<tr>
|
||||
<td>
|
||||
DiscImageChef has run on
|
||||
<i>
|
||||
<asp:Label runat="server"
|
||||
Text='<%# Eval("name") %>' />
|
||||
</i>
|
||||
<asp:Label runat="server"
|
||||
Text='<%# Eval("Value") %>' /> times.
|
||||
</td>
|
||||
</tr>
|
||||
</ItemTemplate>
|
||||
</asp:Repeater>
|
||||
</table>
|
||||
<br />
|
||||
</div>
|
||||
<div id="divVersions"
|
||||
runat="server">
|
||||
<table>
|
||||
<asp:Repeater id="repVersions"
|
||||
runat="server">
|
||||
<ItemTemplate>
|
||||
<tr>
|
||||
<td>
|
||||
DiscImageChef version
|
||||
<i>
|
||||
<asp:Label runat="server"
|
||||
Text='<%# Eval("name") %>' />
|
||||
</i> has been used
|
||||
<asp:Label runat="server"
|
||||
Text='<%# Eval("Value") %>' /> times.
|
||||
</td>
|
||||
</tr>
|
||||
</ItemTemplate>
|
||||
</asp:Repeater>
|
||||
</table>
|
||||
<br />
|
||||
</div>
|
||||
<div id="divCommands"
|
||||
runat="server">
|
||||
<h4>Commands run:</h4>
|
||||
<p>
|
||||
<i>analyze</i> command has been run
|
||||
<asp:Label id="lblAnalyze"
|
||||
runat="server" /> times<br />
|
||||
<i>benchmark</i> command has been run
|
||||
<asp:Label id="lblBenchmark"
|
||||
runat="server" /> times<br />
|
||||
<i>checksum</i> command has been run
|
||||
<asp:Label id="lblChecksum"
|
||||
runat="server" /> times<br />
|
||||
<i>compare</i> command has been run
|
||||
<asp:Label id="lblCompare"
|
||||
runat="server" /> times<br />
|
||||
<i>convert-image</i> command has been run
|
||||
<asp:Label id="lblConvertImage"
|
||||
runat="server" /> times<br />
|
||||
<i>create-sidecar</i> command has been run
|
||||
<asp:Label id="lblCreateSidecar"
|
||||
runat="server" /> times<br />
|
||||
<i>decode</i> command has been run
|
||||
<asp:Label id="lblDecode"
|
||||
runat="server" /> times<br />
|
||||
<i>device-info</i> command has been run
|
||||
<asp:Label id="lblDeviceInfo"
|
||||
runat="server" /> times<br />
|
||||
<i>device-report</i> command has been run
|
||||
<asp:Label id="lblDeviceReport"
|
||||
runat="server" /> times<br />
|
||||
<i>dump-media</i> command has been run
|
||||
<asp:Label id="lblDumpMedia"
|
||||
runat="server" /> times<br />
|
||||
<i>entropy</i> command has been run
|
||||
<asp:Label id="lblEntropy"
|
||||
runat="server" /> times<br />
|
||||
<i>extract-files</i> command has been run
|
||||
<asp:Label id="lblExtractFiles"
|
||||
runat="server" /> times<br />
|
||||
<i>formats</i> command has been run
|
||||
<asp:Label id="lblFormats"
|
||||
runat="server" /> times<br />
|
||||
<i>image-info</i> command has been run
|
||||
<asp:Label id="lblImageInfo"
|
||||
runat="server" /> times<br />
|
||||
<i>list-devices</i> command has been run
|
||||
<asp:Label id="lblListDevices"
|
||||
runat="server" /> times<br />
|
||||
<i>list-encodings</i> command has been run
|
||||
<asp:Label id="lblListEncodings"
|
||||
runat="server" /> times<br />
|
||||
<i>ls</i> command has been run
|
||||
<asp:Label id="lblLs"
|
||||
runat="server" /> times<br />
|
||||
<i>media-info</i> command has been run
|
||||
<asp:Label id="lblMediaInfo"
|
||||
runat="server" /> times<br />
|
||||
<i>media-scan</i> command has been run
|
||||
<asp:Label id="lblMediaScan"
|
||||
runat="server" /> times<br />
|
||||
<i>printhex</i> command has been run
|
||||
<asp:Label id="lblPrintHex"
|
||||
runat="server" /> times<br />
|
||||
<i>verify</i> command has been run
|
||||
<asp:Label id="lblVerify"
|
||||
runat="server" /> times
|
||||
</p>
|
||||
</div>
|
||||
<div id="divFilters"
|
||||
runat="server">
|
||||
<h3>Filters found:</h3>
|
||||
<table align="center"
|
||||
border="1">
|
||||
<tr>
|
||||
<th>Filter</th>
|
||||
<th>Times</th>
|
||||
</tr>
|
||||
<asp:Repeater ID="repFilters"
|
||||
runat="server">
|
||||
<ItemTemplate>
|
||||
<tr>
|
||||
<td>
|
||||
<asp:Label runat="server"
|
||||
Text='<%# Eval("Name") %>' />
|
||||
</td>
|
||||
<td>
|
||||
<asp:Label runat="server"
|
||||
Text='<%# string.Format("{0}", Eval("Count")) %>' />
|
||||
</td>
|
||||
</tr>
|
||||
</ItemTemplate>
|
||||
</asp:Repeater>
|
||||
</table>
|
||||
</div>
|
||||
<div id="divMediaImages"
|
||||
runat="server">
|
||||
<h3>Media image formats found:</h3>
|
||||
<table align="center"
|
||||
border="1">
|
||||
<tr>
|
||||
<th>Media image format</th>
|
||||
<th>Times</th>
|
||||
</tr>
|
||||
<asp:Repeater ID="repMediaImages"
|
||||
runat="server">
|
||||
<ItemTemplate>
|
||||
<tr>
|
||||
<td>
|
||||
<asp:Label runat="server"
|
||||
Text='<%# Eval("Name") %>' />
|
||||
</td>
|
||||
<td>
|
||||
<asp:Label runat="server"
|
||||
Text='<%# string.Format("{0}", Eval("Count")) %>' />
|
||||
</td>
|
||||
</tr>
|
||||
</ItemTemplate>
|
||||
</asp:Repeater>
|
||||
</table>
|
||||
</div>
|
||||
<div id="divPartitions"
|
||||
runat="server">
|
||||
<h3>Partition schemes found:</h3>
|
||||
<table align="center"
|
||||
border="1">
|
||||
<tr>
|
||||
<th>Partition scheme</th>
|
||||
<th>Times</th>
|
||||
</tr>
|
||||
<asp:Repeater ID="repPartitions"
|
||||
runat="server">
|
||||
<ItemTemplate>
|
||||
<tr>
|
||||
<td>
|
||||
<asp:Label runat="server"
|
||||
Text='<%# Eval("Name") %>' />
|
||||
</td>
|
||||
<td>
|
||||
<asp:Label runat="server"
|
||||
Text='<%# string.Format("{0}", Eval("Count")) %>' />
|
||||
</td>
|
||||
</tr>
|
||||
</ItemTemplate>
|
||||
</asp:Repeater>
|
||||
</table>
|
||||
</div>
|
||||
<div id="divFilesystems"
|
||||
runat="server">
|
||||
<h3>Filesystems found:</h3>
|
||||
<table align="center"
|
||||
border="1">
|
||||
<tr>
|
||||
<th>Filesystem name</th>
|
||||
<th>Times</th>
|
||||
</tr>
|
||||
<asp:Repeater ID="repFilesystems"
|
||||
runat="server">
|
||||
<ItemTemplate>
|
||||
<tr>
|
||||
<td>
|
||||
<asp:Label runat="server"
|
||||
Text='<%# Eval("Name") %>' />
|
||||
</td>
|
||||
<td>
|
||||
<asp:Label runat="server"
|
||||
Text='<%# string.Format("{0}", Eval("Count")) %>' />
|
||||
</td>
|
||||
</tr>
|
||||
</ItemTemplate>
|
||||
</asp:Repeater>
|
||||
</table>
|
||||
</div>
|
||||
<div id="divVirtualMedia"
|
||||
runat="server">
|
||||
<h3>Media types found in images:</h3>
|
||||
<table align="center"
|
||||
border="1">
|
||||
<tr>
|
||||
<th>Physical type</th>
|
||||
<th>Logical type</th>
|
||||
<th>Times</th>
|
||||
</tr>
|
||||
<asp:Repeater ID="repVirtualMedia"
|
||||
runat="server">
|
||||
<ItemTemplate>
|
||||
<tr>
|
||||
<td>
|
||||
<asp:Label runat="server"
|
||||
Text='<%# Eval("Type") %>' />
|
||||
</td>
|
||||
<td>
|
||||
<asp:Label runat="server"
|
||||
Text='<%# Eval("SubType") %>' />
|
||||
</td>
|
||||
<td>
|
||||
<asp:Label runat="server"
|
||||
Text='<%# string.Format("{0}", Eval("Count")) %>' />
|
||||
</td>
|
||||
</tr>
|
||||
</ItemTemplate>
|
||||
</asp:Repeater>
|
||||
</table>
|
||||
</div>
|
||||
<div id="divRealMedia"
|
||||
runat="server">
|
||||
<h3>Media types found in devices:</h3>
|
||||
<table align="center"
|
||||
border="1">
|
||||
<tr>
|
||||
<th>Physical type</th>
|
||||
<th>Logical type</th>
|
||||
<th>Times</th>
|
||||
</tr>
|
||||
<asp:Repeater ID="repRealMedia"
|
||||
runat="server">
|
||||
<ItemTemplate>
|
||||
<tr>
|
||||
<td>
|
||||
<asp:Label runat="server"
|
||||
Text='<%# Eval("Type") %>' />
|
||||
</td>
|
||||
<td>
|
||||
<asp:Label runat="server"
|
||||
Text='<%# Eval("SubType") %>' />
|
||||
</td>
|
||||
<td>
|
||||
<asp:Label runat="server"
|
||||
Text='<%# string.Format("{0}", Eval("Count")) %>' />
|
||||
</td>
|
||||
</tr>
|
||||
</ItemTemplate>
|
||||
</asp:Repeater>
|
||||
</table>
|
||||
</div>
|
||||
<div id="divDevices"
|
||||
runat="server">
|
||||
<h3>Found devices:</h3>
|
||||
<table align="center"
|
||||
border="1">
|
||||
<tr>
|
||||
<th>Manufacturer</th>
|
||||
<th>Model</th>
|
||||
<th>Revision</th>
|
||||
<th>Bus</th>
|
||||
<th>Report</th>
|
||||
</tr>
|
||||
<asp:Repeater ID="repDevices"
|
||||
runat="server">
|
||||
<ItemTemplate>
|
||||
<tr>
|
||||
<td>
|
||||
<asp:Label runat="server"
|
||||
Text='<%# Eval("Manufacturer") %>' />
|
||||
</td>
|
||||
<td>
|
||||
<asp:Label runat="server"
|
||||
Text='<%# Eval("Model") %>' />
|
||||
</td>
|
||||
<td>
|
||||
<asp:Label runat="server"
|
||||
Text='<%# Eval("Revision") %>' />
|
||||
</td>
|
||||
<td>
|
||||
<asp:Label runat="server"
|
||||
Text='<%# Eval("Bus") %>' />
|
||||
</td>
|
||||
<td>
|
||||
<asp:Label runat="server"
|
||||
Text='<%# Eval("ReportLink") %>' />
|
||||
</td>
|
||||
</tr>
|
||||
</ItemTemplate>
|
||||
</asp:Repeater>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<hr />
|
||||
<footer>
|
||||
© 2011-2018
|
||||
<a href="http://www.claunia.com"
|
||||
target="_blank">
|
||||
Claunia.com
|
||||
</a><br />
|
||||
Fonts are © 2015-2016
|
||||
<a href="http://int10h.org"
|
||||
target="_blank">
|
||||
VileR
|
||||
</a><br />
|
||||
CSS © 2017
|
||||
<a href="http://www.freedos.org"
|
||||
target="_blank">
|
||||
The FreeDOS Project
|
||||
</a>
|
||||
</footer>
|
||||
</body>
|
||||
</html>
|
||||
105
DiscImageChef.Server/Statistics.aspx.designer.cs
generated
105
DiscImageChef.Server/Statistics.aspx.designer.cs
generated
@@ -1,105 +0,0 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:4.0.30319.42000
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
using System.Web.UI.HtmlControls;
|
||||
using System.Web.UI.WebControls;
|
||||
|
||||
namespace DiscImageChef.Server {
|
||||
|
||||
|
||||
public partial class Statistics {
|
||||
|
||||
protected HtmlGenericControl body;
|
||||
|
||||
protected Label lblVersion;
|
||||
|
||||
protected HtmlGenericControl content;
|
||||
|
||||
protected HtmlGenericControl divOperatingSystems;
|
||||
|
||||
protected Repeater repOperatingSystems;
|
||||
|
||||
protected HtmlGenericControl divVersions;
|
||||
|
||||
protected Repeater repVersions;
|
||||
|
||||
protected HtmlGenericControl divCommands;
|
||||
|
||||
protected Label lblAnalyze;
|
||||
|
||||
protected Label lblBenchmark;
|
||||
|
||||
protected Label lblChecksum;
|
||||
|
||||
protected Label lblCompare;
|
||||
|
||||
protected Label lblConvertImage;
|
||||
|
||||
protected Label lblCreateSidecar;
|
||||
|
||||
protected Label lblDecode;
|
||||
|
||||
protected Label lblDeviceInfo;
|
||||
|
||||
protected Label lblDeviceReport;
|
||||
|
||||
protected Label lblDumpMedia;
|
||||
|
||||
protected Label lblEntropy;
|
||||
|
||||
protected Label lblExtractFiles;
|
||||
|
||||
protected Label lblFormats;
|
||||
|
||||
protected Label lblImageInfo;
|
||||
|
||||
protected Label lblListDevices;
|
||||
|
||||
protected Label lblListEncodings;
|
||||
|
||||
protected Label lblLs;
|
||||
|
||||
protected Label lblMediaInfo;
|
||||
|
||||
protected Label lblMediaScan;
|
||||
|
||||
protected Label lblPrintHex;
|
||||
|
||||
protected Label lblVerify;
|
||||
|
||||
protected HtmlGenericControl divFilters;
|
||||
|
||||
protected Repeater repFilters;
|
||||
|
||||
protected HtmlGenericControl divMediaImages;
|
||||
|
||||
protected Repeater repMediaImages;
|
||||
|
||||
protected HtmlGenericControl divPartitions;
|
||||
|
||||
protected Repeater repPartitions;
|
||||
|
||||
protected HtmlGenericControl divFilesystems;
|
||||
|
||||
protected Repeater repFilesystems;
|
||||
|
||||
protected HtmlGenericControl divVirtualMedia;
|
||||
|
||||
protected Repeater repVirtualMedia;
|
||||
|
||||
protected HtmlGenericControl divRealMedia;
|
||||
|
||||
protected Repeater repRealMedia;
|
||||
|
||||
protected HtmlGenericControl divDevices;
|
||||
|
||||
protected Repeater repDevices;
|
||||
}
|
||||
}
|
||||
@@ -1,69 +0,0 @@
|
||||
<%@ Page Language="C#" %>
|
||||
<%@ Register TagPrefix="velyo" Namespace="Velyo.AspNet.Markdown" Assembly="Velyo.AspNet.Markdown" %>
|
||||
<%--
|
||||
// /***************************************************************************
|
||||
// The Disc Image Chef
|
||||
// ----------------------------------------------------------------------------
|
||||
//
|
||||
// Filename : TODO.aspx
|
||||
// Author(s) : Natalia Portillo <claunia@claunia.com>
|
||||
//
|
||||
// Component : DiscImageChef Server.
|
||||
//
|
||||
// --[ Description ] ----------------------------------------------------------
|
||||
//
|
||||
// Renders TODO.md.
|
||||
//
|
||||
// --[ License ] --------------------------------------------------------------
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify
|
||||
// it under the terms of the GNU Lesser General Public License as
|
||||
// published by the Free Software Foundation; either version 2.1 of the
|
||||
// License, or (at your option) any later version.
|
||||
//
|
||||
// This library is distributed in the hope that it will be useful, but
|
||||
// WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with this library; if not, see <http://www.gnu.org/licenses/>.
|
||||
//
|
||||
// ----------------------------------------------------------------------------
|
||||
// Copyright © 2011-2018 Natalia Portillo
|
||||
// ****************************************************************************/
|
||||
--%>
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<meta charset="UTF-8">
|
||||
<head runat="server">
|
||||
<link href="dos.css"
|
||||
rel="stylesheet"
|
||||
type="text/css" />
|
||||
<title>DiscImageChef's TODO</title>
|
||||
<!-- Global site tag (gtag.js) - Google Analytics -->
|
||||
<script async
|
||||
src="https://www.googletagmanager.com/gtag/js?id=UA-111466173-1"></script>
|
||||
<script>
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
|
||||
function gtag() { dataLayer.push(arguments); }
|
||||
|
||||
gtag('js', new Date());
|
||||
|
||||
gtag('config', 'UA-111466173-1');
|
||||
</script>
|
||||
</head>
|
||||
<body id="body"
|
||||
runat="server">
|
||||
<p>
|
||||
<a href="Default.aspx">Return to main page.</a><br />
|
||||
DiscImageChef list of things to do:
|
||||
</p>
|
||||
<div>
|
||||
<velyo:MarkdownContent ID="todo"
|
||||
Path="~/docs/TODO.md"
|
||||
runat="server" />
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,369 +0,0 @@
|
||||
<%@ Page Language="C#" Inherits="DiscImageChef.Server.ViewReport" %>
|
||||
<%--
|
||||
// /***************************************************************************
|
||||
// The Disc Image Chef
|
||||
// ----------------------------------------------------------------------------
|
||||
//
|
||||
// Filename : ViewReport.aspx
|
||||
// Author(s) : Natalia Portillo <claunia@claunia.com>
|
||||
//
|
||||
// Component : DiscImageChef Server.
|
||||
//
|
||||
// --[ Description ] ----------------------------------------------------------
|
||||
//
|
||||
// Renders a device report.
|
||||
//
|
||||
// --[ License ] --------------------------------------------------------------
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify
|
||||
// it under the terms of the GNU Lesser General Public License as
|
||||
// published by the Free Software Foundation; either version 2.1 of the
|
||||
// License, or (at your option) any later version.
|
||||
//
|
||||
// This library is distributed in the hope that it will be useful, but
|
||||
// WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with this library; if not, see <http://www.gnu.org/licenses/>.
|
||||
//
|
||||
// ----------------------------------------------------------------------------
|
||||
// Copyright © 2011-2018 Natalia Portillo
|
||||
// ****************************************************************************/
|
||||
--%>
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<meta charset="UTF-8">
|
||||
<head runat="server">
|
||||
<link href="dos.css"
|
||||
rel="stylesheet"
|
||||
type="text/css" />
|
||||
<title>DiscImageChef Device Report</title>
|
||||
<!-- Global site tag (gtag.js) - Google Analytics -->
|
||||
<script async
|
||||
src="https://www.googletagmanager.com/gtag/js?id=UA-111466173-1"></script>
|
||||
<script>
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
|
||||
function gtag() { dataLayer.push(arguments); }
|
||||
|
||||
gtag('js', new Date());
|
||||
|
||||
gtag('config', 'UA-111466173-1');
|
||||
</script>
|
||||
</head>
|
||||
<body id="content"
|
||||
runat="server">
|
||||
DiscImageChef Report for
|
||||
<asp:Label id="lblManufacturer"
|
||||
runat="server" />
|
||||
<asp:Label id="lblModel"
|
||||
runat="server" />
|
||||
<asp:Label id="lblRevision"
|
||||
runat="server" />
|
||||
<div id="divUsb"
|
||||
runat="server">
|
||||
<br />
|
||||
<b>USB characteristics:</b><br />
|
||||
<i>Manufacturer:</i>
|
||||
<asp:Label id="lblUsbManufacturer"
|
||||
runat="server" /><br />
|
||||
<i>Product:</i>
|
||||
<asp:Label id="lblUsbProduct"
|
||||
runat="server" /><br />
|
||||
<i>Vendor ID:</i>
|
||||
<asp:Label id="lblUsbVendor"
|
||||
runat="server" />
|
||||
<asp:Label id="lblUsbVendorDescription"
|
||||
runat="server" /><br />
|
||||
<i>Product ID:</i>
|
||||
<asp:Label id="lblUsbProductId"
|
||||
runat="server" />
|
||||
<asp:Label id="lblUsbProductDescription"
|
||||
runat="server" />
|
||||
</div>
|
||||
<div id="divFirewire"
|
||||
runat="server">
|
||||
<br />
|
||||
<b>FireWire characteristics:</b><br />
|
||||
<i>Manufacturer:</i>
|
||||
<asp:Label id="lblFirewireManufacturer"
|
||||
runat="server" /><br />
|
||||
<i>Product:</i>
|
||||
<asp:Label id="lblFirewireProduct"
|
||||
runat="server" /><br />
|
||||
<i>Vendor ID:</i>
|
||||
<asp:Label id="lblFirewireVendor"
|
||||
runat="server" /><br />
|
||||
<i>Product ID:</i>
|
||||
<asp:Label id="lblFirewireProductId"
|
||||
runat="server" />
|
||||
</div>
|
||||
<div id="divPcmcia"
|
||||
runat="server">
|
||||
<br />
|
||||
<b>PCMCIA characteristics:</b><br />
|
||||
<i>Manufacturer:</i>
|
||||
<asp:Label id="lblPcmciaManufacturer"
|
||||
runat="server" /><br />
|
||||
<i>Product:</i>
|
||||
<asp:Label id="lblPcmciaProduct"
|
||||
runat="server" /><br />
|
||||
<i>Manufacturer code:</i>
|
||||
<asp:Label id="lblPcmciaManufacturerCode"
|
||||
runat="server" /><br />
|
||||
<i>Card code:</i>
|
||||
<asp:Label id="lblPcmciaCardCode"
|
||||
runat="server" /><br />
|
||||
<i>Compliance:</i>
|
||||
<asp:Label id="lblPcmciaCompliance"
|
||||
runat="server" />
|
||||
<asp:Repeater ID="repPcmciaTuples"
|
||||
runat="server">
|
||||
<ItemTemplate>
|
||||
<i>
|
||||
<asp:Label runat="server"
|
||||
Text='<%# Eval("key") %>' />
|
||||
</i>:
|
||||
<asp:Label runat="server"
|
||||
Text='<%# Eval("value") %>' /><br />
|
||||
</ItemTemplate>
|
||||
</asp:Repeater>
|
||||
|
||||
</div>
|
||||
<div id="divAta"
|
||||
runat="server">
|
||||
<br />
|
||||
<b>
|
||||
ATA
|
||||
<asp:Label id="lblAtapi"
|
||||
runat="server" /> characteristics:
|
||||
</b><br />
|
||||
<asp:Label id="lblAtaDeviceType"
|
||||
runat="server" /><br />
|
||||
<asp:Repeater ID="repAtaTwo"
|
||||
runat="server">
|
||||
<ItemTemplate>
|
||||
<i>
|
||||
<asp:Label runat="server"
|
||||
Text='<%# Eval("key") %>' />
|
||||
</i>:
|
||||
<asp:Label runat="server"
|
||||
Text='<%# Eval("value") %>' /><br />
|
||||
</ItemTemplate>
|
||||
</asp:Repeater>
|
||||
<br />
|
||||
<asp:Repeater ID="repAtaOne"
|
||||
runat="server">
|
||||
<ItemTemplate>
|
||||
<%# Container.DataItem?.ToString() ?? string.Empty %><br />
|
||||
</ItemTemplate>
|
||||
</asp:Repeater>
|
||||
</div>
|
||||
<div id="divScsi"
|
||||
runat="server">
|
||||
<br />
|
||||
<b>SCSI characteristics:</b><br />
|
||||
<i>Vendor:</i>
|
||||
<asp:Label id="lblScsiVendor"
|
||||
runat="server" /><br />
|
||||
<i>Product:</i>
|
||||
<asp:Label id="lblScsiProduct"
|
||||
runat="server" /><br />
|
||||
<i>Revision:</i>
|
||||
<asp:Label id="lblScsiRevision"
|
||||
runat="server" /><br />
|
||||
<asp:Repeater ID="repScsi"
|
||||
runat="server">
|
||||
<ItemTemplate>
|
||||
<%# Container.DataItem?.ToString() ?? string.Empty %><br />
|
||||
</ItemTemplate>
|
||||
</asp:Repeater>
|
||||
<div id="divScsiModeSense"
|
||||
runat="server">
|
||||
<br /><i>SCSI mode sense pages:</i>
|
||||
<table border="1">
|
||||
<tr>
|
||||
<th>Mode</th>
|
||||
<th>Contents</th>
|
||||
</tr>
|
||||
<asp:Repeater ID="repModeSense"
|
||||
runat="server">
|
||||
<ItemTemplate>
|
||||
<tr>
|
||||
<td>
|
||||
<asp:Label runat="server"
|
||||
Text='<%# Eval("key") %>' />
|
||||
</td>
|
||||
<td>
|
||||
<asp:Label runat="server"
|
||||
Text='<%# Eval("value") %>' />
|
||||
</td>
|
||||
</tr>
|
||||
</ItemTemplate>
|
||||
</asp:Repeater>
|
||||
</table>
|
||||
</div>
|
||||
<div id="divScsiEvpd"
|
||||
runat="server">
|
||||
<br /><i>SCSI extended vital product data pages:</i>
|
||||
<table border="1">
|
||||
<tr>
|
||||
<th>EVPD</th>
|
||||
<th>Contents</th>
|
||||
</tr>
|
||||
<asp:Repeater ID="repEvpd"
|
||||
runat="server">
|
||||
<ItemTemplate>
|
||||
<tr>
|
||||
<td>
|
||||
<asp:Label runat="server"
|
||||
Text='<%# Eval("key") %>' />
|
||||
</td>
|
||||
<td>
|
||||
<asp:Label runat="server"
|
||||
Text='<%# Eval("value") %>' />
|
||||
</td>
|
||||
</tr>
|
||||
</ItemTemplate>
|
||||
</asp:Repeater>
|
||||
</table>
|
||||
</div>
|
||||
<div id="divScsiMmcMode"
|
||||
runat="server">
|
||||
<br /><b>SCSI CD-ROM capabilities:</b><br />
|
||||
<asp:Repeater ID="repScsiMmcMode"
|
||||
runat="server">
|
||||
<ItemTemplate>
|
||||
<%# Container.DataItem?.ToString() ?? string.Empty %><br />
|
||||
</ItemTemplate>
|
||||
</asp:Repeater>
|
||||
</div>
|
||||
<div id="divScsiMmcFeatures"
|
||||
runat="server">
|
||||
<br /><b>SCSI MMC features:</b><br />
|
||||
<asp:Repeater ID="repScsiMmcFeatures"
|
||||
runat="server">
|
||||
<ItemTemplate>
|
||||
<%# Container.DataItem?.ToString() ?? string.Empty %><br />
|
||||
</ItemTemplate>
|
||||
</asp:Repeater>
|
||||
</div>
|
||||
<div id="divScsiSsc"
|
||||
runat="server">
|
||||
<br /><b>SCSI Streaming device capabilities:</b><br />
|
||||
Block size granularity:
|
||||
<asp:Label id="lblScsiSscGranularity"
|
||||
runat="server" /><br />
|
||||
Maximum block length:
|
||||
<asp:Label id="lblScsiSscMaxBlock"
|
||||
runat="server" /> bytes<br />
|
||||
Minimum block length:
|
||||
<asp:Label id="lblScsiSscMinBlock"
|
||||
runat="server" /> bytes<br />
|
||||
<asp:Repeater ID="repScsiSscDensities"
|
||||
runat="server">
|
||||
<ItemTemplate>
|
||||
<br />
|
||||
<b>
|
||||
Information for supported density with primary code
|
||||
<asp:Label runat="server"
|
||||
Text='<%# string.Format("{0:X2}h", Eval("PrimaryCode")) %>' /> and secondary code
|
||||
<asp:Label runat="server"
|
||||
Text='<%# string.Format("{0:X2}h", Eval("SecondaryCode")) %>' />
|
||||
</b><br />
|
||||
Drive can write this density:
|
||||
<asp:Label runat="server"
|
||||
Text='<%# string.Format("{0}", Eval("Writable")) %>' /><br />
|
||||
Duplicate density:
|
||||
<asp:Label runat="server"
|
||||
Text='<%# string.Format("{0}", Eval("Duplicate")) %>' /><br />
|
||||
Default density:
|
||||
<asp:Label runat="server"
|
||||
Text='<%# string.Format("{0}", Eval("DefaultDensity")) %>' /><br />
|
||||
Density has
|
||||
<asp:Label runat="server"
|
||||
Text='<%# Eval("BitsPerMm") %>' /> bits per mm, with
|
||||
<asp:Label runat="server"
|
||||
Text='<%# Eval("Tracks") %>' /> tracks in a
|
||||
<asp:Label runat="server"
|
||||
Text='<%# Eval("Width") %>' /> mm width tape
|
||||
Name:
|
||||
<asp:Label runat="server"
|
||||
Text='<%# Eval("Name") %>' /><br />
|
||||
Organization:
|
||||
<asp:Label runat="server"
|
||||
Text='<%# Eval("Organization") %>' /><br />
|
||||
Description:
|
||||
<asp:Label runat="server"
|
||||
Text='<%# Eval("Description") %>' /><br />
|
||||
Maximum capacity:
|
||||
<asp:Label runat="server"
|
||||
Text='<%# Eval("Capacity") %>' /> megabytes<br />
|
||||
</ItemTemplate>
|
||||
</asp:Repeater>
|
||||
<asp:Repeater ID="repScsiSscMedias"
|
||||
runat="server">
|
||||
<ItemTemplate>
|
||||
<br />
|
||||
<b>
|
||||
Information for supported media with type code
|
||||
<asp:Label runat="server"
|
||||
Text='<%# string.Format("{0:X2}h", Eval("MediumType")) %>' />
|
||||
</b><br />
|
||||
Drive can write this density:
|
||||
<asp:Label runat="server"
|
||||
Text='<%# string.Format("{0}", Eval("Writable")) %>' /><br />
|
||||
Media is
|
||||
<asp:Label runat="server"
|
||||
Text='<%# Eval("Length") %>' /> meters long in a
|
||||
<asp:Label runat="server"
|
||||
Text='<%# Eval("Width") %>' /> mm width tape
|
||||
Name:
|
||||
<asp:Label runat="server"
|
||||
Text='<%# Eval("Name") %>' /><br />
|
||||
Organization:
|
||||
<asp:Label runat="server"
|
||||
Text='<%# Eval("Organization") %>' /><br />
|
||||
Description:
|
||||
<asp:Label runat="server"
|
||||
Text='<%# Eval("Description") %>' /><br />
|
||||
</ItemTemplate>
|
||||
</asp:Repeater>
|
||||
</div>
|
||||
</div>
|
||||
<div id="divTestedMedia"
|
||||
runat="server">
|
||||
<br /><b>Tested media:</b><br />
|
||||
<asp:Repeater ID="repTestedMedia"
|
||||
runat="server">
|
||||
<ItemTemplate>
|
||||
<%# Container.DataItem?.ToString() ?? string.Empty %><br />
|
||||
</ItemTemplate>
|
||||
</asp:Repeater>
|
||||
</div>
|
||||
<div id="divMMC"
|
||||
runat="server">
|
||||
<br />
|
||||
<b>MultiMediaCard device:</b><br />
|
||||
<asp:Repeater ID="repMMC"
|
||||
runat="server">
|
||||
<ItemTemplate>
|
||||
<%# Container.DataItem?.ToString() ?? string.Empty %><br />
|
||||
</ItemTemplate>
|
||||
</asp:Repeater>
|
||||
</div>
|
||||
<div id="divSD"
|
||||
runat="server">
|
||||
<br />
|
||||
<b>SecureDigital device:</b><br />
|
||||
<asp:Repeater ID="repSD"
|
||||
runat="server">
|
||||
<ItemTemplate>
|
||||
<%# Container.DataItem?.ToString() ?? string.Empty %><br />
|
||||
</ItemTemplate>
|
||||
</asp:Repeater>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
125
DiscImageChef.Server/ViewReport.aspx.designer.cs
generated
125
DiscImageChef.Server/ViewReport.aspx.designer.cs
generated
@@ -1,125 +0,0 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:4.0.30319.42000
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
using System.Web.UI.HtmlControls;
|
||||
using System.Web.UI.WebControls;
|
||||
|
||||
namespace DiscImageChef.Server {
|
||||
|
||||
|
||||
public partial class ViewReport {
|
||||
|
||||
protected HtmlGenericControl content;
|
||||
|
||||
protected Label lblManufacturer;
|
||||
|
||||
protected Label lblModel;
|
||||
|
||||
protected Label lblRevision;
|
||||
|
||||
protected HtmlGenericControl divUsb;
|
||||
|
||||
protected Label lblUsbManufacturer;
|
||||
|
||||
protected Label lblUsbProduct;
|
||||
|
||||
protected Label lblUsbVendor;
|
||||
|
||||
protected Label lblUsbVendorDescription;
|
||||
|
||||
protected Label lblUsbProductId;
|
||||
|
||||
protected Label lblUsbProductDescription;
|
||||
|
||||
protected HtmlGenericControl divFirewire;
|
||||
|
||||
protected Label lblFirewireManufacturer;
|
||||
|
||||
protected Label lblFirewireProduct;
|
||||
|
||||
protected Label lblFirewireVendor;
|
||||
|
||||
protected Label lblFirewireProductId;
|
||||
|
||||
protected HtmlGenericControl divPcmcia;
|
||||
|
||||
protected Label lblPcmciaManufacturer;
|
||||
|
||||
protected Label lblPcmciaProduct;
|
||||
|
||||
protected Label lblPcmciaManufacturerCode;
|
||||
|
||||
protected Label lblPcmciaCardCode;
|
||||
|
||||
protected Label lblPcmciaCompliance;
|
||||
|
||||
protected Repeater repPcmciaTuples;
|
||||
|
||||
protected HtmlGenericControl divAta;
|
||||
|
||||
protected Label lblAtapi;
|
||||
|
||||
protected Label lblAtaDeviceType;
|
||||
|
||||
protected Repeater repAtaTwo;
|
||||
|
||||
protected Repeater repAtaOne;
|
||||
|
||||
protected HtmlGenericControl divScsi;
|
||||
|
||||
protected Label lblScsiVendor;
|
||||
|
||||
protected Label lblScsiProduct;
|
||||
|
||||
protected Label lblScsiRevision;
|
||||
|
||||
protected Repeater repScsi;
|
||||
|
||||
protected HtmlGenericControl divScsiModeSense;
|
||||
|
||||
protected Repeater repModeSense;
|
||||
|
||||
protected HtmlGenericControl divScsiEvpd;
|
||||
|
||||
protected Repeater repEvpd;
|
||||
|
||||
protected HtmlGenericControl divScsiMmcMode;
|
||||
|
||||
protected Repeater repScsiMmcMode;
|
||||
|
||||
protected HtmlGenericControl divScsiMmcFeatures;
|
||||
|
||||
protected Repeater repScsiMmcFeatures;
|
||||
|
||||
protected HtmlGenericControl divScsiSsc;
|
||||
|
||||
protected Label lblScsiSscGranularity;
|
||||
|
||||
protected Label lblScsiSscMaxBlock;
|
||||
|
||||
protected Label lblScsiSscMinBlock;
|
||||
|
||||
protected Repeater repScsiSscDensities;
|
||||
|
||||
protected Repeater repScsiSscMedias;
|
||||
|
||||
protected HtmlGenericControl divTestedMedia;
|
||||
|
||||
protected Repeater repTestedMedia;
|
||||
|
||||
protected HtmlGenericControl divMMC;
|
||||
|
||||
protected Repeater repMMC;
|
||||
|
||||
protected HtmlGenericControl divSD;
|
||||
|
||||
protected Repeater repSD;
|
||||
}
|
||||
}
|
||||
66
DiscImageChef.Server/Views/Home/Changelog.cshtml
Normal file
66
DiscImageChef.Server/Views/Home/Changelog.cshtml
Normal file
@@ -0,0 +1,66 @@
|
||||
@{
|
||||
ViewBag.Title = "DiscImageChef";
|
||||
}
|
||||
@{
|
||||
/***************************************************************************
|
||||
The Disc Image Chef
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
Filename : Changelog.aspx
|
||||
Author(s) : Natalia Portillo <claunia@claunia.com>
|
||||
|
||||
Component : DiscImageChef Server.
|
||||
|
||||
--[ Description ] ----------------------------------------------------------
|
||||
|
||||
Renders Changelog.md.
|
||||
|
||||
--[ License ] --------------------------------------------------------------
|
||||
|
||||
This library is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU Lesser General Public License as
|
||||
published by the Free Software Foundation; either version 2.1 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; if not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
Copyright © 2011-2018 Natalia Portillo
|
||||
****************************************************************************/
|
||||
}
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<meta charset="UTF-8">
|
||||
<head>
|
||||
<link href="../../dos.css"
|
||||
rel="stylesheet"
|
||||
type="text/css" />
|
||||
<meta charset="utf-8" />
|
||||
<title>@ViewBag.Title</title>
|
||||
<!-- Global site tag (gtag.js) - Google Analytics -->
|
||||
<script async
|
||||
src="https://www.googletagmanager.com/gtag/js?id=UA-111466173-1"></script>
|
||||
<script>
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
|
||||
function gtag() { dataLayer.push(arguments); }
|
||||
|
||||
gtag('js', new Date());
|
||||
|
||||
gtag('config', 'UA-111466173-1');
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<p>
|
||||
@Html.ActionLink("Return to main page.", "Index")<br />
|
||||
DiscImageChef list of changes:
|
||||
</p>
|
||||
<div>@Html.Raw(ViewBag.Markdown)</div>
|
||||
</body>
|
||||
</html>
|
||||
66
DiscImageChef.Server/Views/Home/DONATING.cshtml
Normal file
66
DiscImageChef.Server/Views/Home/DONATING.cshtml
Normal file
@@ -0,0 +1,66 @@
|
||||
@{
|
||||
ViewBag.Title = "DiscImageChef";
|
||||
}
|
||||
@{
|
||||
/***************************************************************************
|
||||
The Disc Image Chef
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
Filename : DONATING.aspx
|
||||
Author(s) : Natalia Portillo <claunia@claunia.com>
|
||||
|
||||
Component : DiscImageChef Server.
|
||||
|
||||
--[ Description ] ----------------------------------------------------------
|
||||
|
||||
Renders DONATING.md.
|
||||
|
||||
--[ License ] --------------------------------------------------------------
|
||||
|
||||
This library is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU Lesser General Public License as
|
||||
published by the Free Software Foundation; either version 2.1 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; if not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
Copyright © 2011-2018 Natalia Portillo
|
||||
****************************************************************************/
|
||||
}
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<meta charset="UTF-8">
|
||||
<head>
|
||||
<link href="../../dos.css"
|
||||
rel="stylesheet"
|
||||
type="text/css" />
|
||||
<title>@ViewBag.Title</title>
|
||||
<meta charset="utf-8" />
|
||||
<!-- Global site tag (gtag.js) - Google Analytics -->
|
||||
<script async
|
||||
src="https://www.googletagmanager.com/gtag/js?id=UA-111466173-1"></script>
|
||||
<script>
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
|
||||
function gtag() { dataLayer.push(arguments); }
|
||||
|
||||
gtag('js', new Date());
|
||||
|
||||
gtag('config', 'UA-111466173-1');
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<p>
|
||||
@Html.ActionLink("Return to main page.", "Index")<br />
|
||||
DiscImageChef list of things to be donated:
|
||||
</p>
|
||||
<div>@Html.Raw(ViewBag.Markdown)</div>
|
||||
</body>
|
||||
</html>
|
||||
71
DiscImageChef.Server/Views/Home/Index.cshtml
Normal file
71
DiscImageChef.Server/Views/Home/Index.cshtml
Normal file
@@ -0,0 +1,71 @@
|
||||
@{
|
||||
ViewBag.Title = "DiscImageChef";
|
||||
}
|
||||
@{
|
||||
/***************************************************************************
|
||||
The Disc Image Chef
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
Filename : Default.aspx
|
||||
Author(s) : Natalia Portillo <claunia@claunia.com>
|
||||
|
||||
Component : DiscImageChef Server.
|
||||
|
||||
--[ Description ] ----------------------------------------------------------
|
||||
|
||||
Renders README.md.
|
||||
|
||||
--[ License ] --------------------------------------------------------------
|
||||
|
||||
This library is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU Lesser General Public License as
|
||||
published by the Free Software Foundation; either version 2.1 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; if not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
Copyright © 2011-2018 Natalia Portillo
|
||||
****************************************************************************/
|
||||
}
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<meta charset="UTF-8">
|
||||
<head>
|
||||
<link href="../../dos.css"
|
||||
rel="stylesheet"
|
||||
type="text/css" />
|
||||
<meta charset="utf-8" />
|
||||
<title>@ViewBag.Title</title>
|
||||
<!-- Global site tag (gtag.js) - Google Analytics -->
|
||||
<script async
|
||||
src="https://www.googletagmanager.com/gtag/js?id=UA-111466173-1"></script>
|
||||
<script>
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
|
||||
function gtag() { dataLayer.push(arguments); }
|
||||
|
||||
gtag('js', new Date());
|
||||
|
||||
gtag('config', 'UA-111466173-1');
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<h1 align="center">
|
||||
Welcome to
|
||||
<i>
|
||||
<a href="http://github.com/claunia/discimagechef"
|
||||
target="_blank">
|
||||
DiscImageChef
|
||||
</a>
|
||||
</i> Server version @ViewBag.lblVersion
|
||||
</h1>
|
||||
<div>@Html.Raw(ViewBag.Markdown)</div>
|
||||
</body>
|
||||
</html>
|
||||
66
DiscImageChef.Server/Views/Home/TODO.cshtml
Normal file
66
DiscImageChef.Server/Views/Home/TODO.cshtml
Normal file
@@ -0,0 +1,66 @@
|
||||
@{
|
||||
ViewBag.Title = "DiscImageChef";
|
||||
}
|
||||
@{
|
||||
/***************************************************************************
|
||||
The Disc Image Chef
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
Filename : Changelog.aspx
|
||||
Author(s) : Natalia Portillo <claunia@claunia.com>
|
||||
|
||||
Component : DiscImageChef Server.
|
||||
|
||||
--[ Description ] ----------------------------------------------------------
|
||||
|
||||
Renders Changelog.md.
|
||||
|
||||
--[ License ] --------------------------------------------------------------
|
||||
|
||||
This library is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU Lesser General Public License as
|
||||
published by the Free Software Foundation; either version 2.1 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; if not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
Copyright © 2011-2018 Natalia Portillo
|
||||
****************************************************************************/
|
||||
}
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<meta charset="UTF-8">
|
||||
<head>
|
||||
<link href="../../dos.css"
|
||||
rel="stylesheet"
|
||||
type="text/css" />
|
||||
<meta charset="utf-8" />
|
||||
<title>@ViewBag.Title</title>
|
||||
<!-- Global site tag (gtag.js) - Google Analytics -->
|
||||
<script async
|
||||
src="https://www.googletagmanager.com/gtag/js?id=UA-111466173-1"></script>
|
||||
<script>
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
|
||||
function gtag() { dataLayer.push(arguments); }
|
||||
|
||||
gtag('js', new Date());
|
||||
|
||||
gtag('config', 'UA-111466173-1');
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<p>
|
||||
@Html.ActionLink("Return to main page.", "Index")<br />
|
||||
DiscImageChef list of things to do:
|
||||
</p>
|
||||
<div>@Html.Raw(ViewBag.Markdown)</div>
|
||||
</body>
|
||||
</html>
|
||||
250
DiscImageChef.Server/Views/Report/View.cshtml
Normal file
250
DiscImageChef.Server/Views/Report/View.cshtml
Normal file
@@ -0,0 +1,250 @@
|
||||
@using DiscImageChef.CommonTypes.Metadata
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<link href="../../dos.css"
|
||||
rel="stylesheet"
|
||||
type="text/css" />
|
||||
<title>DiscImageChef Device Report</title>
|
||||
<meta charset="utf-8" />
|
||||
<!-- Global site tag (gtag.js) - Google Analytics -->
|
||||
<script async
|
||||
src="https://www.googletagmanager.com/gtag/js?id=UA-111466173-1"></script>
|
||||
<script>
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
|
||||
function gtag() { dataLayer.push(arguments); }
|
||||
|
||||
gtag('js', new Date());
|
||||
|
||||
gtag('config', 'UA-111466173-1');
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
DiscImageChef Report for
|
||||
@ViewBag.lblManufacturer
|
||||
@ViewBag.lblModel
|
||||
@ViewBag.lblRevision
|
||||
|
||||
@if(ViewBag.UsbItem != null)
|
||||
{
|
||||
<div id="divUsb">
|
||||
<br />
|
||||
<b>USB characteristics:</b><br />
|
||||
<i>Manufacturer:</i> @ViewBag.UsbItem.Manufacturer<br />
|
||||
<i>Product:</i> @ViewBag.UsbItem.Product<br />
|
||||
<i>Vendor ID:</i> @ViewBag.UsbItem.VendorDescription<br />
|
||||
<i>Product ID:</i> @ViewBag.UsbItem.ProductDescription
|
||||
</div>
|
||||
}
|
||||
|
||||
@if(ViewBag.FireWireItem != null)
|
||||
{
|
||||
<div id="divFireWire">
|
||||
<br />
|
||||
<b>FireWire characteristics:</b><br />
|
||||
<i>Manufacturer:</i> @ViewBag.FireWire.Manufacturer<br />
|
||||
<i>Product:</i> @ViewBag.FireWire.Product<br />
|
||||
<i>Vendor ID:</i> @ViewBag.FireWire.VendorDescription<br />
|
||||
<i>Product ID:</i> @ViewBag.FireWire.ProductDescription
|
||||
</div>
|
||||
}
|
||||
|
||||
@if(ViewBag.PcmciaItem != null)
|
||||
{
|
||||
<div id="divPcmcia">
|
||||
<br />
|
||||
<b>PCMCIA characteristics:</b><br />
|
||||
<i>Manufacturer:</i> @ViewBag.PcmciaItem.Manufacturer<br />
|
||||
<i>Product:</i> @ViewBag.PcmciaItem.ProductName<br />
|
||||
<i>Manufacturer code:</i> @ViewBag.PcmciaItem.VendorDescription<br />
|
||||
<i>Card code:</i> @ViewBag.PcmciaItem.CardCode<br />
|
||||
<i>Compliance:</i> @ViewBag.PcmciaItem.Compliance<br />
|
||||
@if(ViewBag.repPcmciaTuples != null)
|
||||
{
|
||||
foreach(KeyValuePair<string, string> kvp in ViewBag.repPcmciaTuples)
|
||||
{
|
||||
<text><i>@kvp.Key</i>: @kvp.Value<br /></text>
|
||||
}
|
||||
}
|
||||
</div>
|
||||
}
|
||||
|
||||
@if(ViewBag.AtaItem != null)
|
||||
{
|
||||
<div id="divAta">
|
||||
<br />
|
||||
<b>
|
||||
@ViewBag.AtaItem characteristics:
|
||||
</b><br />
|
||||
@ViewBag.lblAtaDeviceType<br />
|
||||
@foreach(KeyValuePair<string, string> kvp in ViewBag.repAtaTwo)
|
||||
{
|
||||
<text><i>@kvp.Key</i>: @kvp.Value<br /></text>
|
||||
}
|
||||
<br />
|
||||
@foreach(string item in ViewBag.repAtaOne)
|
||||
{
|
||||
@Html.Raw(item)<br />
|
||||
}
|
||||
</div>
|
||||
}
|
||||
@if(ViewBag.repScsi != null)
|
||||
{
|
||||
<div id="divScsi">
|
||||
<br />
|
||||
<b>SCSI characteristics:</b><br />
|
||||
<i>Vendor:</i>@ViewBag.lblScsiVendor<br />
|
||||
<i>Product:</i>@ViewBag.lblScsiProduct<br />
|
||||
<i>Revision:</i>@ViewBag.lblScsiRevision<br />
|
||||
@foreach(string item in ViewBag.repScsi)
|
||||
{
|
||||
@Html.Raw(item)<br />
|
||||
}
|
||||
@if(ViewBag.repModeSense != null)
|
||||
{
|
||||
<div id="divScsiModeSense">
|
||||
<br /><i>SCSI mode sense pages:</i>
|
||||
<table border="1">
|
||||
<tr>
|
||||
<th>Mode</th>
|
||||
<th>Contents</th>
|
||||
</tr>
|
||||
@foreach(KeyValuePair<string, string> kvp in ViewBag.repModeSense)
|
||||
{
|
||||
<tr>
|
||||
<td>
|
||||
@kvp.Key
|
||||
</td>
|
||||
<td>
|
||||
@Html.Raw(kvp.Value)
|
||||
</td>
|
||||
</tr>
|
||||
}
|
||||
</table>
|
||||
</div>
|
||||
}
|
||||
@if(ViewBag.repEvpd != null)
|
||||
{
|
||||
<div id="divScsiEvpd">
|
||||
<br /><i>SCSI extended vital product data pages:</i>
|
||||
<table border="1">
|
||||
<tr>
|
||||
<th>EVPD</th>
|
||||
<th>Contents</th>
|
||||
</tr>
|
||||
@foreach(KeyValuePair<string, string> kvp in ViewBag.repEvpd)
|
||||
{
|
||||
<tr>
|
||||
<td>
|
||||
@kvp.Key
|
||||
</td>
|
||||
<td>
|
||||
@Html.Raw(kvp.Value)
|
||||
</td>
|
||||
</tr>
|
||||
}
|
||||
</table>
|
||||
</div>
|
||||
}
|
||||
@if(ViewBag.repScsiMmcMode != null)
|
||||
{
|
||||
<div id="divScsiMmcMode">
|
||||
<br /><b>SCSI CD-ROM capabilities:</b><br />
|
||||
@foreach(string item in ViewBag.repScsiMmcMode)
|
||||
{
|
||||
@Html.Raw(item)<br />
|
||||
}
|
||||
</div>
|
||||
}
|
||||
@if(ViewBag.repScsiMmcFeatures != null)
|
||||
{
|
||||
<div id="divScsiMmcFeatures">
|
||||
<br /><b>SCSI MMC features:</b><br />
|
||||
@foreach(string item in ViewBag.repScsiMmcFeatures)
|
||||
{
|
||||
@Html.Raw(item)<br />
|
||||
}
|
||||
</div>
|
||||
}
|
||||
@if(ViewBag.divScsiSscVisible == true)
|
||||
{
|
||||
<div id="divScsiSsc">
|
||||
<br /><b>SCSI Streaming device capabilities:</b><br />
|
||||
Block size granularity: @ViewBag.lblScsiSscGranularity<br />
|
||||
Maximum block length: @ViewBag.lblScsiSscMaxBlock bytes<br />
|
||||
Minimum block length: @ViewBag.lblScsiSscMinBlock bytes<br />
|
||||
@if(ViewBag.repScsiSscDensities != null)
|
||||
{
|
||||
foreach(SupportedDensity density in ViewBag.repScsiSscDensities)
|
||||
{
|
||||
<text>
|
||||
<br />
|
||||
<b>
|
||||
Information for supported density with primary code @($"{density.PrimaryCode:X2h}") and secondary code @($"{density.SecondaryCode:X2h}")
|
||||
</b><br />
|
||||
Drive can write this density: @density.Writable<br />
|
||||
Duplicate density: @density.Duplicate<br />
|
||||
Default density: @density.DefaultDensity<br />
|
||||
Density has @density.BitsPerMm bits per mm, with @density.Tracks tracks in a @density.Width mm width tape
|
||||
Name: @density.Name<br />
|
||||
Organization: @density.Organization<br />
|
||||
Description: @density.Description<br />
|
||||
Maximum capacity: @density.Capacity megabytes<br />
|
||||
</text>
|
||||
}
|
||||
}
|
||||
@if(ViewBag.repScsiSscMedias != null)
|
||||
{
|
||||
foreach(SscSupportedMedia media in ViewBag.repScsiSscMedias)
|
||||
{
|
||||
<text>
|
||||
<br />
|
||||
<b>
|
||||
Information for supported media with type code @($"{media.MediumType:X2h}")
|
||||
</b><br />
|
||||
Media is @media.Length m long in a @media.Width mm width tape
|
||||
Name: @media.Name<br />
|
||||
Organization: @media.Organization<br />
|
||||
Description: @media.Description<br />
|
||||
</text>
|
||||
}
|
||||
}
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
}
|
||||
@if(ViewBag.repTestedMedia != null)
|
||||
{
|
||||
<div id="divTestedMedia">
|
||||
<br /><b>Tested media:</b><br />
|
||||
@foreach(string item in ViewBag.repTestedMedia)
|
||||
{
|
||||
@Html.Raw(item)<br />
|
||||
}
|
||||
</div>
|
||||
}
|
||||
@if(ViewBag.repMMC != null)
|
||||
{
|
||||
<div id="divMMC">
|
||||
<br />
|
||||
<b>MultiMediaCard device:</b><br />
|
||||
@foreach(string item in ViewBag.repMMC)
|
||||
{
|
||||
@Html.Raw(item)<br />
|
||||
}
|
||||
</div>
|
||||
}
|
||||
@if(ViewBag.repSD != null)
|
||||
{
|
||||
<div id="divSD">
|
||||
<br />
|
||||
<b>SecureDigital device:</b><br />
|
||||
@foreach(string item in ViewBag.repSD)
|
||||
{
|
||||
@Html.Raw(item)<br />
|
||||
}
|
||||
</div>
|
||||
}
|
||||
</body>
|
||||
</html>
|
||||
315
DiscImageChef.Server/Views/Stats/Index.cshtml
Normal file
315
DiscImageChef.Server/Views/Stats/Index.cshtml
Normal file
@@ -0,0 +1,315 @@
|
||||
@using DiscImageChef.CommonTypes.Metadata
|
||||
@using DiscImageChef.Server.Models
|
||||
@using Filter = DiscImageChef.Server.Models.Filter
|
||||
@{
|
||||
ViewBag.Title = "DiscImageChef Statistics";
|
||||
}
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta content="width=device-width, initial-scale=1.0"
|
||||
name="viewport">
|
||||
<title>@ViewBag.Title</title>
|
||||
<link href="../../dos.css"
|
||||
rel="stylesheet"
|
||||
type="text/css" />
|
||||
<meta charset="utf-8" />
|
||||
<!-- Global site tag (gtag.js) - Google Analytics -->
|
||||
<script async
|
||||
src="https://www.googletagmanager.com/gtag/js?id=UA-111466173-1"></script>
|
||||
<script>
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
|
||||
function gtag() { dataLayer.push(arguments); }
|
||||
|
||||
gtag('js', new Date());
|
||||
|
||||
gtag('config', 'UA-111466173-1');
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<h1 align="center">
|
||||
Welcome to
|
||||
<i>
|
||||
<a href="http://github.com/claunia/discimagechef"
|
||||
target="_blank">
|
||||
DiscImageChef
|
||||
</a>
|
||||
</i> Server version @ViewBag.Version
|
||||
</h1>
|
||||
<br />
|
||||
<div>
|
||||
@if(ViewBag.repOperatingSystems != null)
|
||||
{
|
||||
<div id="divOperatingSystems">
|
||||
<table>
|
||||
@foreach(NameValueStats os in ViewBag.repOperatingSystems)
|
||||
{
|
||||
<tr>
|
||||
<td>
|
||||
DiscImageChef has run on <i>@os.name</i> @os.Value times.
|
||||
</td>
|
||||
</tr>
|
||||
}
|
||||
</table>
|
||||
<br />
|
||||
</div>
|
||||
}
|
||||
@if(ViewBag.repVersions != null)
|
||||
{
|
||||
<div id="divVersions">
|
||||
<table>
|
||||
@foreach(NameValueStats version in ViewBag.repVersions)
|
||||
{
|
||||
<tr>
|
||||
<td>
|
||||
DiscImageChef version <i>@version.name</i> has been used @version.Value times.
|
||||
</td>
|
||||
</tr>
|
||||
}
|
||||
</table>
|
||||
<br />
|
||||
</div>
|
||||
}
|
||||
<div id="divCommands">
|
||||
<h4>Commands run:</h4>
|
||||
<p>
|
||||
<i>analyze</i> command has been run @ViewBag.lblAnalyze times<br />
|
||||
<i>benchmark</i> command has been run @ViewBag.lblBenchmark times<br />
|
||||
<i>checksum</i> command has been run @ViewBag.lblChecksum times<br />
|
||||
<i>compare</i> command has been run @ViewBag.lblCompare times<br />
|
||||
<i>convert-image</i> command has been run @ViewBag.lblConvertImage times<br />
|
||||
<i>create-sidecar</i> command has been run @ViewBag.lblCreateSidecar times<br />
|
||||
<i>decode</i> command has been run @ViewBag.lblDecode times<br />
|
||||
<i>device-info</i> command has been run @ViewBag.lblDeviceInfo times<br />
|
||||
<i>device-report</i> command has been run @ViewBag.lblDeviceReport times<br />
|
||||
<i>dump-media</i> command has been run @ViewBag.lblDumpMedia times<br />
|
||||
<i>entropy</i> command has been run @ViewBag.lblEntropy times<br />
|
||||
<i>extract-files</i> command has been run @ViewBag.lblExtractFiles times<br />
|
||||
<i>formats</i> command has been run @ViewBag.lblFormats times<br />
|
||||
<i>image-info</i> command has been run @ViewBag.lblImageInfo times<br />
|
||||
<i>list-devices</i> command has been run @ViewBag.lblListDevices times<br />
|
||||
<i>list-encodings</i> command has been run @ViewBag.lblListEncodings times<br />
|
||||
<i>ls</i> command has been run @ViewBag.lblLs times<br />
|
||||
<i>media-info</i> command has been run @ViewBag.lblMediaInfo times<br />
|
||||
<i>media-scan</i> command has been run @ViewBag.lblMediaScan times<br />
|
||||
<i>printhex</i> command has been run @ViewBag.lblPrintHex times<br />
|
||||
<i>verify</i> command has been run @ViewBag.lblVerify times
|
||||
</p>
|
||||
</div>
|
||||
@if(ViewBag.repFilters != null)
|
||||
{
|
||||
<div id="divFilters">
|
||||
<h3>Filters found:</h3>
|
||||
<table align="center"
|
||||
border="1">
|
||||
<tr>
|
||||
<th>Filter</th>
|
||||
<th>Times</th>
|
||||
</tr>
|
||||
@foreach(Filter filter in ViewBag.repFilters)
|
||||
{
|
||||
<tr>
|
||||
<td>
|
||||
@filter.Name
|
||||
</td>
|
||||
<td>
|
||||
@($"{filter.Count}")
|
||||
</td>
|
||||
</tr>
|
||||
}
|
||||
</table>
|
||||
</div>
|
||||
}
|
||||
@if(ViewBag.repMediaImages != null)
|
||||
{
|
||||
<div id="divMediaImages">
|
||||
<h3>Media image formats found:</h3>
|
||||
<table align="center"
|
||||
border="1">
|
||||
<tr>
|
||||
<th>Media image format</th>
|
||||
<th>Times</th>
|
||||
</tr>
|
||||
@foreach(MediaFormat format in ViewBag.repMediaImages)
|
||||
{
|
||||
<tr>
|
||||
<td>
|
||||
@format.Name
|
||||
</td>
|
||||
<td>
|
||||
@($"{format.Count}")
|
||||
</td>
|
||||
</tr>
|
||||
}
|
||||
</table>
|
||||
</div>
|
||||
}
|
||||
@if(ViewBag.repPartitions != null)
|
||||
{
|
||||
<div id="divPartitions">
|
||||
<h3>Partition schemes found:</h3>
|
||||
<table align="center"
|
||||
border="1">
|
||||
<tr>
|
||||
<th>Partition scheme</th>
|
||||
<th>Times</th>
|
||||
</tr>
|
||||
@foreach(Partition partition in ViewBag.repPartitions)
|
||||
{
|
||||
<tr>
|
||||
<td>
|
||||
@partition.Name
|
||||
</td>
|
||||
<td>
|
||||
@($"{partition.Count}")
|
||||
</td>
|
||||
</tr>
|
||||
}
|
||||
</table>
|
||||
</div>
|
||||
}
|
||||
@if(ViewBag.repFilesystems != null)
|
||||
{
|
||||
<div id="divFilesystems">
|
||||
<h3>Filesystems found:</h3>
|
||||
<table align="center"
|
||||
border="1">
|
||||
<tr>
|
||||
<th>Filesystem name</th>
|
||||
<th>Times</th>
|
||||
</tr>
|
||||
@foreach(Filesystem filesystem in ViewBag.repFilesystems)
|
||||
{
|
||||
<tr>
|
||||
<td>
|
||||
@filesystem.Name
|
||||
</td>
|
||||
<td>
|
||||
@($"{filesystem.Count}")
|
||||
</td>
|
||||
</tr>
|
||||
}
|
||||
</table>
|
||||
</div>
|
||||
}
|
||||
@if(ViewBag.repVirtualMedia != null)
|
||||
{
|
||||
<div id="divVirtualMedia">
|
||||
<h3>Media types found in images:</h3>
|
||||
<table align="center"
|
||||
border="1">
|
||||
<tr>
|
||||
<th>Physical type</th>
|
||||
<th>Logical type</th>
|
||||
<th>Times</th>
|
||||
</tr>
|
||||
@foreach(MediaItem media in ViewBag.repVirtualMedia)
|
||||
{
|
||||
<tr>
|
||||
<td>
|
||||
@media.Type
|
||||
</td>
|
||||
<td>
|
||||
@media.SubType
|
||||
</td>
|
||||
<td>
|
||||
@($"{media.Count}")
|
||||
</td>
|
||||
</tr>
|
||||
}
|
||||
</table>
|
||||
</div>
|
||||
}
|
||||
@if(ViewBag.repRealMedia != null)
|
||||
{
|
||||
<div id="divRealMedia">
|
||||
<h3>Media types found in devices:</h3>
|
||||
<table align="center"
|
||||
border="1">
|
||||
<tr>
|
||||
<th>Physical type</th>
|
||||
<th>Logical type</th>
|
||||
<th>Times</th>
|
||||
</tr>
|
||||
@foreach(MediaItem media in ViewBag.repRealMedia)
|
||||
{
|
||||
<tr>
|
||||
<td>
|
||||
@media.Type
|
||||
</td>
|
||||
<td>
|
||||
@media.SubType
|
||||
</td>
|
||||
<td>
|
||||
@($"{media.Count}")
|
||||
</td>
|
||||
</tr>
|
||||
}
|
||||
</table>
|
||||
</div>
|
||||
}
|
||||
@if(ViewBag.repDevices != null)
|
||||
{
|
||||
<div id="divDevices">
|
||||
<h3>Found devices:</h3>
|
||||
<table align="center"
|
||||
border="1">
|
||||
<tr>
|
||||
<th>Manufacturer</th>
|
||||
<th>Model</th>
|
||||
<th>Revision</th>
|
||||
<th>Bus</th>
|
||||
<th>Report</th>
|
||||
</tr>
|
||||
@foreach(DeviceItem device in ViewBag.repDevices)
|
||||
{
|
||||
<tr>
|
||||
<td>
|
||||
@device.Manufacturer
|
||||
</td>
|
||||
<td>
|
||||
@device.Model
|
||||
</td>
|
||||
<td>
|
||||
@device.Revision
|
||||
</td>
|
||||
<td>
|
||||
@device.Bus
|
||||
</td>
|
||||
<td>
|
||||
@if(device.ReportId != 0)
|
||||
{
|
||||
<text>@Html.ActionLink("Yes", "View", "Report", new {id = device.ReportId}, new {target = "_blank"})</text>
|
||||
}
|
||||
else
|
||||
{ <text>No</text> }
|
||||
</td>
|
||||
</tr>
|
||||
}
|
||||
</table>
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
<hr />
|
||||
<footer>
|
||||
© 2011-2018
|
||||
<a href="http://www.claunia.com"
|
||||
target="_blank">
|
||||
Claunia.com
|
||||
</a><br />
|
||||
Fonts are © 2015-2016
|
||||
<a href="http://int10h.org"
|
||||
target="_blank">
|
||||
VileR
|
||||
</a><br />
|
||||
CSS © 2017
|
||||
<a href="http://www.freedos.org"
|
||||
target="_blank">
|
||||
The FreeDOS Project
|
||||
</a>
|
||||
</footer>
|
||||
</body>
|
||||
</html>
|
||||
43
DiscImageChef.Server/Views/Web.config
Normal file
43
DiscImageChef.Server/Views/Web.config
Normal file
@@ -0,0 +1,43 @@
|
||||
<?xml version="1.0"?>
|
||||
|
||||
<configuration>
|
||||
<configSections>
|
||||
<sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
|
||||
<section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
|
||||
<section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
|
||||
</sectionGroup>
|
||||
</configSections>
|
||||
|
||||
<system.web.webPages.razor>
|
||||
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.4.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
|
||||
<pages pageBaseType="System.Web.Mvc.WebViewPage">
|
||||
<namespaces>
|
||||
<add namespace="System.Web.Mvc" />
|
||||
<add namespace="System.Web.Mvc.Ajax" />
|
||||
<add namespace="System.Web.Mvc.Html" />
|
||||
<add namespace="System.Web.Optimization"/>
|
||||
<add namespace="System.Web.Routing" />
|
||||
<add namespace="DiscImageChef.Server" />
|
||||
</namespaces>
|
||||
</pages>
|
||||
</system.web.webPages.razor>
|
||||
|
||||
<appSettings>
|
||||
<add key="webpages:Enabled" value="false" />
|
||||
</appSettings>
|
||||
|
||||
<system.webServer>
|
||||
<handlers>
|
||||
<remove name="BlockViewHandler"/>
|
||||
<add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" />
|
||||
</handlers>
|
||||
</system.webServer>
|
||||
|
||||
<system.web>
|
||||
<compilation>
|
||||
<assemblies>
|
||||
<add assembly="System.Web.Mvc, Version=5.2.4.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
|
||||
</assemblies>
|
||||
</compilation>
|
||||
</system.web>
|
||||
</configuration>
|
||||
857
DiscImageChef.Server/docs/Changelog.md
Normal file
857
DiscImageChef.Server/docs/Changelog.md
Normal file
@@ -0,0 +1,857 @@
|
||||
# [4.5.1.1692] - 2018-07-19
|
||||
## Fixed
|
||||
### - Alcohol 120% disc image
|
||||
- Correct writing images of Compact Disc >= 60 min
|
||||
- Correct writing MODE2 tracks to image
|
||||
- Correct writing TOC to image
|
||||
- Generation of multisession images
|
||||
- Generation of pregaps changing tracks
|
||||
|
||||
# [4.5.0.1663] - 2018-06-24
|
||||
## Added
|
||||
### - Alcohol 120% disc image
|
||||
- 010editor template.
|
||||
- Support for creating images.
|
||||
|
||||
### - Apple New Disk Image Format
|
||||
- Support RLE compressed images.
|
||||
|
||||
### - Blindwrite 4 disc image
|
||||
- 010editor template.
|
||||
- Information about why this format cannot support writing.
|
||||
|
||||
### - Blindwrite 5 disc image
|
||||
- 010editor template.
|
||||
- Information about why this format cannot support writing.
|
||||
|
||||
### - DART disk image
|
||||
- Support RLE compressed images.
|
||||
|
||||
### - Decoders
|
||||
- Added Blu-ray DI decoders.
|
||||
- Support decoding 2048 bytes PFI.
|
||||
|
||||
### - Devices
|
||||
- On Linux try to open in read/write and exclusive mode, if not retry in readonly.
|
||||
- On Linux use direct SG_IO.
|
||||
- Workaround some Blu-ray drives not reporting correct size on READ DISC STRUCTURE.
|
||||
|
||||
### - DiscJuggler disc image
|
||||
- Information about why this format cannot support writing.
|
||||
|
||||
### - Dumping
|
||||
- Added support for CD drives that don't return a TOC.
|
||||
- Added support for CD drives that don't support READ CD command.
|
||||
- Added support for Compact Disc that don't report tracks.
|
||||
- Add support for dumping media in any of the now supported writable formats.
|
||||
- Dump ISRC.
|
||||
- Dump MCN.
|
||||
- Fix reading PW subchannels.
|
||||
- Separate trimming from error retry.
|
||||
- When dumping CDs in persistent mode, try disabling L-EC check if drive doesn't support TB bit, or doesn't return data with TB bit enabled.
|
||||
- When dumping, print bad sectors to dump log.
|
||||
|
||||
### - FAT filesystem
|
||||
- Add list of known boot sector hashes.
|
||||
- Support Human68k FAT16 BPB.
|
||||
|
||||
### - Filesystems
|
||||
- Detecting High Performance Optical File System (HPOFS).
|
||||
- Detecting Microsoft Resilient filesystem (ReFS).
|
||||
- Detecting PC-FX executable tracks.
|
||||
- Detecting Xia filesystem.
|
||||
|
||||
### - Apple 2IMG disk image
|
||||
- Support for creating images.
|
||||
|
||||
### - Anex86 disk image
|
||||
- Support for creating images.
|
||||
|
||||
### - Apple II interleaved disk image
|
||||
- Support for creating images.
|
||||
|
||||
### - Apple Universal Disk Image Format
|
||||
- Support for creating images.
|
||||
- Support RLE compressed images.
|
||||
|
||||
### - Apridisk disk image
|
||||
- Support for creating images.
|
||||
|
||||
### - Basic Lisa Utility disk image
|
||||
- Support for creating images.
|
||||
|
||||
### - cdrdao disc image
|
||||
- Support for creating images.
|
||||
|
||||
### - CDRWin cuesheet disc image
|
||||
- Support for creating images.
|
||||
|
||||
### - CisCopy disk image
|
||||
- Support for creating images.
|
||||
|
||||
### - CloneCD disc image
|
||||
- Support for creating images.
|
||||
|
||||
### - Digital Research DISKCOPY disk image
|
||||
- Support for creating images.
|
||||
|
||||
### - DiskCopy 4.2 disk image
|
||||
- Support for creating images.
|
||||
|
||||
### - IBM SaveDskF disk image
|
||||
- Support for creating images.
|
||||
|
||||
### - MaxiDisk disk image
|
||||
- Support for creating images.
|
||||
|
||||
### - NHDr0 disk image
|
||||
- Support for creating images.
|
||||
|
||||
### - Parallels disk image
|
||||
- Support for creating images.
|
||||
|
||||
### - QEMU Copy-On-Write disk image
|
||||
- Support for creating images.
|
||||
|
||||
### - QEMU Copy-On-Write v2 disk image
|
||||
- Support for creating images.
|
||||
|
||||
### - QEMU Enhanced Disk image
|
||||
- Support for creating images.
|
||||
|
||||
### - RAW (sector by sector) disk image
|
||||
- Added geometry and size for ZIP100 and ZIP250.
|
||||
- Support 2448 bytes/sector and 2352 bytes/sector CD images.
|
||||
- Support media tags.
|
||||
|
||||
### - Ray Arachelian's disk image
|
||||
- Support for creating images.
|
||||
|
||||
### - RS-IDE disk image
|
||||
- Support for creating images.
|
||||
|
||||
### - T98 Hard Disk Image
|
||||
- Support for creating images.
|
||||
|
||||
### - Virtual98 disk image
|
||||
- Support for creating images.
|
||||
|
||||
### - VirtualBox disk image
|
||||
- Added image type and flags.
|
||||
- Support for creating images.
|
||||
|
||||
### - VirtualPC disk image
|
||||
- Support for creating images.
|
||||
|
||||
### - VMware disk image
|
||||
- Support for creating images.
|
||||
|
||||
## Fixes
|
||||
### - Apple DOS filesystem
|
||||
- Use Apple II character set encoding.
|
||||
|
||||
### - Apple ProDOS filesystem
|
||||
- Use Apple IIc character set encoding.
|
||||
|
||||
### - BlindWrite 4 disc image
|
||||
- Fix incorrect pregap calculation preventing images from showing correct data.
|
||||
|
||||
### - CICM metadata
|
||||
- Can now get dump hardware information from images.
|
||||
|
||||
### - cdrdao disc image
|
||||
- Fix audio track endian.
|
||||
- Fix when disc catalog number uses whole ASCII and not only numeric digits.
|
||||
|
||||
### - CDRWin disc image
|
||||
- Fix when disc catalog number uses whole ASCII and not only numeric digits.
|
||||
|
||||
### - CloneCD disc image
|
||||
- Fix when disc catalog number uses whole ASCII and not only numeric digits.
|
||||
|
||||
### - Checksums
|
||||
- Correct CD ECC.
|
||||
- Correct CD EDC.
|
||||
- Fix CRC16 returning a 32-bit value.
|
||||
- Fix CRC64 endian.
|
||||
- Fix Fletcher-16.
|
||||
- Fix Fletcher-32.
|
||||
|
||||
### - Create sidecar
|
||||
- Add filesystems only to the appropriate partition and track.
|
||||
- Fix CD Lead-in, TOC and XGD tags.
|
||||
- Fix diameter setting.
|
||||
- Fix SCSI MODE SENSE.
|
||||
- Fix USB descriptors.
|
||||
|
||||
### - DART disk image
|
||||
- Fixed endian.
|
||||
|
||||
### - Devices
|
||||
- Fix sending READ LONG commands to ATA devices.
|
||||
- Fixed crashing with some rogue SCSI MMC firmwares.
|
||||
|
||||
### - Dumping
|
||||
- Correctly detect CD-i, CD+ and CD-ROM XA.
|
||||
- Correctly detect Mode 2 Form 1 and Form 2.
|
||||
- Do not retry when retry passes are zero.
|
||||
- Do not try to read multisession lead-out/lead-in as they result in errors that are not really there.
|
||||
- Get correct track flags.
|
||||
- Retry only the number of times requested.
|
||||
- Return drive to previous error correction status.
|
||||
- Send error recovery MODE before retrying sectors.
|
||||
|
||||
### - HDCopy disk image
|
||||
- Fix sector calculation.
|
||||
|
||||
### - Image comparison
|
||||
- Fix when sessions are null.
|
||||
|
||||
### - Image verification
|
||||
- Corrected status printing.
|
||||
|
||||
### - ISO9660 filesystem
|
||||
- Do not try to read past partition if El Torito indicates image goes beyond limits.
|
||||
- Fix when root directory is outside of device.
|
||||
- Skip null terminated strings in ISO9660 fields.
|
||||
|
||||
### - Lisa filesystem
|
||||
- Corrected character set encoding.
|
||||
|
||||
### - Macintosh filesystem
|
||||
- Corrected character set encoding.
|
||||
|
||||
### - PC-98 Partition Table
|
||||
- Prevent some FAT BPBs to false positive as PC-98 partition tables.
|
||||
|
||||
### - RT-11 filesystem
|
||||
- Use Radix-50 character set encoding.
|
||||
|
||||
### - System V filesystem
|
||||
- Fix partition bounds.
|
||||
|
||||
### - VirtualPC disk image
|
||||
- Corrected reading non-allocated blocks.
|
||||
|
||||
## Changes
|
||||
- Added command to convert disc images.
|
||||
- Added command to get information about an image and its contents.
|
||||
- Added D/CAS-25, D/CAS-85 and D/CAS-103 formats.
|
||||
- Added IRC notifications for Travis CI.
|
||||
- Added measured dimensions from an UMD.
|
||||
- Added media types for NEO GEO CD, PC-FX.
|
||||
- Added new image format designed to store as much information about media as a drive returns: dicformat.
|
||||
- Added numeric values to media types.
|
||||
- Added project to create test filesystems on 16-bit OS/2.
|
||||
- Added project to create test filesystems on 32-bit OS/2.
|
||||
- Added project to create test filesystems on DOS.
|
||||
- Added project to create test filesystems on Mac OS.
|
||||
- Added size of 640MiB magneto-optical disk.
|
||||
- Added support for writing disc images.
|
||||
- Compliant with GDPR.
|
||||
- Corrected floptical geometry to data according to IRIX.
|
||||
- Do not assume pointers are 32-bit in several Windows device calls.
|
||||
- Fixed when statistics settings are null.
|
||||
- Minimum .NET Framework version is now 4.6.1.
|
||||
- Sort verbs list.
|
||||
- Support newest XDG Base Directory Specification for Linux.
|
||||
|
||||
# [4.0.1.0] - 2018-01-06
|
||||
## Fixes
|
||||
### Apple DOS and ProDOS interleaved disk images
|
||||
- Fixed interleaving values.
|
||||
|
||||
### Apple Nibble disk image
|
||||
- Fixed detection of DOS vs ProDOS sector order.
|
||||
|
||||
### Apple 2IMG disk image
|
||||
- Fixed deinterleaving of DOS and ProDOS sector order.
|
||||
- Fixed denibblizing images.
|
||||
|
||||
### Apple ProDOS filesystem
|
||||
- Fixed detection on Apple II disks.
|
||||
|
||||
### UCSD Pascal filesystem
|
||||
- Added support for Apple II variants (two physical sectors per logical sector and little endian fields).
|
||||
|
||||
# [4.0.0.0] - 2017-12-25
|
||||
## Added
|
||||
### - Advanced Disc Filing System
|
||||
- Added support for ADFS-S, ADFS-M, ADFS-L, ADFS-D, ADFS-E, ADFS-E+, ADFS-F, ADFS-F+ and ADFS-G.
|
||||
|
||||
### - Apple Partition Map
|
||||
- Added support for decoding Driver Description Map.
|
||||
- Added support for maps without Driver Description Map.
|
||||
- Added support for old partition table.
|
||||
|
||||
### - Commands
|
||||
- Added separate application to debug commands sent to devices.
|
||||
- list-devices: Lists devices that can be used for device dependent commands.
|
||||
- list-encodings: Lists supported character encodings.
|
||||
|
||||
### - Create Sidecar command
|
||||
- Added support for hashing DiscFerret flux images.
|
||||
- Added support for hashing KryoFlux STREAM flux images.
|
||||
- Added support for hashing SuperCardPro flux images.
|
||||
- Added support for tape dumps where each tape-file is a separate dumped file.
|
||||
- Calculate checksum of contents not only of image file.
|
||||
- Consider each optical disc track as a separate partition.
|
||||
- Store superblock modification time on sidecar.
|
||||
- Support tracks.
|
||||
- Use dump drive information from images that support it.
|
||||
|
||||
### - Decoders
|
||||
- Xbox DMI.
|
||||
- Xbox Security Sectors.
|
||||
|
||||
### - Devices
|
||||
- MMC.
|
||||
- PCMCIA block devices.
|
||||
- SCSI Streaming Devices (aka "tapes").
|
||||
- SecureDigital.
|
||||
|
||||
### - Device commands
|
||||
- Add ATA and SCSI commands support for FreeBSD.
|
||||
- Add ATA commands support for Windows.
|
||||
- Add retrieval of USB information on Windows.
|
||||
- Add SecureDigital/MMC commands support for Windows.
|
||||
|
||||
### - Disc images.
|
||||
- Alcohol 120%.
|
||||
- Anex86.
|
||||
- Apple DOS interleaved (.do).
|
||||
- Apple New Disk Image Format (aka NDIF, aka img, aka DiskCopy 6).
|
||||
- Apple Nibble (aka NIB).
|
||||
- Apple ProDOS interleaved (.po).
|
||||
- Apple Universal Disk Image Format (aka UDIF, aka dmg).
|
||||
- BlindWrite 4.
|
||||
- BlindWrite 5.
|
||||
- CisCopy (aka DC-File or DCF).
|
||||
- CloneCD.
|
||||
- CopyQM.
|
||||
- CPCEMU Disk File.
|
||||
- CPCEMU Extended Disk File.
|
||||
- D64.
|
||||
- D71.
|
||||
- D81.
|
||||
- Digital Research's DiskCopy.
|
||||
- DiscJuggler.
|
||||
- HD-Copy.
|
||||
- IBM SaveDskF.
|
||||
- IMD.
|
||||
- MAME Compressed Hunks of Data (aka CHD).
|
||||
- Parallels Hard Disk Image (aka HDD).
|
||||
- Partclone disk images
|
||||
- Partimage disk images
|
||||
- QEMU Copy-On-Write (aka QCOW).
|
||||
- QEMU Copy-On-Write v2.
|
||||
- QEMU Enhanced Disk (aka QED).
|
||||
- Quasi88 (.D77/.D88).
|
||||
- Ray Arachelian's Disk IMage (.DIM).
|
||||
- RS-IDE hard disk images.
|
||||
- Spectrum floppy disk image (.FDI)
|
||||
- T98.
|
||||
- VHDX.
|
||||
- Virtual98.
|
||||
- VMware.
|
||||
- X68k .DIM.
|
||||
|
||||
### - DiskCopy 4.2 disk image
|
||||
- Added support for invalid images that use little-endian values.
|
||||
- Added support for images created by macOS that don't have a format byte set.
|
||||
- Use resource fork to get DiskCopy version used to create them.
|
||||
|
||||
### - Dumping
|
||||
- Added the ability to resume a partially done dump, even on a separate drive.
|
||||
- Added the ability to skip dumping the Lead-in.
|
||||
- Allow creation of a separate subchannel file.
|
||||
- Create dump log.
|
||||
- Dumping optical media creates an Alcohol 120% descriptor file.
|
||||
- Raw dump of DVD with Matshita recorders.
|
||||
- XGD with Kreon drives.
|
||||
|
||||
### - ext2/3/4 filesystem
|
||||
- Added new superblock fields.
|
||||
- Added support for devices with sectors bigger than 512 bytes.
|
||||
|
||||
### - FAT filesystem
|
||||
- Added DEC Rainbow's hard-wired BPB.
|
||||
- Added support for volumes with 256 bytes/sector.
|
||||
- Added support for ACT Apricot BPB.
|
||||
- Gets volume label, creation time and modification time from root directory if available.
|
||||
|
||||
### - Filesystems
|
||||
- Apple DOS.
|
||||
- CP/M.
|
||||
- Detecting AO-DOS.
|
||||
- Detecting AtheOS.
|
||||
- Detecting CD-i.
|
||||
- Detecting Commodore 1540/1541/1571/1581.
|
||||
- Detecting cram.
|
||||
- Detecting Cray UNICOS.
|
||||
- Detecting dump(8) (Old historic BSD, AIX, UFS and UFS2 types).
|
||||
- Detecting ECMA-67.
|
||||
- Detecting exFAT.
|
||||
- Detecting Extent File System (aka SGI EFS).
|
||||
- Detecting F2FS.
|
||||
- Detecting FAT+.
|
||||
- Detecting fossil.
|
||||
- Detecting HAMMER.
|
||||
- Detecting High Sierra Format.
|
||||
- Detecting HP Logical Interchange Format.
|
||||
- Detecting IBM JFS.
|
||||
- Detecting Locus.
|
||||
- Detecting MicroDOS file system.
|
||||
- Detecting NILFS2.
|
||||
- Detecting OS-9 Random Block File (aka RBF).
|
||||
- Detecting Professional File System (aka PFS).
|
||||
- Detecting QNX 4.
|
||||
- Detecting QNX 6.
|
||||
- Detecting Reiser.
|
||||
- Detecting Reiser4.
|
||||
- Detecting RT-11.
|
||||
- Detecting SmartFileSystem (aka SFS, aka Standard File System).
|
||||
- Detecting Squash.
|
||||
- Detecting Universal Disk Format (aka UDF).
|
||||
- Detecting Veritas.
|
||||
- Detecting VMware.
|
||||
- Detecting Xbox.
|
||||
- Detecting XFS.
|
||||
- Detecting Zettabyte File System (aka ZFS).
|
||||
- UCSD Pascal.
|
||||
|
||||
### - Filters
|
||||
- AppleDouble.
|
||||
- Apple PCExchange.
|
||||
- AppleSingle.
|
||||
- BZIP2.
|
||||
- GZIP.
|
||||
- LZIP.
|
||||
- MacBinary.
|
||||
- XZ.
|
||||
|
||||
### - GUID Partition Table
|
||||
- New type GUIDs.
|
||||
|
||||
### - ISO9660 filesystem
|
||||
- Added detection of AAIP extensions.
|
||||
- Added detection of Apple extensions.
|
||||
- Added detection of EFI Platform ID for El Torito.
|
||||
- Added detection of RRIP extensions.
|
||||
- Added detection of SUSP extensions.
|
||||
- Added detection of XA extensions.
|
||||
- Added detection of ziso extensions.
|
||||
|
||||
### - Lisa filesystem
|
||||
- Full read-only support.
|
||||
|
||||
### - Media types
|
||||
- DDS, DDS-2, DDS-3, DDS-4.
|
||||
- HiFD.
|
||||
- IOMEGA Clik! (aka PocketZip).
|
||||
- IOMEGA JAZ.
|
||||
- LS-120, LS-240, FD32MB.
|
||||
- NEC floppies.
|
||||
- Old DEC hard disks
|
||||
- SHARP floppies.
|
||||
- XGD3.
|
||||
|
||||
### - Partitions
|
||||
- Acorn FileCore.
|
||||
- ACT Apricot.
|
||||
- BSD disklabels.
|
||||
- DEC disklabels.
|
||||
- DragonFly BSD.
|
||||
- Human68k.
|
||||
- MINIX subpartitions.
|
||||
- NEC PC-9800.
|
||||
- Plan9 partition table.
|
||||
- Rio Karma.
|
||||
- SGI Disk Volume Headers.
|
||||
- UNIX hardwired partition tables.
|
||||
- UNIX VTOC.
|
||||
- XENIX partition table.
|
||||
|
||||
### - SCSI decoding
|
||||
- Handling of EVPDs smaller than length field.
|
||||
- Handling of modes 02h, 04h and 1Ch smaller than expected.
|
||||
- Prettyfying of mode 0Bh.
|
||||
|
||||
### - SmartFileSystem
|
||||
- Added support for version 2.
|
||||
|
||||
### - Statistics
|
||||
- Added version and operating system statistics.
|
||||
|
||||
### - Sun disklabel
|
||||
- Added bound checks.
|
||||
- Added support for 16-entries VTOC.
|
||||
- Added support for pre-VTOC disklabels.
|
||||
- Corrected structures for 8-entries VTOC.
|
||||
|
||||
### - System V filesystem
|
||||
- Added COHERENT offsets.
|
||||
- Check for it starting on second cylinder.
|
||||
- Corrected cluster size calculation.
|
||||
- Corrected detection between Release 2 and Release 4.
|
||||
- Corrected Release 2 superblock parameters.
|
||||
- Enlarged NICFREE for Version 7.
|
||||
|
||||
### TeleDisk images
|
||||
- Added support for Advanced Compression.
|
||||
- Added support for floppy lead-out.
|
||||
- Added variable sectors per track support.
|
||||
|
||||
## Fixes
|
||||
### - AmigaDOS filesystem
|
||||
- Corrected checksum calculation.
|
||||
- Corrected cluster size calculation.
|
||||
- Corrected root block location.
|
||||
- Corrected support for AROS i386 variant that has a PC bootblock before the AmigaDOS bootblock itself.
|
||||
- Detection on hard disks or with clusters bigger than 1 sector.
|
||||
- Tested FFS2.
|
||||
|
||||
### - Apple Partition Map
|
||||
- Added bound checks.
|
||||
- Added support for decoding Driver Description Map.
|
||||
- Added support for maps without Driver Description Map.
|
||||
- Added support for old partition table.
|
||||
- Corrected partition start when map it's not on start of device.
|
||||
- Corrected support for misaligned maps, like on CDs.
|
||||
- Cut partitions that span outside the device.
|
||||
|
||||
### - cdrdao
|
||||
- Audio track matching.
|
||||
- Corrected images that start with comments.
|
||||
- Prevent reading binary files.
|
||||
|
||||
### - CDRWin
|
||||
- CD-Text detection.
|
||||
- CD+G data return.
|
||||
- Fixed composer parsing.
|
||||
- Prevent reading binary files.
|
||||
|
||||
### - CP/M filesystem
|
||||
- Corrected cluster count calculation.
|
||||
- Corrected directory location on CP/M-86.
|
||||
- Corrected sector reading.
|
||||
- Skip media types that were never used as a CP/M disk.
|
||||
|
||||
### - Create Sidecar command
|
||||
- Corrected creation when path is absolute.
|
||||
|
||||
### - Device commands
|
||||
- Do not send SCSI INQUIRY to non-SCSI paths on Linux.
|
||||
|
||||
### - Device reports
|
||||
- Call ATA READ LONG last, as it confuses some drives.
|
||||
- Try SCSI READ LONG (10) until max block size (65535).
|
||||
|
||||
### - DiskCopy 4.2
|
||||
- Corrected track order for Lisa and Macintosh Twiggy.
|
||||
|
||||
### - Dreamcast GDI images
|
||||
- Prevent reading binary files.
|
||||
|
||||
### - Dumping
|
||||
- Calculation of streaming device dumping speed.
|
||||
- Corrected dumping CD-R and CD-RW.
|
||||
- Optical media with 2048 bytes/sector now get ".iso" file extension.
|
||||
- Retry when SCSI devices return reset status.
|
||||
- Streaming Devices now store block size changes in metadata sidecar.
|
||||
- Wait for SCSI devices to exit ASC 28h (MEDIUM CHANGE) status.
|
||||
|
||||
### - ext2/3/4 filesystem
|
||||
- Use os type as XML system identifier.
|
||||
|
||||
### - FAT filesystem
|
||||
- Behaviour with some non-compliant media descriptors.
|
||||
- Corrected 5.25" MD1DD detection.
|
||||
- Corrected boot code detection.
|
||||
- Corrected misaligned volumes on optical media.
|
||||
- Rewritten to better detect Atari, MSX, *-DOS and ANDOS variants.
|
||||
- Use OEM name as XML system identifier.
|
||||
|
||||
### - Guid Partition Table
|
||||
- Added bound checks.
|
||||
- Corrected misaligned tables on optical media.
|
||||
- Corrected when table is smaller than one sector.
|
||||
|
||||
### - HFS filesystem
|
||||
- Corrected detection of a PowerPC only bootable volume (no boot sector).
|
||||
- Corrected misaligned volumes on optical media.
|
||||
- Corrected volume serial number case.
|
||||
|
||||
### - HFS+ filesystem
|
||||
- Corrected misaligned volumes on optical media.
|
||||
- Corrected misalignment of fields in Volume Header.
|
||||
- Use last mount version as XML system identifier.
|
||||
|
||||
### - HPFS filesystem
|
||||
- Corrected cluster size.
|
||||
- Detect boot code.
|
||||
- Show NT flags.
|
||||
- Use OEM name as XML system identifier.
|
||||
|
||||
### - ISO9660 filesystem
|
||||
- Complete rewrite.
|
||||
- Check that date fields start with a number.
|
||||
|
||||
### - Master Boot Record partitioning scheme
|
||||
- Check real presence of a GPT.
|
||||
- Corrected infinite looping on extended partitions.
|
||||
- Remove disklabels support.
|
||||
- Support misaligned MBRs on optical media.
|
||||
- Support NEC extensions.
|
||||
- Support OnTrack extensions.
|
||||
|
||||
### - MINIX filesystem
|
||||
- Added support for v1 and v2 created on MINIX 3.
|
||||
- Corrected misaligned volumes on optical media.
|
||||
|
||||
### - Nero Burning ROM
|
||||
- Corrected track handling.
|
||||
- Corrected typo on parsing v2 images.
|
||||
- Disc types.
|
||||
- Do not identify positively if footer version is unknown.
|
||||
- Lead-In handling.
|
||||
- Mode2 RAW sectors.
|
||||
- Session count.
|
||||
|
||||
### - NeXT partition table
|
||||
- Added missing fields.
|
||||
- Corrected offsets.
|
||||
- Cut partitions that span outside the device.
|
||||
|
||||
### - ODS filesystem
|
||||
- Corrected cluster size calculation.
|
||||
- Corrected misaligned volumes on optical media.
|
||||
|
||||
### - ProDOS filesystem
|
||||
- Corrected cluster size calculation.
|
||||
- Corrected misaligned volumes on optical media.
|
||||
- Volume size.
|
||||
|
||||
### - Rigid Disk Block partition scheme
|
||||
- Corrected AMIX mappings.
|
||||
|
||||
### - SCSI decoding
|
||||
- Handling of EVPDs smaller than length field.
|
||||
- Handling of modes 02h, 04h and 1Ch smaller than expected.
|
||||
- Prevented overflow on MMC FEATURES decoding.
|
||||
- Prevented overflow on SCSI MODE PAGE decoding.
|
||||
|
||||
### - SmartFileSystem
|
||||
- Added support for version 2.
|
||||
|
||||
### - Sun disklabel
|
||||
- Added bound checks.
|
||||
- Corrected structures for 8-entries VTOC.
|
||||
|
||||
### - System V filesystem
|
||||
- Check for it starting on second cylinder.
|
||||
- Corrected cluster size calculation.
|
||||
- Corrected detection between Release 2 and Release 4.
|
||||
- Corrected Release 2 superblock parameters.
|
||||
- Enlarged NICFREE for Version 7.
|
||||
|
||||
### - UFS filesystem
|
||||
- Corrected superblock locations.
|
||||
- Move superblock to a single structure and marshal it, corrects detection of several variants.
|
||||
|
||||
## Changes
|
||||
- Added a public changelog.
|
||||
- Added a side application to create device reports under Linux without a .NET environment.
|
||||
- Added operating system version statistics.
|
||||
- Added partitioning scheme name to partition structures.
|
||||
- Added several internal tests to prevent regression on changes.
|
||||
- Added support for different character encodings.
|
||||
- Added support for filters.
|
||||
- Added support for nested partitioning schemes.
|
||||
- Added support for propagating disk geometry, needed by PC-98 partitions and old MBRs.
|
||||
- Better support for decoding multibyte encodings from C, Pascal and space-padded strings.
|
||||
- Changed handling of compressed files, using temporary files and caching.
|
||||
- Corrected casting on big-endian marshalling that was failing on some .NET Framework versions.
|
||||
- Corrected filter list reuse.
|
||||
- Disabled EDC check on CDs because it is not working (TODO).
|
||||
- Filesystems now have access to full partition structure.
|
||||
- Filters no longer return their own extension when requested for filename.
|
||||
- Moved Claunia.RsrcFork to NuGet.
|
||||
- Priam tags.
|
||||
- Support drive firmware inside disc images.
|
||||
- Support subchannel with only Q channel.
|
||||
|
||||
# [3.0.0.0] - 2016-07-19
|
||||
## Added
|
||||
### - Commands
|
||||
- benchmark: Tests speed for checksum algorithms.
|
||||
- create-sidecar: Creates an XML sidecar with metadata.
|
||||
- decode: Decodes and prints a disk tag present on the image.
|
||||
- device-info: Prints device information.
|
||||
- dump-media: Dumps media to a disk image.
|
||||
- entropy: Calculates disk entropy.
|
||||
- media-info: Prints media information.
|
||||
- scan-media: Scans media for errors.
|
||||
|
||||
### - Checksums
|
||||
- Adler-32
|
||||
- SpamSum
|
||||
|
||||
### - Devices
|
||||
- ATA on Linux.
|
||||
- ATA on Windows (untested).
|
||||
- FireWire on Linux.
|
||||
- SCSI on Linux.
|
||||
- SCSI on Windows (untested).
|
||||
- USB on Linux.
|
||||
|
||||
### - Disc images
|
||||
- Apple 2IMG.
|
||||
- CDRDAO.
|
||||
- Dreamcast GDI.
|
||||
- VirtualPC.
|
||||
|
||||
### - Fast File System (FFS)
|
||||
- Atari UNIX variant.
|
||||
|
||||
### - Filesystems
|
||||
- Acorn ADFS.
|
||||
- AmigaDOS.
|
||||
- Apple File System, aka APFS.
|
||||
- Apple ProDOS.
|
||||
- btrfs.
|
||||
- Nintendo Gamecube.
|
||||
- Nintendo Wii.
|
||||
|
||||
### - Partitions
|
||||
- Amiga Rigid Disk Block (aka RDB).
|
||||
- Atari.
|
||||
- Sun.
|
||||
- (U)EFI GPT.
|
||||
|
||||
## Changes
|
||||
### - PrintHex command
|
||||
- Allow to print several sectors.
|
||||
|
||||
## Fixes
|
||||
### - Be filesystem
|
||||
- Endianness.
|
||||
- Support for Be CDs.
|
||||
|
||||
### - CDRWin disk image
|
||||
- Behaviour on .NET Framework.
|
||||
- Detection of CD-ROM XA.
|
||||
- Flags.
|
||||
- Partition calculations.
|
||||
|
||||
### - Fast File System (FFS)
|
||||
- False positives with 7th Edition.
|
||||
|
||||
### - ISO9660
|
||||
- Dreamcast IP.BIN decoding.
|
||||
- Sega CD IP.BIN decoding.
|
||||
|
||||
### - System V Filesystem
|
||||
- Big endian support
|
||||
|
||||
# [2.20] - 2014-08-28
|
||||
## Added
|
||||
### - Checksums
|
||||
- Reed Solomon.
|
||||
|
||||
## Fixes
|
||||
### - Apple Partition Map
|
||||
- Disks with 2048 bytes/sector but a 512 bytes/sector map.
|
||||
|
||||
### - HFS
|
||||
- Disks with 2048 bytes/sector but a 512 bytes/sector filesystem.
|
||||
|
||||
# [2.10] - 2014-08-25
|
||||
## Added
|
||||
### - Checksums
|
||||
- CD EDC and ECC.
|
||||
- CRC16.
|
||||
|
||||
### - Commands
|
||||
- Verify: Verifies disk image contents, if supported.
|
||||
|
||||
### - Disc images
|
||||
- Nero Burning ROM.
|
||||
|
||||
# [2.0] - 2014-07-03
|
||||
## Added
|
||||
### - Commands
|
||||
- analyze: Gives informatio about disk image contents as well as detecting partitions and filesystems.
|
||||
- checksum: Generates CRC32, CRC64, RIPEMD160, MD5, SHA1, SHA256, SHA384 and SHA512 checksums of disk image contents.
|
||||
- compare: Compares two media images.
|
||||
- printhex: Prints a hexadecimal output of a sector.
|
||||
|
||||
### - Disc images
|
||||
- RAW (sector by sector).
|
||||
|
||||
### - Media types
|
||||
- BD-R.
|
||||
- BD-RE XL.
|
||||
- FDFORMAT.
|
||||
|
||||
## Fixes
|
||||
### - FAT filesystem
|
||||
- Workaround FAT12 without BIOS Parameter Block.
|
||||
|
||||
### - MBR partitions
|
||||
- Do not search for them on disks with less than 512 bytes/sector.
|
||||
|
||||
### - ODS-11 filesystem
|
||||
- Do not search for them on disks with less than 512 bytes/sector.
|
||||
|
||||
# [1.10] - 2014-04-21
|
||||
## Added
|
||||
### - Disc images
|
||||
- Sydex TeleDisk.
|
||||
|
||||
# [1.0] - 2014-04-17
|
||||
## Added
|
||||
### - Filesystems
|
||||
- Detecting BeFS.
|
||||
- Detecting ext.
|
||||
- Detecting ext2.
|
||||
- Detecting ext3.
|
||||
- Detecting ext4.
|
||||
- Detecting FAT12.
|
||||
- Detecting FAT16.
|
||||
- Detecting FAT32.
|
||||
- Detecting FFS.
|
||||
- Detecting HFS+.
|
||||
- Detecting HFS.
|
||||
- Detecting HPFS.
|
||||
- Detecting ISO9660.
|
||||
- Detecting LisaFS.
|
||||
- Detecting MFS.
|
||||
- Detecting MinixFS.
|
||||
- Detecting NTFS.
|
||||
- Detecting ODS-11.
|
||||
- Detecting Opera.
|
||||
- Detecting PCEngine.
|
||||
- Detecting SolarFS.
|
||||
- Detecting System V.
|
||||
- Detecting UFS.
|
||||
- Detecting UFS2.
|
||||
- Detecting UnixWare boot.
|
||||
|
||||
### - Disc images
|
||||
- Apple DiskCopy 4.2.
|
||||
- CDRWin.
|
||||
|
||||
### - Partitions
|
||||
- Apple Partition Map (aka APM).
|
||||
- Master Boot Record (aka MBR).
|
||||
- NeXT disklabels.
|
||||
|
||||
[4.5.1.1692]: https://github.com/claunia/DiscImageChef/releases/tag/v4.5.1.1692
|
||||
[4.5.0.1663]: https://github.com/claunia/DiscImageChef/releases/tag/v4.5.0.1663
|
||||
[4.0.1.0]: https://github.com/claunia/DiscImageChef/releases/tag/v4.0.1.0
|
||||
[4.0.0.0]: https://github.com/claunia/DiscImageChef/releases/tag/v4.0.0.0
|
||||
[3.0.0.0]: https://github.com/claunia/DiscImageChef/releases/tag/v3.0.0.0
|
||||
[2.20]: https://github.com/claunia/DiscImageChef/releases/tag/v2.2
|
||||
[2.10]: https://github.com/claunia/DiscImageChef/releases/tag/v2.1
|
||||
[2.0]: https://github.com/claunia/DiscImageChef/releases/tag/v2.0
|
||||
174
DiscImageChef.Server/docs/DONATING.md
Normal file
174
DiscImageChef.Server/docs/DONATING.md
Normal file
@@ -0,0 +1,174 @@
|
||||
Hardware donations
|
||||
==================
|
||||
|
||||
This is a list of hardware that I'm searching but is too rare or too expensive for me to get them.
|
||||
The reason I want this hardware is because having it is the only way to add enhanced support for them (e.g. media detection, ECC support, raw dumping, etc.).
|
||||
After adding enhanced support all drives will be given to the Canary Islands Computer Museum.
|
||||
|
||||
- 3.5" magneto-optical media: 540MiB, 1.3GiB
|
||||
- 5.25" magneto-optical drive and media
|
||||
- 8" shugart drive
|
||||
- ADR drive and tapes
|
||||
- AIT drive and tapes
|
||||
- Apple twiggy and media
|
||||
- Caleb UHD144 drive
|
||||
- Castlewood Orb 2.2 and 5.7
|
||||
- DLT drive and tapes
|
||||
- DiscFerret
|
||||
- HD-DVD media
|
||||
- Host-aware and host-controller SAS and SATA zoned hard disks
|
||||
- Insite floptical drive
|
||||
- Iomega Bernoulli
|
||||
- Iomega Ditto drive and tapes
|
||||
- Iomega JAZ and JAZ 2
|
||||
- Iomega REV
|
||||
- Iomega ZIP750 drive
|
||||
- LD-ROM drive and media
|
||||
- LTO drive and tapes
|
||||
- LV-ROM drive and media
|
||||
- Mammoth drive and tapes
|
||||
- Panasonic Blu-ray recorder
|
||||
- Plasmon UDO and UDO2 drives and media
|
||||
- SCSI floppy drive (e.g. Teac FD235JS806-U)
|
||||
- SLR drive and tapes
|
||||
- Sony Hi-MD and media
|
||||
- Sony HiFD
|
||||
- Sony MD-DATA and media
|
||||
- Sony Professional Disc for DATA
|
||||
- Stringy floppy
|
||||
- Syquest EZ135 drive and media
|
||||
- Syquest EZFlyer drive and media
|
||||
- Syquest Quest drive and media
|
||||
- Syquest SQ2542 drive and media
|
||||
- Syquest SQ306RD drive and SQ100 media
|
||||
- Syquest SQ3105 drive and SQ310 media
|
||||
- Syquest SQ312RD drive and SQ200 media
|
||||
- Syquest SQ319RD drive and SQ300 media
|
||||
- Syquest SQ3270 drive and SQ327 media
|
||||
- Syquest SQ5110 drive and SQ800 media
|
||||
- Syquest SQ5200C drive and SQ2000 media
|
||||
- Syquest SQ555 drive and SQ400 media
|
||||
- Syquest SparQ drive and media
|
||||
- Syquest SyJet drive and media
|
||||
- T9840, T9940, T10000 drive and tapes
|
||||
- Travan drive and tapes
|
||||
- Triton drive and media
|
||||
- VXA drive and tapes
|
||||
|
||||
|
||||
Software donations
|
||||
==================
|
||||
This is a list of software whose physical media has some characteristics that needs
|
||||
to be investigated to allow correct dumping of such characteristics. Usually those
|
||||
are copy protections.
|
||||
|
||||
- CD-V
|
||||
- CD-i Ready
|
||||
- A Christmas Songbook
|
||||
- Accelerator
|
||||
- Alien Gate
|
||||
- Beyond Limits
|
||||
- Escape
|
||||
- Lucky Luke
|
||||
- Louis Armstrong
|
||||
- Dark Fables of Aesop
|
||||
- More Dark Fables of Aesop
|
||||
- Mozart
|
||||
- Opera Imaginaire
|
||||
- Pavarotti
|
||||
- Steel Machine
|
||||
- The Apprentice
|
||||
- Dimo's Quest
|
||||
- The Worlds of...
|
||||
- SafeDisc
|
||||
- Age of Wonders II: The Wizard's Throne
|
||||
- Beowulf
|
||||
- Black & White 2
|
||||
- Brothers in Arms: Road to Hill 30
|
||||
- Call of Duty: World at War
|
||||
- Carmageddon II: Carpocalypse Now
|
||||
- Close Combat: Invasion Normandy
|
||||
- Codename: Eagle
|
||||
- Command & Conquer: Generals
|
||||
- FIFA Football 2002
|
||||
- Football Manager 2007
|
||||
- SecuROM
|
||||
- Arabian Nights
|
||||
- Arcania: Gothic 4
|
||||
- Boiling Point: Road to Hell
|
||||
- Caesar IV
|
||||
- Cars 2
|
||||
- Clive Barker's Jericho
|
||||
- Colin McRae Rally 04
|
||||
- Colin McRae Rally 2.0
|
||||
- Colin McRae Rally 3
|
||||
- Command & Conquer: Red Alert 3 - Uprising
|
||||
- Commandos: Strike Force
|
||||
- Devil May Cry 4
|
||||
- Die Hard: Nakatomi Plaza
|
||||
- Disney Planes
|
||||
- Divinity II: Developer's Cut
|
||||
- StarForce
|
||||
- Anno 1701
|
||||
- Black Mirror 3
|
||||
- BloodRayne 2
|
||||
- Chronostorm: Siberian Border
|
||||
- Codename: Outbreak
|
||||
- Dead to Rights
|
||||
- Disciples III: Renaissance
|
||||
- Game of Thrones
|
||||
- Gothic 3
|
||||
- Gothic 3: Forsaken Gods
|
||||
- Mass Effect
|
||||
- Mount & Blade
|
||||
- Pac-Man World 2
|
||||
- Tages
|
||||
- Act of War: High Treason
|
||||
- Anno 1701
|
||||
- Beyond Good & Evil
|
||||
- Codename: Panzers - Cold War
|
||||
- Darkstar One
|
||||
- Desperados 2: Cooper's Revenge
|
||||
- Driver: Parallel Lines
|
||||
- Faery: Legends of Avalon
|
||||
- Fahrenheit
|
||||
- Fantasy Wars
|
||||
- Glory of the Roman Empire
|
||||
- Gothic 3
|
||||
- Hard to Be a God
|
||||
- Helldorado
|
||||
- Moto Racer 3
|
||||
- Nail'd
|
||||
- Nostradamus: The Last Prophecy
|
||||
- Rag Doll Kung Fu
|
||||
- Rayman Origins
|
||||
- RoboCop (2003)
|
||||
- Runaway 2: The Dream of the Turtle
|
||||
- S.T.A.L.K.E.R.: Shadow of Chernobyl
|
||||
- Secret Files: Tunguska
|
||||
- Silverfall
|
||||
- SpellForce 2: Shadow Wars
|
||||
- Still Life 2
|
||||
- The Chronicles of Riddick: Assault on Dark Athena
|
||||
- War Front: Turning Point
|
||||
- XIII
|
||||
- Solidshield
|
||||
- A-Train 8
|
||||
- Anno 2070
|
||||
- Assassin's Creed: Brotherhood
|
||||
- Crysis 2
|
||||
- Dead Mountaineer's Hotel
|
||||
- Dead Space 2
|
||||
- Hard to Be a God
|
||||
- Helldorado
|
||||
- I Am Alive
|
||||
- Jack Keane
|
||||
- James Cameron's Avatar: The Game
|
||||
- Medal of Honor: Airborne
|
||||
- Need for Speed: Hot Pursuit
|
||||
- ObsCure II
|
||||
- Risen
|
||||
- Shift 2 Unleashed
|
||||
- Still Life 2
|
||||
- Warfare
|
||||
- X3: Terran Conflict
|
||||
254
DiscImageChef.Server/docs/README.md
Normal file
254
DiscImageChef.Server/docs/README.md
Normal file
@@ -0,0 +1,254 @@
|
||||
DiscImageChef v4.5.99.1693
|
||||
|
||||
Disc Image Chef (because "swiss-army-knife" is used too much)
|
||||
|
||||
Copyright © 2011-2018 Natalia Portillo <claunia@claunia.com>
|
||||
|
||||
[](https://dev.azure.com/DiscImageChef/DiscImageChef/_build/latest?definitionId=4)
|
||||
[](https://travis-ci.org/claunia/DiscImageChef)
|
||||
[](https://ci.appveyor.com/project/claunia/discimagechef)
|
||||
[](https://app.fossa.io/projects/git%2Bgithub.com%2Fclaunia%2FDiscImageChef?ref=badge_shield)
|
||||
|
||||
You can see statistics and device reports [here](http://discimagechef.claunia.com/Statistics.aspx)
|
||||
|
||||
DiscImageChef is a fully featured media dump management solution. You usually know media dumps
|
||||
as disc images, disk images, tape images, etc.
|
||||
|
||||
With DiscImageChef you can analyze a media dump, extract files from it (for supported
|
||||
filesystems), compare two of them, create them from real media using the appropriate drive,
|
||||
create a sidecar metadata with information about the media dump, and a lot of other features
|
||||
that commonly would require you to use separate applications.
|
||||
|
||||
To see last changes, check the [changelog](Changelog.md).
|
||||
To see list of pending things to do, check the [TODO list](TODO.md).
|
||||
|
||||
If you want to contribute in any way please read the [contributing guide](CONTRIBUTING.md).
|
||||
|
||||
System requirements
|
||||
===================
|
||||
DiscImageChef should work under any operating system where there is [Mono](http://www.mono-project.com/)
|
||||
or [.NET Framework](https://www.microsoft.com/net/download).
|
||||
It has been tested using Mono 5.0 and .NET Framework 4.6.1. However recommended versions are
|
||||
Mono 5.8 and .NET Framework 4.7.1. .NET Core is unsupported.
|
||||
|
||||
Usage
|
||||
=====
|
||||
|
||||
DiscImageChef.exe
|
||||
|
||||
And read help.
|
||||
|
||||
Or read the [wiki](https://github.com/claunia/DiscImageChef/wiki).
|
||||
|
||||
Features
|
||||
========
|
||||
* Analyzes a disk image getting information about the disk itself and analyzes partitions and filesystems inside them
|
||||
* Can checksum the disks (and if optical disc, separate tracks) user-data (tags and metadata coming soon)
|
||||
* Can compare two disk images, even different formats, for different sectors and/or metadata
|
||||
* Can list and extract contents from filesystems that support that
|
||||
* Can read several disk image formats.
|
||||
* Can read several known sector by sector formats with variable bytes per sector.
|
||||
* Can read standard sector by sector copies for optical and magnetic discs with constant bytes per sector.
|
||||
* Can verify sectors or disk images if supported by the underlying format
|
||||
|
||||
Supported disk image formats (read-only)
|
||||
========================================
|
||||
* Apple Disk Archival/Retrieval Tool (DART)
|
||||
* Apple II nibble images (NIB)
|
||||
* BlindWrite 4 TOC files (.BWT/.BWI/.BWS)
|
||||
* BlindWrite 5/6 TOC files (.B5T/.B5I and .B6T/.B6I)
|
||||
* CopyQM
|
||||
* CPCEMU Disk file and Extended Disk File
|
||||
* Dave Dunfield IMD
|
||||
* DiscJuggler images
|
||||
* Dreamcast GDI
|
||||
* HD-Copy disk images
|
||||
* MAME Compressed Hunks of Data (CHD)
|
||||
* Microsoft VHDX
|
||||
* Nero Burning ROM (both image formats)
|
||||
* Partclone disk images
|
||||
* Partimage disk images
|
||||
* Quasi88 disk images (.D77/.D88)
|
||||
* Spectrum floppy disk image (.FDI)
|
||||
* TeleDisk
|
||||
* X68k DIM disk image files (.DIM)
|
||||
|
||||
Supported disk image formats (read and write)
|
||||
=============================================
|
||||
* Alcohol 120% Media Descriptor Structure (.MDS/.MDF)
|
||||
* Anex86 disk images (.FDI for floppies, .HDI for hard disks)
|
||||
* Any 512 bytes/sector disk image format (sector by sector copy, aka raw)
|
||||
* Apple 2IMG (used with Apple // emulators)
|
||||
* Apple DiskCopy 4.2
|
||||
* Apple ][ Interleaved Disk Image
|
||||
* Apple Universal Disk Image Format (UDIF), including obsolete (previous than DiskCopy 6) versions
|
||||
* Apridisk disk image formats (for ACT Apricot disks)
|
||||
* Basic Lisa Utility
|
||||
* CDRDAO TOC sheets
|
||||
* CDRWin cue/bin cuesheets, including ones with ISOBuster extensions
|
||||
* CisCopy disk image (aka DC-File, .DCF)
|
||||
* CloneCD
|
||||
* DataPackRat's d2f/f2d disk image format ("WC DISK IMAGE")
|
||||
* Digital Research DiskCopy
|
||||
* DiscImageChef format
|
||||
* IBM SaveDskF
|
||||
* MAXI Disk disk images (HDK)
|
||||
* Most known sector by sector copies of floppies with 128, 256, 319 and 1024 bytes/sector.
|
||||
* Most known sector by sector copies with different bytes/sector on track 0.
|
||||
* Parallels Hard Disk Image (HDD) version 2
|
||||
* QEMU Copy-On-Write versions 1, 2 and 3 (QCOW and QCOW2)
|
||||
* QEMU Enhanced Disk (QED)
|
||||
* Ray Arachelian's Disk IMage (.DIM)
|
||||
* RS-IDE hard disk images
|
||||
* Sector by sector copies of Microsoft's DMF floppies
|
||||
* T98 hard disk images (.THD)
|
||||
* T98-Next hard disk images (.NHD)
|
||||
* Virtual98 disk images
|
||||
* VirtualBox Disk Image (VDI)
|
||||
* Virtual PC fixed size, dynamic size and differencing (undo) disk images
|
||||
* VMware VMDK and COWD images
|
||||
* XDF disk images (as created by IBM's XDFCOPY)
|
||||
|
||||
Supported partitioning schemes
|
||||
==============================
|
||||
* Acorn Linux and RISCiX partitions
|
||||
* ACT Apricot partitions
|
||||
* Amiga Rigid Disk Block (RDB)
|
||||
* Apple Partition Map
|
||||
* Atari AHDI and ICDPro
|
||||
* BSD disklabels
|
||||
* BSD slices inside MBR
|
||||
* DEC disklabels
|
||||
* DragonFly BSD 64-bit disklabel
|
||||
* EFI GUID Partition Table (GPT)
|
||||
* Human68k (Sharp X68000) partitions table
|
||||
* Microsoft/IBM/Intel Master Boot Record (MBR)
|
||||
* Minix subpartitions inside MBR
|
||||
* NEC PC9800 partitions
|
||||
* NeXT disklabel
|
||||
* Plan9 partition table
|
||||
* Rio Karma partitions
|
||||
* SGI volume headers
|
||||
* Solaris slices inside MBR
|
||||
* Sun disklabel
|
||||
* UNIX VTOC and disklabel
|
||||
* UNIX VTOC inside MBR
|
||||
* Xbox 360 hard coded partitions
|
||||
* XENIX partition table
|
||||
|
||||
Supported file systems for read-only operations
|
||||
===============================================
|
||||
* Apple DOS file system
|
||||
* Apple Lisa file system
|
||||
* Apple Macintosh File System (MFS)
|
||||
* CP/M file system
|
||||
* U.C.S.D Pascal file system
|
||||
|
||||
Supported file systems for identification and information only
|
||||
==============================================================
|
||||
* 3DO Opera file system
|
||||
* Acorn Advanced Disc Filing System
|
||||
* Alexander Osipov DOS (AO-DOS for Electronika BK-0011) file system
|
||||
* Amiga Fast File System v2, untested
|
||||
* Amiga Fast File System, with international characters, directory cache and multi-user patches
|
||||
* Amiga Original File System, with international characters, directory cache and multi-user patches
|
||||
* Apple File System (preliminary detection until on-disk layout is stable)
|
||||
* Apple Hierarchical File System (HFS)
|
||||
* Apple Hierarchical File System+ (HFS+)
|
||||
* Apple ProDOS / SOS file system
|
||||
* AtheOS file system
|
||||
* BeOS filesystem
|
||||
* BSD Fast File System (FFS) / Unix File System (UFS)
|
||||
* BSD Unix File System 2 (UFS2)
|
||||
* B-tree file system (btrfs)
|
||||
* CD-i file system
|
||||
* Coherent UNIX file system
|
||||
* Commodore 1540/1541/1571/1581 filesystems
|
||||
* Cram file system
|
||||
* DEC Files-11 (only checked with On Disk Structure 2, ODS-2)
|
||||
* DEC RT-11 file system
|
||||
* dump(8) (Old historic BSD, AIX, UFS and UFS2 types)
|
||||
* ECMA-67: 130mm Flexible Disk Cartridge Labelling and File Structure for Information Interchange
|
||||
* Flash-Friendly File System (F2FS)
|
||||
* Fossil file system (from Plan9)
|
||||
* HAMMER file system
|
||||
* High Performance Optical File System (HPOFS)
|
||||
* High Sierra Format
|
||||
* HP Logical Interchange Format
|
||||
* IBM Journaling File System (JFS)
|
||||
* ISO9660
|
||||
* Linux extended file system
|
||||
* Linux extended file system 2
|
||||
* Linux extended file system 3
|
||||
* Linux extended file system 4
|
||||
* Locus file system
|
||||
* MicroDOS file system
|
||||
* Microsoft 12-bit File Allocation Table (FAT12), including Atari ST extensions
|
||||
* Microsoft 16-bit File Allocation Table (FAT16)
|
||||
* Microsoft 32-bit File Allocation Table (FAT32), including FAT+ extension
|
||||
* Microsoft Extended File Allocation Table (exFAT)
|
||||
* Microsoft/IBM High Performance File System (HPFS)
|
||||
* Microsoft New Technology File System (NTFS)
|
||||
* Microsoft Resilient File System (ReFS)
|
||||
* Minix v2 file system
|
||||
* Minix v3 file system
|
||||
* NEC PC-Engine executable
|
||||
* NEC PC-FX executable
|
||||
* NILFS2
|
||||
* Nintendo optical filesystems (GameCube and Wii)
|
||||
* OS-9 Random Block File
|
||||
* Professional File System
|
||||
* QNX4 and QNX6 filesystems
|
||||
* Reiser file systems
|
||||
* SGI Extent File System (EFS)
|
||||
* SGI XFS
|
||||
* SmartFileSystem
|
||||
* SolarOS file system
|
||||
* Squash file system
|
||||
* UNICOS file system
|
||||
* Universal Disk Format (UDF)
|
||||
* UNIX System V file system
|
||||
* UNIX Version 7 file system
|
||||
* UnixWare boot file system
|
||||
* Veritas file system
|
||||
* VMware file system (VMFS)
|
||||
* Xbox filesystems
|
||||
* Xenix file system
|
||||
* Xia filesystem
|
||||
* Zettabyte File System (ZFS)
|
||||
|
||||
Supported checksums
|
||||
===================
|
||||
* Adler-32
|
||||
* CRC-16
|
||||
* CRC-32
|
||||
* CRC-64
|
||||
* Fletcher-16
|
||||
* Fletcher-32
|
||||
* MD5
|
||||
* RMD160
|
||||
* SHA-1
|
||||
* SHA-2 (256, 384 and 512 bits)
|
||||
* SpamSum (fuzzy hashing)
|
||||
|
||||
Supported filters
|
||||
=================
|
||||
* Apple PCExchange (FINDER.DAT & RESOURCE.FRK)
|
||||
* AppleDouble
|
||||
* AppleSingle
|
||||
* BZip2
|
||||
* GZip
|
||||
* LZip
|
||||
* MacBinary I, II, III
|
||||
* XZ
|
||||
|
||||
Partially supported disk image formats
|
||||
======================================
|
||||
These disk image formats cannot be read, but their contents can be checksummed on sidecar creation
|
||||
* DiscFerret
|
||||
* KryoFlux STREAM
|
||||
* SuperCardPro
|
||||
|
||||
|
||||
## License
|
||||
[](https://app.fossa.io/projects/git%2Bgithub.com%2Fclaunia%2FDiscImageChef?ref=badge_large)
|
||||
83
DiscImageChef.Server/docs/TODO.md
Normal file
83
DiscImageChef.Server/docs/TODO.md
Normal file
@@ -0,0 +1,83 @@
|
||||
* Add checksum support for Apple NIB images. (https://github.com/claunia/DiscImageChef/issues/105)
|
||||
* Add checksum support for NDIF images. (https://github.com/claunia/DiscImageChef/issues/88)
|
||||
* Add checksum support for partclone images. (https://github.com/claunia/DiscImageChef/issues/89)
|
||||
* Add checksum support for partimage images. (https://github.com/claunia/DiscImageChef/issues/90)
|
||||
* Add detection of bootable UDF filesystems. (https://github.com/claunia/DiscImageChef/issues/91)
|
||||
* Add filter for 7-Zip archives. (https://github.com/claunia/DiscImageChef/issues/92)
|
||||
* Add filter for ZIP archives. (https://github.com/claunia/DiscImageChef/issues/93)
|
||||
* Add flux decoding for DiscFerret images. (https://github.com/claunia/DiscImageChef/issues/49)
|
||||
* Add flux decoding for KryoFlux images. (https://github.com/claunia/DiscImageChef/issues/50)
|
||||
* Add flux decoding for SuperCardPro images. (https://github.com/claunia/DiscImageChef/issues/99)
|
||||
* Add interface for floppy bitstream decoding. (https://github.com/claunia/DiscImageChef/issues/94)
|
||||
* Add raw dump for Plextor recorders. (https://github.com/claunia/DiscImageChef/issues/100)
|
||||
* Add support for 82077 floppy controllers. (https://github.com/claunia/DiscImageChef/issues/101)
|
||||
* Add support for AIX partitioning scheme. (https://github.com/claunia/DiscImageChef/issues/7)
|
||||
* Add support for CD-Text in Nero images. (https://github.com/claunia/DiscImageChef/issues/104)
|
||||
* Add support for compressed Ciscopy images. (https://github.com/claunia/DiscImageChef/issues/127)
|
||||
* Add support for compressed DART images. (https://github.com/claunia/DiscImageChef/issues/68)
|
||||
* Add support for compressed MAME CHD version 5 images. (https://github.com/claunia/DiscImageChef/issues/106)
|
||||
* Add support for compressed MAME CompactDisc images. (https://github.com/claunia/DiscImageChef/issues/107)
|
||||
* Add support for compressed NDIF images. (https://github.com/claunia/DiscImageChef/issues/68)
|
||||
* Add support for compressed SaveDskF images. (https://github.com/claunia/DiscImageChef/issues/108)
|
||||
* Add support for compressed UDIF images. (https://github.com/claunia/DiscImageChef/issues/70)
|
||||
* Add support for compressed VMware images. (https://github.com/claunia/DiscImageChef/issues/109)
|
||||
* Add support for CSS encrypted DVD dumping. (https://github.com/claunia/DiscImageChef/issues/110)
|
||||
* Add support for decoding Apple GCR bitstreams. (https://github.com/claunia/DiscImageChef/issues/95)
|
||||
* Add support for decoding Commodore GCR bitstreams. (https://github.com/claunia/DiscImageChef/issues/96)
|
||||
* Add support for decoding FM bitstreams. (https://github.com/claunia/DiscImageChef/issues/97)
|
||||
* Add support for decoding MFM bitstreams. (https://github.com/claunia/DiscImageChef/issues/98)
|
||||
* Add support for detecting FireWire devices in FreeBSD. (https://github.com/claunia/DiscImageChef/issues/111)
|
||||
* Add support for detecting FireWire devices in Windows. (https://github.com/claunia/DiscImageChef/issues/125)
|
||||
* Add support for detecting USB devices in FreeBSD. (https://github.com/claunia/DiscImageChef/issues/112)
|
||||
* Add support for differencing QCOW2 images. (https://github.com/claunia/DiscImageChef/issues/142)
|
||||
* Add support for differencing QCOW images. (https://github.com/claunia/DiscImageChef/issues/143)
|
||||
* Add support for differencing QED images. (https://github.com/claunia/DiscImageChef/issues/144)
|
||||
* Add support for DiscFerret devices. (https://github.com/claunia/DiscImageChef/issues/140)
|
||||
* Add support for dumping CD Lead-In in FreeBSD. (https://github.com/claunia/DiscImageChef/issues/113)
|
||||
* Add support for encrypted NDIF images. (https://github.com/claunia/DiscImageChef/issues/149)
|
||||
* Add support for encrypted QCOW2 images. (https://github.com/claunia/DiscImageChef/issues/145)
|
||||
* Add support for encrypted QCOW images. (https://github.com/claunia/DiscImageChef/issues/146)
|
||||
* Add support for encrypted VMware images. (https://github.com/claunia/DiscImageChef/issues/147)
|
||||
* Add support for KryoFlux devices. (https://github.com/claunia/DiscImageChef/issues/141)
|
||||
* Add support for Linear Media PCMCIA devices. (https://github.com/claunia/DiscImageChef/issues/148)
|
||||
* Add support for MAME CHD images of PCMCIA devices. (https://github.com/claunia/DiscImageChef/issues/150)
|
||||
* Add support for NetApp WAFL filesystem. (https://github.com/claunia/DiscImageChef/issues/61)
|
||||
* Add support for NetWare 286 filesystem. (https://github.com/claunia/DiscImageChef/issues/117)
|
||||
* Add support for NetWare 386 filesystem. (https://github.com/claunia/DiscImageChef/issues/118)
|
||||
* Add support for Novell Storage Services filesystem. (https://github.com/claunia/DiscImageChef/issues/119)
|
||||
* Add support for NVMe devices. (https://github.com/claunia/DiscImageChef/issues/151)
|
||||
* Add support for OCFS2 filesystem. (https://github.com/claunia/DiscImageChef/issues/153)
|
||||
* Add support for packed subchannel in BlindWrite 4 images. (https://github.com/claunia/DiscImageChef/issues/154)
|
||||
* Add support for packed subchannel in BlindWrite 5 images. (https://github.com/claunia/DiscImageChef/issues/155)
|
||||
* Add support for Parallel ATA devices in FreeBSD. (https://github.com/claunia/DiscImageChef/issues/114)
|
||||
* Add support for PCMCIA devices in FreeBSD. (https://github.com/claunia/DiscImageChef/issues/115)
|
||||
* Add support for PCMCIA devices in Windows. (https://github.com/claunia/DiscImageChef/issues/126)
|
||||
* Add support for reading resource fork in macOS. (https://github.com/claunia/DiscImageChef/issues/156)
|
||||
* Add support for reading resource fork in Windows. (https://github.com/claunia/DiscImageChef/issues/157)
|
||||
* Add support for SecureDigital and MultiMediaCard devices in FreeBSD. (https://github.com/claunia/DiscImageChef/issues/116)
|
||||
* Add support for SuperCardPro devices. (https://github.com/claunia/DiscImageChef/issues/139)
|
||||
* Add support for XPACK images. (https://github.com/claunia/DiscImageChef/issues/45)
|
||||
* Checksum disk tags
|
||||
* Checksum long sectors
|
||||
* Checksum sector tags
|
||||
* Compare sector tags
|
||||
* Finish support for reading sectors of variable bytes/sector images
|
||||
* Graphical User Interface
|
||||
* Handle UDIF image comments. (https://github.com/claunia/DiscImageChef/issues/137)
|
||||
* Implement Apple KenCode compression algorithm. (https://github.com/claunia/DiscImageChef/issues/122)
|
||||
* Implement Apple LZFSE compression algorithm. (https://github.com/claunia/DiscImageChef/issues/124)
|
||||
* Implement Apple LZH compression algorithm. (https://github.com/claunia/DiscImageChef/issues/121)
|
||||
* Implement COLUMBIA ordering in CP/M filesystem. (https://github.com/claunia/DiscImageChef/issues/133)
|
||||
* Implement CYLINDERS ordering in CP/M filesystem. (https://github.com/claunia/DiscImageChef/issues/132)
|
||||
* Implement dumping GameCube discs. (https://github.com/claunia/DiscImageChef/issues/135)
|
||||
* Implement dumping Wii discs. (https://github.com/claunia/DiscImageChef/issues/136)
|
||||
* Implement EAGLE ordering in CP/M filesystem. (https://github.com/claunia/DiscImageChef/issues/131)
|
||||
* Implement ODS checksum. (https://github.com/claunia/DiscImageChef/issues/130)
|
||||
* Implement StuffIt compression algorithm. (https://github.com/claunia/DiscImageChef/issues/123)
|
||||
* Offer the option to see differing values
|
||||
* Optimize and multithread image comparison
|
||||
* Optimize current checksum multithreading
|
||||
* Support AAP extensions in MBR. (https://github.com/claunia/DiscImageChef/issues/159)
|
||||
* Support IBM boot manager in MBR. (https://github.com/claunia/DiscImageChef/issues/128)
|
||||
* Support MMC feature codes FF33h
|
||||
* Support SCSI mode pages 18h, 1Dh, 20h, 31h, 32h
|
||||
@@ -3,6 +3,7 @@
|
||||
<package id="Antlr" version="3.5.0.2" targetFramework="net461" />
|
||||
<package id="EntityFramework" version="6.2.0" targetFramework="net461" />
|
||||
<package id="Google.Protobuf" version="3.5.1" targetFramework="net461" />
|
||||
<package id="Markdig" version="0.15.5" targetFramework="net461" />
|
||||
<package id="Microsoft.AspNet.Mvc" version="5.2.4" targetFramework="net461" />
|
||||
<package id="Microsoft.AspNet.Razor" version="3.2.4" targetFramework="net461" />
|
||||
<package id="Microsoft.AspNet.TelemetryCorrelation" version="1.0.0" targetFramework="net461" />
|
||||
@@ -20,6 +21,5 @@
|
||||
<package id="Newtonsoft.Json" version="11.0.1" targetFramework="net461" />
|
||||
<package id="System.Diagnostics.DiagnosticSource" version="4.4.1" targetFramework="net461" />
|
||||
<package id="Unclassified.NetRevisionTask" version="0.2.5" targetFramework="net461" developmentDependency="true" />
|
||||
<package id="Velyo.AspNet.Markdown" version="1.0.26.6184" targetFramework="net461" />
|
||||
<package id="WebGrease" version="1.6.0" targetFramework="net461" />
|
||||
</packages>
|
||||
@@ -1,4 +1,5 @@
|
||||
<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
|
||||
<s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/HtmlFormatter/DeleteQuotesInSpaceFreeText/@EntryValue">False</s:Boolean>
|
||||
<s:String x:Key="/Default/CodeStyle/CSharpFileLayoutPatterns/Pattern/@EntryValue"><?xml version="1.0" encoding="utf-16"?>
|
||||
<Patterns xmlns="urn:schemas-jetbrains-com:member-reordering-patterns">
|
||||
<TypePattern DisplayName="Non-reorderable types">
|
||||
@@ -178,5 +179,6 @@
|
||||
</Patterns></s:String>
|
||||
<s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ESettingsUpgrade_002EAlwaysTreatStructAsNotReorderableMigration/@EntryIndexedValue">True</s:Boolean>
|
||||
<s:Boolean x:Key="/Default/UserDictionary/Words/=ATAPI/@EntryIndexedValue">True</s:Boolean>
|
||||
<s:Boolean x:Key="/Default/UserDictionary/Words/=Claunia/@EntryIndexedValue">True</s:Boolean>
|
||||
<s:Boolean x:Key="/Default/UserDictionary/Words/=EVPD/@EntryIndexedValue">True</s:Boolean>
|
||||
<s:Boolean x:Key="/Default/UserDictionary/Words/=Portillo/@EntryIndexedValue">True</s:Boolean></wpf:ResourceDictionary>
|
||||
Reference in New Issue
Block a user