mirror of
https://github.com/aaru-dps/Aaru.git
synced 2025-12-16 19:24:25 +00:00
Rework image conversion command to separate into parts and move to Aaru.Core.
This commit is contained in:
49
Aaru.Core/Image/Convert/Metadata.cs
Normal file
49
Aaru.Core/Image/Convert/Metadata.cs
Normal file
@@ -0,0 +1,49 @@
|
||||
using Aaru.CommonTypes.Enums;
|
||||
using Aaru.CommonTypes.Interop;
|
||||
using Aaru.Localization;
|
||||
|
||||
namespace Aaru.Core.Image;
|
||||
|
||||
public partial class Convert
|
||||
{
|
||||
ErrorNumber SetImageMetadata()
|
||||
{
|
||||
// Builds and applies complete ImageInfo metadata to output image
|
||||
// Copies input metadata and applies command-line overrides (title, comments, creator, drive info, etc.)
|
||||
// Sets Aaru application version and applies all metadata fields to output format
|
||||
|
||||
var imageInfo = new CommonTypes.Structs.ImageInfo
|
||||
{
|
||||
Application = "Aaru",
|
||||
ApplicationVersion = Version.GetInformationalVersion(),
|
||||
Comments = _comments ?? _inputImage.Info.Comments,
|
||||
Creator = _creator ?? _inputImage.Info.Creator,
|
||||
DriveFirmwareRevision = _driveFirmwareRevision ?? _inputImage.Info.DriveFirmwareRevision,
|
||||
DriveManufacturer = _driveManufacturer ?? _inputImage.Info.DriveManufacturer,
|
||||
DriveModel = _driveModel ?? _inputImage.Info.DriveModel,
|
||||
DriveSerialNumber = _driveSerialNumber ?? _inputImage.Info.DriveSerialNumber,
|
||||
LastMediaSequence = _lastMediaSequence != 0 ? _lastMediaSequence : _inputImage.Info.LastMediaSequence,
|
||||
MediaBarcode = _mediaBarcode ?? _inputImage.Info.MediaBarcode,
|
||||
MediaManufacturer = _mediaManufacturer ?? _inputImage.Info.MediaManufacturer,
|
||||
MediaModel = _mediaModel ?? _inputImage.Info.MediaModel,
|
||||
MediaPartNumber = _mediaPartNumber ?? _inputImage.Info.MediaPartNumber,
|
||||
MediaSequence = _mediaSequence != 0 ? _mediaSequence : _inputImage.Info.MediaSequence,
|
||||
MediaSerialNumber = _mediaSerialNumber ?? _inputImage.Info.MediaSerialNumber,
|
||||
MediaTitle = _mediaTitle ?? _inputImage.Info.MediaTitle
|
||||
};
|
||||
|
||||
if(_outputImage.SetImageInfo(imageInfo)) return ErrorNumber.NoError;
|
||||
|
||||
if(!_force)
|
||||
{
|
||||
StoppingErrorMessage?.Invoke(string.Format(UI.Error_0_setting_metadata_not_continuing,
|
||||
_outputImage.ErrorMessage));
|
||||
|
||||
return ErrorNumber.WriteError;
|
||||
}
|
||||
|
||||
ErrorMessage?.Invoke(string.Format(Localization.Core.Error_0_setting_metadata, _outputImage.ErrorMessage));
|
||||
|
||||
return ErrorNumber.NoError;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user