Updated DIC and Metadata code.

This commit is contained in:
2017-06-20 07:20:39 +01:00
parent bc1dadefaa
commit aca0225095
24 changed files with 603 additions and 957 deletions

Submodule CICMMetadata deleted from 97781ddc50

View File

@@ -1,3 +1,6 @@
* Workers/DiscImageChef.cs:
Updated DIC and Metadata code.
2017-06-13 Natalia Portillo <claunia@claunia.com>
* Workers/Clamd.cs:

View File

@@ -389,8 +389,6 @@ namespace osrepodbmgr.Core
foreach(Track trk in tracks)
{
currentProgress++;
if(UpdateProgress != null)
UpdateProgress(null, string.Format("Hashing track {0}", trk.TrackSequence), currentProgress, maxProgress);
Schemas.TrackType xmlTrk = new Schemas.TrackType();
switch(trk.TrackType)
@@ -469,12 +467,21 @@ namespace osrepodbmgr.Core
xmlTrk.BytesPerSector = trk.TrackBytesPerSector;
uint sectorsToRead = 512;
Checksum trkChkWorker = new Checksum();
ulong sectors = (ulong)(xmlTrk.EndSector - xmlTrk.StartSector + 1);
ulong doneSectors = 0;
// If there is only one track, and it's the same as the image file (e.g. ".iso" files), don't re-checksum.
if(_imageFormat.PluginUUID == new Guid("12345678-AAAA-BBBB-CCCC-123456789000"))
{
xmlTrk.Checksums = sidecar.OpticalDisc[0].Checksums;
}
else
{
if(UpdateProgress != null)
UpdateProgress(null, string.Format("Hashing track {0}", trk.TrackSequence), currentProgress, maxProgress);
Checksum trkChkWorker = new Checksum();
#if DEBUG
stopwatch.Restart();
#endif
@@ -507,6 +514,7 @@ namespace osrepodbmgr.Core
#endif
xmlTrk.Checksums = trkChecksums.ToArray();
}
if(UpdateProgress2 != null)
UpdateProgress2(null, null, 0, 0);
@@ -716,7 +724,7 @@ namespace osrepodbmgr.Core
sidecar.OpticalDisc[0].DumpHardwareArray = new DumpHardwareType[1];
sidecar.OpticalDisc[0].DumpHardwareArray[0].Extents = new ExtentType[0];
sidecar.OpticalDisc[0].DumpHardwareArray[0].Extents[0].Start = 0;
sidecar.OpticalDisc[0].DumpHardwareArray[0].Extents[0].End = (int)_imageFormat.ImageInfo.sectors;
sidecar.OpticalDisc[0].DumpHardwareArray[0].Extents[0].End = _imageFormat.ImageInfo.sectors;
sidecar.OpticalDisc[0].DumpHardwareArray[0].Manufacturer = _imageFormat.ImageInfo.driveManufacturer;
sidecar.OpticalDisc[0].DumpHardwareArray[0].Model = _imageFormat.ImageInfo.driveModel;
sidecar.OpticalDisc[0].DumpHardwareArray[0].Firmware = _imageFormat.ImageInfo.driveFirmwareRevision;
@@ -856,6 +864,58 @@ namespace osrepodbmgr.Core
Console.WriteLine("Core.AddMedia(): Took {0} seconds to hash media tags", stopwatch.Elapsed.TotalSeconds);
#endif
// If there is only one track, and it's the same as the image file (e.g. ".iso" files), don't re-checksum.
if(_imageFormat.PluginUUID == new System.Guid("12345678-AAAA-BBBB-CCCC-123456789000"))
{
sidecar.BlockMedia[0].ContentChecksums = sidecar.BlockMedia[0].Checksums;
}
else
{
Checksum contentChkWorker = new Checksum();
uint sectorsToRead = 512;
ulong sectors = _imageFormat.GetSectors();
ulong doneSectors = 0;
if(UpdateProgress != null)
UpdateProgress(null, "Hashing media contents", currentProgress, maxProgress);
Checksum cntChkWorker = new Checksum();
#if DEBUG
stopwatch.Restart();
#endif
while(doneSectors < sectors)
{
byte[] sector;
if((sectors - doneSectors) >= sectorsToRead)
{
sector = _imageFormat.ReadSectors(doneSectors, sectorsToRead);
if(UpdateProgress2 != null)
UpdateProgress2(null, string.Format("Sector {0} of {1}", doneSectors, sectors), (long)doneSectors, (long)sectors);
doneSectors += sectorsToRead;
}
else
{
sector = _imageFormat.ReadSectors(doneSectors, (uint)(sectors - doneSectors));
if(UpdateProgress2 != null)
UpdateProgress2(null, string.Format("Sector {0} of {1}", doneSectors, sectors), (long)doneSectors, (long)sectors);
doneSectors += (sectors - doneSectors);
}
cntChkWorker.Update(sector);
}
List<ChecksumType> cntChecksums = cntChkWorker.End();
#if DEBUG
stopwatch.Stop();
Console.WriteLine("Core.AddMedia(): Took {0} seconds to hash media contents", stopwatch.Elapsed.TotalSeconds);
#endif
sidecar.BlockMedia[0].ContentChecksums = cntChecksums.ToArray();
}
string dskType, dskSubType;
DiscImageChef.Metadata.MediaType.MediaTypeToString(_imageFormat.ImageInfo.mediaType, out dskType, out dskSubType);
sidecar.BlockMedia[0].DiskType = dskType;

View File

@@ -1,3 +1,10 @@
* dlgMetadata.xeto:
* dlgMetadata.xeto.cs:
* dlgOpticalDisc.xeto:
* dlgBlockMedia.xeto.cs:
* dlgOpticalDisc.xeto.cs:
Updated DIC and Metadata code.
2017-05-21 Natalia Portillo <claunia@claunia.com>
* dlgAdd.xeto.cs:

View File

@@ -210,6 +210,7 @@ namespace osrepodbmgr.Eto
BlockSizeType[] variableBlockSize;
TapePartitionType[] tapeInformation;
ScansType scans;
ChecksumType[] contentChks;
public dlgBlockMedia()
{
@@ -321,12 +322,12 @@ namespace osrepodbmgr.Eto
treeExtents.Columns.Add(new GridColumn
{
DataCell = new TextBoxCell { Binding = Binding.Property<ExtentType, int>(r => r.Start).Convert(v => v.ToString()) },
DataCell = new TextBoxCell { Binding = Binding.Property<ExtentType, ulong>(r => r.Start).Convert(v => v.ToString()) },
HeaderText = "Start"
});
treeExtents.Columns.Add(new GridColumn
{
DataCell = new TextBoxCell { Binding = Binding.Property<ExtentType, int>(r => r.End).Convert(v => v.ToString()) },
DataCell = new TextBoxCell { Binding = Binding.Property<ExtentType, ulong>(r => r.End).Convert(v => v.ToString()) },
HeaderText = "End"
});
#endregion Set dump hardware table
@@ -644,6 +645,7 @@ namespace osrepodbmgr.Eto
txtOffset.Text = Metadata.Image.offset.ToString();
txtSize.Text = Metadata.Size.ToString();
checksums = Metadata.Checksums;
contentChks = Metadata.ContentChecksums;
if(Metadata.Sequence != null)
{
lblMediaTitle.Visible = true;
@@ -1196,7 +1198,7 @@ namespace osrepodbmgr.Eto
protected void OnBtnAddExtentClicked(object sender, EventArgs e)
{
((ObservableCollection<ExtentType>)treeExtents.DataStore).Add(new ExtentType { Start = (int)spExtentStart.Value, End = (int)spExtentEnd.Value });
((ObservableCollection<ExtentType>)treeExtents.DataStore).Add(new ExtentType { Start = (ulong)spExtentStart.Value, End = (ulong)spExtentEnd.Value });
}
protected void OnBtnCancelClicked(object sender, EventArgs e)
@@ -1477,6 +1479,7 @@ namespace osrepodbmgr.Eto
}
Metadata.Size = long.Parse(txtSize.Text);
Metadata.Checksums = checksums;
Metadata.ContentChecksums = contentChks;
if(chkSequence.Checked.Value)
{

View File

@@ -252,14 +252,18 @@
<Button ID="btnClearDiscs" Click="OnBtnClearDiscsClicked">Clear</Button>
<Button ID="btnRemoveDisc" Click="OnBtnRemoveDiscClicked">Remove</Button>
</StackLayout>
<StackLayout Orientation="Horizontal">
<StackLayoutItem HorizontalAlignment="Stretch">
<Label ID="lblAddDisc1" Visible="False">Progress 1</Label>
</StackLayoutItem>
<StackLayoutItem HorizontalAlignment="Stretch">
<ProgressBar ID="prgAddDisc1" Visible="False" />
</StackLayout>
<StackLayout Orientation="Horizontal">
</StackLayoutItem>
<StackLayoutItem HorizontalAlignment="Stretch">
<Label ID="lblAddDisc2" Visible="False">Progress 2</Label>
</StackLayoutItem>
<StackLayoutItem HorizontalAlignment="Stretch">
<ProgressBar ID="prgAddDisc2" Visible="False" />
</StackLayout>
</StackLayoutItem>
</StackLayout>
</TabPage>
<TabPage Text="Block disks" ID="tabDisks">
@@ -283,14 +287,18 @@
<Button ID="btnClearDisks" Click="OnBtnClearDisksClicked">Clear</Button>
<Button ID="btnRemoveDisk" Click="OnBtnRemoveDiskClicked">Remove</Button>
</StackLayout>
<StackLayout Orientation="Horizontal">
<StackLayoutItem HorizontalAlignment="Stretch">
<Label ID="lblAddDisk1" Visible="False">Progress 1</Label>
</StackLayoutItem>
<StackLayoutItem HorizontalAlignment="Stretch">
<ProgressBar ID="prgAddDisk1" Visible="False" />
</StackLayout>
<StackLayout Orientation="Horizontal">
</StackLayoutItem>
<StackLayoutItem HorizontalAlignment="Stretch">
<Label ID="lblAddDisk2" Visible="False">Progress 2</Label>
</StackLayoutItem>
<StackLayoutItem HorizontalAlignment="Stretch">
<ProgressBar ID="prgAddDisk2" Visible="False" />
</StackLayout>
</StackLayoutItem>
</StackLayout>
</TabPage>
</TabControl>

View File

@@ -652,6 +652,8 @@ namespace osrepodbmgr.Eto
tabDisks.Visible = false;
prgAddDisc1.Visible = true;
prgAddDisc2.Visible = true;
lblAddDisc1.Visible = true;
lblAddDisc2.Visible = true;
btnCancel.Visible = false;
btnOK.Visible = false;
btnEditDisc.Visible = false;
@@ -733,6 +735,8 @@ namespace osrepodbmgr.Eto
tabDisks.Visible = true;
prgAddDisc1.Visible = false;
prgAddDisc2.Visible = false;
lblAddDisc1.Visible = false;
lblAddDisc2.Visible = false;
btnCancel.Visible = true;
btnOK.Visible = true;
btnEditDisc.Visible = true;
@@ -825,6 +829,8 @@ namespace osrepodbmgr.Eto
tabDisks.Visible = true;
prgAddDisc1.Visible = false;
prgAddDisc2.Visible = false;
lblAddDisc1.Visible = false;
lblAddDisc2.Visible = false;
btnCancel.Visible = true;
btnOK.Visible = true;
btnEditDisc.Visible = true;
@@ -870,6 +876,8 @@ namespace osrepodbmgr.Eto
tabDiscs.Visible = false;
prgAddDisk1.Visible = true;
prgAddDisk2.Visible = true;
lblAddDisk1.Visible = true;
lblAddDisk2.Visible = true;
btnCancel.Visible = false;
btnOK.Visible = false;
btnEditDisk.Visible = false;
@@ -951,6 +959,8 @@ namespace osrepodbmgr.Eto
tabDiscs.Visible = true;
prgAddDisk1.Visible = false;
prgAddDisk2.Visible = false;
lblAddDisk1.Visible = false;
lblAddDisk2.Visible = false;
btnCancel.Visible = true;
btnOK.Visible = true;
btnEditDisk.Visible = true;
@@ -1039,6 +1049,8 @@ namespace osrepodbmgr.Eto
tabDiscs.Visible = true;
prgAddDisk1.Visible = false;
prgAddDisk2.Visible = false;
lblAddDisk1.Visible = false;
lblAddDisk2.Visible = false;
btnCancel.Visible = true;
btnOK.Visible = true;
btnEditDisk.Visible = true;

View File

@@ -418,27 +418,6 @@
</StackLayoutItem>
</StackLayout>
</TabPage>
<TabPage Text="Xbox">
<StackLayout Orientation="Vertical">
<StackLayoutItem Expand="True" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
<GroupBox Text="Security sectors" ID="frmXboxSS">
<StackLayout Orientation="Vertical">
<StackLayoutItem Expand="True" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
<GridView ID="treeXboxSS" />
</StackLayoutItem>
<StackLayout Orientation="Horizontal">
<Label>Start</Label>
<TextBox ID="txtSSStart" />
<Label>End</Label>
<TextBox ID="txtSSEnd" />
<Button ID="btnRemoveSS" Click="OnBtnRemoveSSClicked">Remove</Button>
<Button ID="btnAddSS" Click="OnBtnAddSSClicked">Add</Button>
</StackLayout>
</StackLayout>
</GroupBox>
</StackLayoutItem>
</StackLayout>
</TabPage>
<TabPage Text="PlayStation">
<StackLayout Orientation="Vertical">
<StackLayoutItem Expand="True" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">

View File

@@ -133,9 +133,6 @@ namespace osrepodbmgr.Eto
GridView treeDI;
GroupBox frmPAC;
GridView treePAC;
GridView treeXboxSS;
TextBox txtSSStart;
TextBox txtSSEnd;
TextBox txtPS3Key;
TextBox txtPS3Serial;
GridView treeTracks;
@@ -226,7 +223,6 @@ namespace osrepodbmgr.Eto
ObservableCollection<SectorsType> lstLayers;
ObservableCollection<Schemas.BorderType> lstLeadIns;
ObservableCollection<Schemas.BorderType> lstLeadOuts;
ObservableCollection<SecuritySectorsType> lstXboxSS;
ObservableCollection<TrackType> lstTracks;
bool editingPartition;
@@ -236,6 +232,7 @@ namespace osrepodbmgr.Eto
ChecksumType[] checksums;
CaseType mediaCase;
ScansType scans;
XboxType xbox;
public dlgOpticalDisc()
{
@@ -342,12 +339,12 @@ namespace osrepodbmgr.Eto
treeExtents.Columns.Add(new GridColumn
{
DataCell = new TextBoxCell { Binding = Binding.Property<ExtentType, int>(r => r.Start).Convert(v => v.ToString()) },
DataCell = new TextBoxCell { Binding = Binding.Property<ExtentType, ulong>(r => r.Start).Convert(v => v.ToString()) },
HeaderText = "Start"
});
treeExtents.Columns.Add(new GridColumn
{
DataCell = new TextBoxCell { Binding = Binding.Property<ExtentType, int>(r => r.End).Convert(v => v.ToString()) },
DataCell = new TextBoxCell { Binding = Binding.Property<ExtentType, ulong>(r => r.End).Convert(v => v.ToString()) },
HeaderText = "End"
});
#endregion Set dump hardware table
@@ -762,25 +759,6 @@ namespace osrepodbmgr.Eto
treeLeadOut.DataStore = lstLeadOuts;
#endregion Set Lead-Out table
#region Set Xbox security sectors table
lstXboxSS = new ObservableCollection<SecuritySectorsType>();
treeXboxSS.Columns.Add(new GridColumn
{
DataCell = new TextBoxCell { Binding = Binding.Property<SecuritySectorsType, long>(r => r.Start).Convert(v => v.ToString()) },
HeaderText = "Start"
});
treeXboxSS.Columns.Add(new GridColumn
{
DataCell = new TextBoxCell { Binding = Binding.Property<SecuritySectorsType, long>(r => r.End).Convert(v => v.ToString()) },
HeaderText = "End"
});
treeXboxSS.DataStore = lstXboxSS;
treeXboxSS.AllowMultipleSelection = false;
#endregion Set Xbox security sectors table
#region Set tracks table
lstTracks = new ObservableCollection<TrackType>();
@@ -902,6 +880,7 @@ namespace osrepodbmgr.Eto
}
checksums = Metadata.Checksums;
xbox = Metadata.Xbox;
if(Metadata.RingCode != null)
{
@@ -1071,12 +1050,6 @@ namespace osrepodbmgr.Eto
treeLeadOut.DataStore = lstLeadOuts;
}
if(Metadata.XboxSecuritySectors != null)
{
lstXboxSS = new ObservableCollection<Schemas.SecuritySectorsType>(Metadata.XboxSecuritySectors);
treeXboxSS.DataStore = lstXboxSS;
}
if(Metadata.PS3Encryption != null)
{
txtPS3Key.Text = Metadata.PS3Encryption.Key;
@@ -1169,37 +1142,6 @@ namespace osrepodbmgr.Eto
lstLayers.Remove((SectorsType)treeLayers.SelectedItem);
}
protected void OnBtnRemoveSSClicked(object sender, EventArgs e)
{
if(treeXboxSS.SelectedItem != null)
lstXboxSS.Remove((SecuritySectorsType)treeXboxSS.SelectedItem);
}
protected void OnBtnAddSSClicked(object sender, EventArgs e)
{
int temp, temp2;
if(!int.TryParse(txtSSStart.Text, out temp))
{
ErrorMessageBox("Xbox Security Sector start must be a number");
return;
}
if(!int.TryParse(txtSSEnd.Text, out temp2))
{
ErrorMessageBox("Xbox Security Sector end must be a number");
return;
}
if(temp2 <= temp)
{
ErrorMessageBox("Xbox Security Sector must end after start, and be bigger than 1 sector");
return;
}
lstXboxSS.Add(new SecuritySectorsType { Start = long.Parse(txtSSStart.Text), End = long.Parse(txtSSEnd.Text) });
}
protected void OnBtnRemovePartitionClicked(object sender, EventArgs e)
{
if(treePartitions.SelectedItem != null)
@@ -1533,7 +1475,7 @@ namespace osrepodbmgr.Eto
protected void OnBtnAddExtentClicked(object sender, EventArgs e)
{
((ObservableCollection<ExtentType>)treeExtents.DataStore).Add(new ExtentType { Start = (int)spExtentStart.Value, End = (int)spExtentEnd.Value });
((ObservableCollection<ExtentType>)treeExtents.DataStore).Add(new ExtentType { Start = (ulong)spExtentStart.Value, End = (ulong)spExtentEnd.Value });
}
protected void OnBtnAddRingCodeClicked(object sender, EventArgs e)
@@ -1733,6 +1675,7 @@ namespace osrepodbmgr.Eto
}
Metadata.Checksums = checksums;
Metadata.Xbox = xbox;
if(lstRingCodes.Count > 0)
Metadata.RingCode = lstRingCodes.ToArray();
@@ -1835,9 +1778,6 @@ namespace osrepodbmgr.Eto
if(lstLeadOuts.Count == 1)
Metadata.LeadOut = lstLeadOuts.ToArray();
if(lstXboxSS.Count == 1)
Metadata.XboxSecuritySectors = lstXboxSS.ToArray();
if(!string.IsNullOrWhiteSpace(txtPS3Key.Text) && !string.IsNullOrWhiteSpace(txtPS3Serial.Text))
{
Metadata.PS3Encryption = new PS3EncryptionType();

View File

@@ -19,8 +19,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DiscImageChef.Partitions",
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DiscImageChef.CommonTypes", "DiscImageChef\DiscImageChef.CommonTypes\DiscImageChef.CommonTypes.csproj", "{F2B84194-26EB-4227-B1C5-6602517E85AE}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Claunia.RsrcFork", "DiscImageChef\Claunia.RsrcFork\Claunia.RsrcFork\Claunia.RsrcFork.csproj", "{CA231ED3-0C78-496C-AAFE-D085F6E9BEC6}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DiscImageChef.Decoders", "DiscImageChef\DiscImageChef.Decoders\DiscImageChef.Decoders.csproj", "{0BEB3088-B634-4289-AE17-CDF2D25D00D5}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DiscImageChef.Metadata", "DiscImageChef\DiscImageChef.Metadata\DiscImageChef.Metadata.csproj", "{9F213318-5CB8-4066-A757-074489C9F818}"
@@ -75,10 +73,6 @@ Global
{F2B84194-26EB-4227-B1C5-6602517E85AE}.Debug|x86.Build.0 = Debug|Any CPU
{F2B84194-26EB-4227-B1C5-6602517E85AE}.Release|x86.ActiveCfg = Release|Any CPU
{F2B84194-26EB-4227-B1C5-6602517E85AE}.Release|x86.Build.0 = Release|Any CPU
{CA231ED3-0C78-496C-AAFE-D085F6E9BEC6}.Debug|x86.ActiveCfg = Debug|Any CPU
{CA231ED3-0C78-496C-AAFE-D085F6E9BEC6}.Debug|x86.Build.0 = Debug|Any CPU
{CA231ED3-0C78-496C-AAFE-D085F6E9BEC6}.Release|x86.ActiveCfg = Release|Any CPU
{CA231ED3-0C78-496C-AAFE-D085F6E9BEC6}.Release|x86.Build.0 = Release|Any CPU
{0BEB3088-B634-4289-AE17-CDF2D25D00D5}.Debug|x86.ActiveCfg = Debug|Any CPU
{0BEB3088-B634-4289-AE17-CDF2D25D00D5}.Debug|x86.Build.0 = Debug|Any CPU
{0BEB3088-B634-4289-AE17-CDF2D25D00D5}.Release|x86.ActiveCfg = Release|Any CPU
@@ -107,34 +101,15 @@ Global
GlobalSection(MonoDevelopProperties) = preSolution
Policies = $0
$0.TextStylePolicy = $1
$1.FileWidth = 120
$1.inheritsSet = VisualStudio
$1.inheritsScope = text/plain
$1.scope = text/x-csharp
$1.TabsToSpaces = True
$0.CSharpFormattingPolicy = $2
$2.IndentSwitchSection = True
$2.NewLinesForBracesInProperties = True
$2.NewLinesForBracesInAccessors = True
$2.NewLinesForBracesInAnonymousMethods = True
$2.NewLinesForBracesInControlBlocks = True
$2.NewLinesForBracesInAnonymousTypes = True
$2.NewLinesForBracesInObjectCollectionArrayInitializers = True
$2.NewLinesForBracesInLambdaExpressionBody = True
$2.NewLineForElse = True
$2.NewLineForCatch = True
$2.NewLineForFinally = True
$2.inheritsSet = Mono
$2.inheritsScope = text/x-csharp
$2.scope = text/x-csharp
$2.SpacingAfterMethodDeclarationName = False
$2.SpaceAfterMethodCallName = False
$2.SpaceAfterControlFlowStatementKeyword = False
$2.SpaceBeforeOpenSquareBracket = False
$0.ChangeLogPolicy = $3
$3.UpdateMode = ProjectRoot
$3.MessageStyle = $4
$4.LastFilePostfix = "@:\n "
$4.IncludeDirectoryPaths = True
$3.inheritsSet = Mono
$4.LineAlign = 2
EndGlobalSection
EndGlobal

View File

@@ -1,3 +1,17 @@
* dlgBlockMedia.cs:
* dlgOpticalDisc.cs:
* gtk-gui/dlgAdd.cs:
* gtk-gui/gui.stetic:
* gtk-gui/generated.cs:
* gtk-gui/osrepodbmgr.dlgHelp.cs:
* gtk-gui/osrepodbmgr.frmMain.cs:
* gtk-gui/osrepodbmgr.dlgMetadata.cs:
* gtk-gui/osrepodbmgr.dlgSettings.cs:
* gtk-gui/osrepodbmgr.dlgFilesystem.cs:
* gtk-gui/osrepodbmgr.dlgBlockMedia.cs:
* gtk-gui/osrepodbmgr.dlgOpticalDisc.cs:
Updated DIC and Metadata code.
2017-05-21 Natalia Portillo <claunia@claunia.com>
* dlgAdd.cs:

View File

@@ -67,6 +67,7 @@ namespace osrepodbmgr
BlockSizeType[] variableBlockSize;
TapePartitionType[] tapeInformation;
ScansType scans;
ChecksumType[] contentChks;
public dlgBlockMedia()
{
@@ -347,6 +348,7 @@ namespace osrepodbmgr
txtOffset.Text = Metadata.Image.offset.ToString();
txtSize.Text = Metadata.Size.ToString();
checksums = Metadata.Checksums;
contentChks = Metadata.ContentChecksums;
if(Metadata.Sequence != null)
{
lblMediaTitle.Visible = true;
@@ -590,7 +592,7 @@ namespace osrepodbmgr
{
if(hw.Extents != null)
{
ListStore lstExtents = new ListStore(typeof(int), typeof(int));
ListStore lstExtents = new ListStore(typeof(ulong), typeof(ulong));
foreach(ExtentType extent in hw.Extents)
lstExtents.AppendValues(extent.Start, extent.End);
if(hw.Software != null)
@@ -1385,6 +1387,7 @@ namespace osrepodbmgr
}
Metadata.Size = long.Parse(txtSize.Text);
Metadata.Checksums = checksums;
Metadata.ContentChecksums = contentChks;
if(chkSequence.Active)
{
@@ -1705,8 +1708,8 @@ namespace osrepodbmgr
do
{
ExtentType extent = new ExtentType();
extent.Start = (int)lstExtents.GetValue(extIter, 0);
extent.End = (int)lstExtents.GetValue(extIter, 1);
extent.Start = (ulong)lstExtents.GetValue(extIter, 0);
extent.End = (ulong)lstExtents.GetValue(extIter, 1);
extents.Add(extent);
}
while(lstExtents.IterNext(ref extIter));

View File

@@ -80,6 +80,7 @@ namespace osrepodbmgr
ChecksumType[] checksums;
CaseType mediaCase;
ScansType scans;
XboxType xbox;
public dlgOpticalDisc()
{
@@ -374,17 +375,6 @@ namespace osrepodbmgr
treeLeadOut.AppendColumn(sessionColumn);
#endregion Set Lead-Out table
#region Set Xbox security sectors table
CellRendererText ssStartCell = new CellRendererText();
CellRendererText ssEndCell = new CellRendererText();
TreeViewColumn ssStartColumn = new TreeViewColumn("Start", ssStartCell, "text", 0);
TreeViewColumn ssEndColumn = new TreeViewColumn("End", ssEndCell, "text", 1);
lstXboxSS = new ListStore(typeof(int), typeof(int));
treeXboxSS.Model = lstXboxSS;
treeXboxSS.AppendColumn(ssStartColumn);
treeXboxSS.AppendColumn(ssEndColumn);
#endregion Set Xbox security sectors table
#region Set tracks table
lstTracks = new ListStore(typeof(int), typeof(int), typeof(string), typeof(long), typeof(string), typeof(long), typeof(string), typeof(string),
typeof(long), typeof(long), typeof(string), typeof(int), typeof(string), typeof(ChecksumType[]), typeof(SubChannelType),
@@ -499,6 +489,7 @@ namespace osrepodbmgr
}
checksums = Metadata.Checksums;
xbox = Metadata.Xbox;
if(Metadata.RingCode != null)
{
@@ -676,12 +667,6 @@ namespace osrepodbmgr
lstLeadOuts.AppendValues(leadout.Image, leadout.Size, leadout.session, leadout.Checksums);
}
if(Metadata.XboxSecuritySectors != null)
{
foreach(SecuritySectorsType ss in Metadata.XboxSecuritySectors)
lstXboxSS.AppendValues(ss.Start, ss.End);
}
if(Metadata.PS3Encryption != null)
{
txtPS3Key.Text = Metadata.PS3Encryption.Key;
@@ -724,7 +709,7 @@ namespace osrepodbmgr
{
if(hw.Extents != null)
{
ListStore lstExtents = new ListStore(typeof(int), typeof(int));
ListStore lstExtents = new ListStore(typeof(ulong), typeof(ulong));
foreach(ExtentType extent in hw.Extents)
lstExtents.AppendValues(extent.Start, extent.End);
if(hw.Software != null)
@@ -834,45 +819,6 @@ namespace osrepodbmgr
lstLayers.Remove(ref outIter);
}
protected void OnBtnRemoveSSClicked(object sender, EventArgs e)
{
TreeIter outIter;
if(treeXboxSS.Selection.GetSelected(out outIter))
lstXboxSS.Remove(ref outIter);
}
protected void OnBtnAddSSClicked(object sender, EventArgs e)
{
MessageDialog dlgMsg;
int temp, temp2;
if(!int.TryParse(txtSSStart.Text, out temp))
{
dlgMsg = new MessageDialog(this, DialogFlags.Modal, MessageType.Error, ButtonsType.Ok, "Xbox Security Sector start must be a number");
dlgMsg.Run();
dlgMsg.Destroy();
return;
}
if(!int.TryParse(txtSSEnd.Text, out temp2))
{
dlgMsg = new MessageDialog(this, DialogFlags.Modal, MessageType.Error, ButtonsType.Ok, "Xbox Security Sector end must be a number");
dlgMsg.Run();
dlgMsg.Destroy();
return;
}
if(temp2 <= temp)
{
dlgMsg = new MessageDialog(this, DialogFlags.Modal, MessageType.Error, ButtonsType.Ok, "Xbox Security Sector must end after start, and be bigger than 1 sector");
dlgMsg.Run();
dlgMsg.Destroy();
return;
}
lstXboxSS.AppendValues(int.Parse(txtSSStart.Text), int.Parse(txtSSEnd.Text));
}
protected void OnBtnRemovePartitionClicked(object sender, EventArgs e)
{
if(treePartitions.Selection.GetSelected(out partitionIter))
@@ -1581,6 +1527,7 @@ namespace osrepodbmgr
}
Metadata.Checksums = checksums;
Metadata.Xbox = xbox;
if(lstRingCodes.GetIterFirst(out outIter))
{
@@ -1887,20 +1834,6 @@ namespace osrepodbmgr
Metadata.LeadOut = leadouts.ToArray();
}
if(lstXboxSS.GetIterFirst(out outIter))
{
List<SecuritySectorsType> xboxss = new List<SecuritySectorsType>();
do
{
SecuritySectorsType ss = new SecuritySectorsType();
ss.Start = (long)lstXboxSS.GetValue(outIter, 0);
ss.End = (long)lstXboxSS.GetValue(outIter, 1);
xboxss.Add(ss);
}
while(lstXboxSS.IterNext(ref outIter));
Metadata.XboxSecuritySectors = xboxss.ToArray();
}
if(!string.IsNullOrWhiteSpace(txtPS3Key.Text) && !string.IsNullOrWhiteSpace(txtPS3Serial.Text))
{
Metadata.PS3Encryption = new PS3EncryptionType();
@@ -2005,8 +1938,8 @@ namespace osrepodbmgr
do
{
ExtentType extent = new ExtentType();
extent.Start = (int)lstExtents.GetValue(extIter, 0);
extent.End = (int)lstExtents.GetValue(extIter, 1);
extent.Start = (ulong)lstExtents.GetValue(extIter, 0);
extent.End = (ulong)lstExtents.GetValue(extIter, 1);
extents.Add(extent);
}
while(lstExtents.IterNext(ref extIter));

View File

@@ -24,7 +24,8 @@ namespace Stetic
{
return res;
}
else {
else
{
int sz;
int sy;
global::Gtk.Icon.SizeLookup(size, out sz, out sy);
@@ -38,7 +39,8 @@ namespace Stetic
{
return Stetic.IconLoader.LoadIcon(widget, "gtk-missing-image", size);
}
else {
else
{
Gdk.Pixmap pmap = new Gdk.Pixmap(Gdk.Screen.Default.RootWindow, sz, sz);
Gdk.GC gc = new Gdk.GC(pmap);
gc.RgbFgColor = new Gdk.Color(255, 255, 255);

View File

@@ -8008,7 +8008,7 @@ QNX/QNX/20090229/source.zip</property>
</widget>
</child>
</widget>
<widget class="Gtk.Dialog" id="osrepodbmgr.dlgOpticalDisc" design-size="914 738">
<widget class="Gtk.Dialog" id="osrepodbmgr.dlgOpticalDisc" design-size="939 738">
<property name="MemberName" />
<property name="WindowPosition">CenterOnParent</property>
<property name="Buttons">2</property>
@@ -8021,7 +8021,7 @@ QNX/QNX/20090229/source.zip</property>
<widget class="Gtk.Notebook" id="notebook1">
<property name="MemberName" />
<property name="CanFocus">True</property>
<property name="CurrentPage">13</property>
<property name="CurrentPage">10</property>
<child>
<widget class="Gtk.VBox" id="vbox2">
<property name="MemberName" />
@@ -10896,159 +10896,6 @@ QNX/QNX/20090229/source.zip</property>
<property name="type">tab</property>
</packing>
</child>
<child>
<widget class="Gtk.Frame" id="frmXboxSS">
<property name="MemberName" />
<property name="ShadowType">None</property>
<child>
<widget class="Gtk.Alignment" id="GtkAlignment41">
<property name="MemberName" />
<property name="Xalign">0</property>
<property name="Yalign">0</property>
<property name="LeftPadding">12</property>
<child>
<widget class="Gtk.VBox" id="vbox39">
<property name="MemberName" />
<property name="Spacing">6</property>
<child>
<widget class="Gtk.ScrolledWindow" id="GtkScrolledWindow24">
<property name="MemberName" />
<property name="ShadowType">In</property>
<child>
<widget class="Gtk.TreeView" id="treeXboxSS">
<property name="MemberName" />
<property name="CanFocus">True</property>
<property name="ShowScrollbars">True</property>
</widget>
</child>
</widget>
<packing>
<property name="Position">0</property>
<property name="AutoSize">True</property>
</packing>
</child>
<child>
<widget class="Gtk.HBox" id="hbox94">
<property name="MemberName" />
<property name="Spacing">6</property>
<child>
<widget class="Gtk.Label" id="lblSSStart">
<property name="MemberName" />
<property name="LabelProp" translatable="yes">Start</property>
</widget>
<packing>
<property name="Position">0</property>
<property name="AutoSize">True</property>
<property name="Expand">False</property>
<property name="Fill">False</property>
</packing>
</child>
<child>
<widget class="Gtk.Entry" id="txtSSStart">
<property name="MemberName" />
<property name="CanFocus">True</property>
<property name="IsEditable">True</property>
<property name="InvisibleChar">●</property>
</widget>
<packing>
<property name="Position">1</property>
<property name="AutoSize">True</property>
</packing>
</child>
<child>
<widget class="Gtk.Label" id="lblSSEnd">
<property name="MemberName" />
<property name="LabelProp" translatable="yes">End</property>
</widget>
<packing>
<property name="Position">2</property>
<property name="AutoSize">True</property>
<property name="Expand">False</property>
<property name="Fill">False</property>
</packing>
</child>
<child>
<widget class="Gtk.Entry" id="txtSSEnd">
<property name="MemberName" />
<property name="CanFocus">True</property>
<property name="IsEditable">True</property>
<property name="InvisibleChar">●</property>
</widget>
<packing>
<property name="Position">3</property>
<property name="AutoSize">True</property>
</packing>
</child>
<child>
<widget class="Gtk.Button" id="btnRemoveSS">
<property name="MemberName" />
<property name="CanFocus">True</property>
<property name="UseStock">True</property>
<property name="Type">StockItem</property>
<property name="StockId">gtk-remove</property>
<signal name="Clicked" handler="OnBtnRemoveSSClicked" />
<property name="label">gtk-remove</property>
</widget>
<packing>
<property name="Position">4</property>
<property name="AutoSize">True</property>
<property name="Expand">False</property>
<property name="Fill">False</property>
</packing>
</child>
<child>
<widget class="Gtk.Button" id="btnAddSS">
<property name="MemberName" />
<property name="CanFocus">True</property>
<property name="UseStock">True</property>
<property name="Type">StockItem</property>
<property name="StockId">gtk-add</property>
<signal name="Clicked" handler="OnBtnAddSSClicked" />
<property name="label">gtk-add</property>
</widget>
<packing>
<property name="Position">5</property>
<property name="AutoSize">True</property>
<property name="Expand">False</property>
<property name="Fill">False</property>
</packing>
</child>
</widget>
<packing>
<property name="Position">1</property>
<property name="AutoSize">True</property>
<property name="Expand">False</property>
<property name="Fill">False</property>
</packing>
</child>
</widget>
</child>
</widget>
</child>
<child>
<widget class="Gtk.Label" id="GtkLabel46">
<property name="MemberName" />
<property name="LabelProp" translatable="yes">&lt;b&gt;Security sectors&lt;/b&gt;</property>
<property name="UseMarkup">True</property>
</widget>
<packing>
<property name="type">label_item</property>
</packing>
</child>
</widget>
<packing>
<property name="Position">10</property>
</packing>
</child>
<child>
<widget class="Gtk.Label" id="label118">
<property name="MemberName" />
<property name="LabelProp" translatable="yes">Xbox</property>
</widget>
<packing>
<property name="type">tab</property>
</packing>
</child>
<child>
<widget class="Gtk.Frame" id="frmPS3">
<property name="MemberName" />
@@ -11151,7 +10998,7 @@ QNX/QNX/20090229/source.zip</property>
</child>
</widget>
<packing>
<property name="Position">11</property>
<property name="Position">10</property>
</packing>
</child>
<child>
@@ -11978,7 +11825,7 @@ QNX/QNX/20090229/source.zip</property>
</child>
</widget>
<packing>
<property name="Position">12</property>
<property name="Position">11</property>
</packing>
</child>
<child>
@@ -12602,7 +12449,7 @@ QNX/QNX/20090229/source.zip</property>
</child>
</widget>
<packing>
<property name="Position">13</property>
<property name="Position">12</property>
</packing>
</child>
<child>

File diff suppressed because it is too large Load Diff