2017-11-25 01:30:43 +01:00
|
|
|
|
using System.Collections.Generic;
|
2017-11-25 14:47:55 +01:00
|
|
|
|
using System.Drawing;
|
2017-11-25 01:30:43 +01:00
|
|
|
|
using System.IO;
|
2017-11-23 03:23:43 +01:00
|
|
|
|
using NLog;
|
2017-11-25 14:47:55 +01:00
|
|
|
|
using WatchFace.Parser.Models;
|
2017-11-25 15:42:48 +01:00
|
|
|
|
using WatchFace.Parser.Utils;
|
2017-11-23 03:23:43 +01:00
|
|
|
|
|
2017-11-23 13:49:48 +01:00
|
|
|
|
namespace WatchFace.Parser
|
2017-11-23 03:23:43 +01:00
|
|
|
|
{
|
|
|
|
|
public class Writer
|
|
|
|
|
{
|
|
|
|
|
private static readonly Logger Logger = LogManager.GetCurrentClassLogger();
|
2017-11-25 15:42:48 +01:00
|
|
|
|
private readonly List<Bitmap> _images;
|
2017-11-23 03:23:43 +01:00
|
|
|
|
|
2017-11-25 14:47:55 +01:00
|
|
|
|
private readonly Stream _stream;
|
2017-11-23 03:23:43 +01:00
|
|
|
|
|
2017-11-25 14:47:55 +01:00
|
|
|
|
public Writer(Stream stream, List<Bitmap> images)
|
2017-11-23 03:23:43 +01:00
|
|
|
|
{
|
2017-11-25 14:47:55 +01:00
|
|
|
|
_stream = stream;
|
|
|
|
|
_images = images;
|
2017-11-23 03:23:43 +01:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void Write(WatchFace watchFace)
|
|
|
|
|
{
|
|
|
|
|
var descriptor = ParametersConverter.Build(watchFace);
|
2017-11-25 01:30:43 +01:00
|
|
|
|
var encodedParameters = new Dictionary<long, MemoryStream>(descriptor.Count);
|
|
|
|
|
foreach (var parameter in descriptor)
|
|
|
|
|
{
|
|
|
|
|
var memoryStream = new MemoryStream();
|
|
|
|
|
parameter.Write(memoryStream);
|
|
|
|
|
encodedParameters[parameter.Id] = memoryStream;
|
|
|
|
|
}
|
2017-11-25 14:47:55 +01:00
|
|
|
|
|
|
|
|
|
var header = new Header {ParametersSize = 20};
|
|
|
|
|
header.WriteTo(_stream);
|
2017-11-23 03:23:43 +01:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|