Files
Aaru/Aaru.Core/Image/Convert/Metadata.cs

49 lines
2.4 KiB
C#
Raw Normal View History

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;
}
}