},\r
"metadata": {\r
"$type": "TrafficMetadata",\r
+ "uiFileName": "metadataprovider.en",\r
"server": {\r
"address": "Data Source=10.10.1.45;Initial Catalog=PA_Echo;Persist Security Info=True;",\r
"userName": "MAM",\r
"password": "7RKZYBzumKjL40SJwuwiFCvX57xuCN8zay6OttUm2wbrgImyYZBHyZTUUYrXX31Ge2Uwew07HYsqh2uzdJeDBDwcVntxaHg3nIpv9Dyq/odVoiC4tUF/K+lgvKWANcrZ",\r
- "timeout": 1000\r
+ "timeout": 500\r
}\r
}\r
}\r
--- /dev/null
+{\r
+ "define-segment": "Define segment",\r
+ "break-segment": "Break segment",\r
+ "position-as-tcin": "Current position as TC in",\r
+ "position-as-tcout": "Current position as TC out",\r
+ "delete-segment": "Delete segment",\r
+ "segments": "Segments",\r
+ "no-input": "NO INPUT",\r
+ "start": "START",\r
+ "length": "LENGTH",\r
+ "tc-in": "TC in",\r
+ "tc-out": "TC out",\r
+ "optional": "Optional",\r
+ "comment": "Comment",\r
+ "starting": "STARTING",\r
+ "exiting": "EXITING",\r
+ "paused": "PAUSED",\r
+ "playing": "PLAYING",\r
+ "stopped": "STOPPED",\r
+ "completed": "COMPLETED",\r
+ "pause": "Pause",\r
+ "play": "Play",\r
+ "stop": "Stop",\r
+ "missing-traffic-configuration": "Missing PlanAir connection configuration.",\r
+ "error-traffic-connect": "Could not connect to PlanAir system, using: {0}",\r
+ "missing-traffic-variant": "Missing metadata for {0} in PlanAir system."\r
+}\r
</Compile>\r
<Content Include="DirectShowLib.dll" />\r
<Content Include="maestro.ico" />\r
+ <None Include="Configuration\metadataprovider.en">\r
+ <CopyToOutputDirectory>Always</CopyToOutputDirectory>\r
+ </None>\r
<None Include="Configuration\dxplay.en">\r
<CopyToOutputDirectory>Always</CopyToOutputDirectory>\r
</None>\r
namespace DxPlay {\r
public class DxPlaySettings : UISettings {\r
public Player Player { get; set; }\r
- public MetadataProvider Metadata { get; set; }\r
+ public TrafficMetadata Metadata { get; set; }\r
public BindingList<MovieSegment> Segments { get; set; }\r
public bool IsStandalone { get; set; }\r
public bool IsMaximized { get; set; }\r
\r
using LinkDotNet.MessageHandling.Contracts;\r
using TrafficClient;\r
-using LinkDotNet.MessageHandling;\r
using MaestroShared.Configuration;\r
using System;\r
using System.Linq;\r
namespace DxPlay.Integration {\r
public class Traffic {\r
private static readonly Logger logger = LogManager.GetCurrentClassLogger();\r
- private IMessageBus messageBus = new MessageBus();\r
private readonly DxPlaySettings settings;\r
private readonly string id;\r
private readonly Connection connection;\r
public TrafficAPI Api { get; private set; }\r
\r
- public Traffic(DxPlaySettings settings, string id) {\r
- messageBus.Subscribe<TrafficAPIMessage>(OnMessage);\r
+ public Traffic(DxPlaySettings settings, string id, IMessageBus messageBus) {\r
connection = settings?.Metadata?.Server;\r
if (connection == null)\r
throw new Exception(settings.Resource("missing-traffic-configuration", StringResource.MISSING_TRAFFIC_CONFIGURATION));\r
this.id = id;\r
}\r
\r
- private void OnMessage(IMessage message) {\r
- string msg = string.Format(settings.Resource("error-traffic-connect", StringResource.ERROR_TRAFFIC_CONNECT), connection.Address.OriginalString);\r
- throw new Exception(msg);\r
- //MessageBox.Show(msg, "Connection error", MessageBoxButtons.OK, MessageBoxIcon.Error);\r
- }\r
-\r
public List<MovieSegment> LoadSegments() {\r
var metadataType = MetadataTypeUtil.Guess(id);\r
List<MovieSegment> result = null;\r
using System.Collections.Generic;\r
using System.ComponentModel;\r
using System.Runtime.CompilerServices;\r
+using LinkDotNet.MessageHandling;\r
+using LinkDotNet.MessageHandling.Contracts;\r
+using TrafficClient;\r
\r
namespace DxPlay.Model {\r
public class DxPlayModel {\r
IsSegmentEditorEnabled = true.Equals(settings?.Player?.SegmentEditor);\r
IsMenuVisible = true.Equals(settings?.IsStandalone);\r
Segments = settings.Segments ?? new BindingList<MovieSegment>();\r
+ messageBus.Subscribe<TrafficAPIMessage>(OnMessage);\r
+ }\r
+\r
+ private void OnMessage(IMessage message) {\r
+ string msg = string.Format(settings.Resource("error-traffic-connect", StringResource.ERROR_TRAFFIC_CONNECT), settings?.Metadata?.Server?.Address?.OriginalString);\r
+ throw new Exception(msg);\r
+ //MessageBox.Show(msg, "Connection error", MessageBoxButtons.OK, MessageBoxIcon.Error);\r
}\r
\r
private void Notify([CallerMemberName] String propertyName = "") {\r
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));\r
}\r
\r
+ private IMessageBus messageBus = new MessageBus();\r
+ public IMessageBus MessageBus { get => messageBus; }\r
+\r
private bool isSegmentEditorEnabled;\r
public bool IsSegmentEditorEnabled {\r
get {\r
internal void InitializeSegments(string id) {\r
Segments.Clear();\r
try {\r
- traffic = new Traffic(settings, id);\r
+ traffic = new Traffic(settings, id, MessageBus);\r
List<MovieSegment> segments = traffic.LoadSegments();\r
if (segments != null)\r
segments.ForEach(s => Segments.Add(s));\r
this.tpSegments.Location = new System.Drawing.Point(4, 4);\r
this.tpSegments.Name = "tpSegments";\r
this.tpSegments.Padding = new System.Windows.Forms.Padding(3);\r
- this.tpSegments.Size = new System.Drawing.Size(281, 442);\r
+ this.tpSegments.Size = new System.Drawing.Size(192, 30);\r
this.tpSegments.TabIndex = 1;\r
this.tpSegments.Text = "Segments";\r
this.tpSegments.UseVisualStyleBackColor = true;\r
this.dgSegments.Name = "dgSegments";\r
this.dgSegments.RowHeadersVisible = false;\r
this.dgSegments.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect;\r
- this.dgSegments.Size = new System.Drawing.Size(275, 411);\r
+ this.dgSegments.Size = new System.Drawing.Size(186, 0);\r
this.dgSegments.TabIndex = 1;\r
this.dgSegments.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgSegments_CellContentClick);\r
this.dgSegments.CellMouseDoubleClick += new System.Windows.Forms.DataGridViewCellMouseEventHandler(this.dgSegments_CellMouseDoubleClick);\r
this.segmentActions.Location = new System.Drawing.Point(3, 3);\r
this.segmentActions.Name = "segmentActions";\r
this.segmentActions.RenderMode = System.Windows.Forms.ToolStripRenderMode.System;\r
- this.segmentActions.Size = new System.Drawing.Size(275, 25);\r
+ this.segmentActions.Size = new System.Drawing.Size(186, 25);\r
this.segmentActions.TabIndex = 0;\r
this.segmentActions.Text = "toolStrip1";\r
// \r
using MaestroShared.Metadata;\r
using NLog;\r
using DxPlay.Model;\r
+using TrafficClient;\r
+using MaestroShared.Commons;\r
\r
namespace DxPlay {\r
\r
mainSplit.Panel2.Hide();\r
};\r
mainSplit.DataBindings.Add(segmentEditorPanelBinding);\r
+ trafficBrowser.Parameters = new TrafficParameters {\r
+ Configuration = Settings.Metadata, MessageBus = model.MessageBus\r
+ };\r
}\r
\r
public PlayerForm() {\r
try {\r
model.InitializeSegments(id);\r
} catch (Exception e) {\r
- MessageBox.Show(e.Message, null, MessageBoxButtons.OK, MessageBoxIcon.Error);\r
+ MsgBox.Error(e.Message);\r
logger.Error(e);\r
}\r
}\r
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w\r
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0\r
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAABo\r
- CAAAAk1TRnQBSQFMAgEBAgEAAVgBAAFYAQABGAEAARgBAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo\r
+ CAAAAk1TRnQBSQFMAgEBAgEAAWABAAFgAQABGAEAARgBAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo\r
AwABYAMAARgDAAEBAQABCAYAAQkYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA\r
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5\r
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA\r
public class NEXIOSource : Source {\r
}\r
\r
- public class MetadataProvider {\r
+ public class MetadataProvider : UISettings {\r
public Connection Server { get; set; }\r
}\r
\r