mirror of
https://github.com/aaru-dps/Aaru.git
synced 2025-12-16 19:24:25 +00:00
49 lines
2.4 KiB
C#
49 lines
2.4 KiB
C#
|
|
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;
|
||
|
|
}
|
||
|
|
}
|