From 6f556d18b0b54084859637b15cf3a59994597424 Mon Sep 17 00:00:00 2001 From: =?utf8?q?V=C3=A1s=C3=A1ry=20D=C3=A1niel?= Date: Fri, 7 Feb 2020 14:42:10 +0000 Subject: [PATCH] git-tfs-id: [http://tfs.userrendszerhaz.hu:8080/tfs/DefaultCollection]$/MediaCube;C31734 --- client/DxPlay/Configuration/dxplay.json | 14 +- client/DxPlay/PlayerForm.cs | 2 +- client/DxPlay/Properties/AssemblyInfo.cs | 4 +- client/MXFFileParser/MXFFile.cs | 144 +++++++++++++++++- .../MXFFileParser/Properties/AssemblyInfo.cs | 4 +- .../Maestro/ArchiveMetadataForm.Designer.cs | 83 +++++----- client/Maestro/ArchiveMetadataForm.cs | 41 ++++- .../Maestro/Configuration/editor-hirtv.json | 90 +++++++++++ .../{editor.json => editor-mv.json} | 4 +- client/Maestro/Maestro.csproj | 5 +- client/Maestro/MaestroForm.Metadata.cs | 2 +- client/Maestro/Properties/AssemblyInfo.cs | 4 +- .../zk/model/MaestroJobListModel.java | 8 +- 13 files changed, 338 insertions(+), 67 deletions(-) create mode 100644 client/Maestro/Configuration/editor-hirtv.json rename client/Maestro/Configuration/{editor.json => editor-mv.json} (94%) diff --git a/client/DxPlay/Configuration/dxplay.json b/client/DxPlay/Configuration/dxplay.json index 7718a798..431b53ad 100644 --- a/client/DxPlay/Configuration/dxplay.json +++ b/client/DxPlay/Configuration/dxplay.json @@ -5,18 +5,6 @@ "isStandalone": true, "player": { "autoStart": false, - "segmentEditor": true - }, - "metadata": { - "$type": "TrafficMetadata", - "uiFileName": "dxplay.en", - "server": { - "address": "Data Source=10.10.1.45;Initial Catalog=PA_Echo;Persist Security Info=True;", - "userName": "MAM", - "password": "7RKZYBzumKjL40SJwuwiFCvX57xuCN8zay6OttUm2wbrgImyYZBHyZTUUYrXX31Ge2Uwew07HYsqh2uzdJeDBDwcVntxaHg3nIpv9Dyq/odVoiC4tUF/K+lgvKWANcrZ", - "timeout": 10000 - }, - "version": 0, - "redefineSegments": true + "segmentEditor": false } } diff --git a/client/DxPlay/PlayerForm.cs b/client/DxPlay/PlayerForm.cs index 9b2d34cd..8ef8fd07 100644 --- a/client/DxPlay/PlayerForm.cs +++ b/client/DxPlay/PlayerForm.cs @@ -472,7 +472,7 @@ namespace DxPlay { BeginInvoke((Action)(() => { if (Disposing || IsDisposed || m_play == null) return; - if (m_play.State == GraphState.Completed) + if (m_play.State == GraphState.Completed || m_play.State == GraphState.Paused) UpdatePlayPauseButton(); if (!trackBarAtUser) playerControls.TrackBar.Value = m_play.CurrentTC.ZeroBasedFrames; diff --git a/client/DxPlay/Properties/AssemblyInfo.cs b/client/DxPlay/Properties/AssemblyInfo.cs index c5457f59..bc238e26 100644 --- a/client/DxPlay/Properties/AssemblyInfo.cs +++ b/client/DxPlay/Properties/AssemblyInfo.cs @@ -26,7 +26,7 @@ using System.Runtime.CompilerServices; // You can specify all the values or you can default the Revision and Build Numbers // by using the '*' as shown below: -[assembly: AssemblyVersion("2.0.8.8")] +[assembly: AssemblyVersion("2.0.8.9")] // // In order to sign your assembly you must specify a key to use. Refer to the @@ -56,5 +56,5 @@ using System.Runtime.CompilerServices; [assembly: AssemblyDelaySign(false)] [assembly: AssemblyKeyFile("")] [assembly: AssemblyKeyName("")] -[assembly: AssemblyFileVersion("2.0.8.8")] +[assembly: AssemblyFileVersion("2.0.8.9")] diff --git a/client/MXFFileParser/MXFFile.cs b/client/MXFFileParser/MXFFile.cs index f01a562a..3d9967b9 100644 --- a/client/MXFFileParser/MXFFile.cs +++ b/client/MXFFileParser/MXFFile.cs @@ -91,12 +91,148 @@ namespace Myriadbits.MXF { break; } } - //TODO XML kiolvasás és parse - public string InspectMetadata() { - ParsePartial(); - return null; + string ReadData(MXFObject obj) { + string result = null; + long readerOffset = obj.Offset; + long len = (int)obj.Length; + MXFKLV klv = obj as MXFKLV; + if (klv != null) { + // Determine real length including BER + Key + len = (klv.DataOffset - readerOffset) + klv.Length; + } + MXFLocalTag lt = obj as MXFLocalTag; + if (lt != null) { + len = (lt.DataOffset - readerOffset) + lt.Size; + } + + if (len > 0) { + byte[] data = new byte[len]; + + using (MXFReader reader = new MXFReader(this.Filename)) { + reader.Seek(readerOffset); + reader.Read(data, len); + } + result = System.Text.Encoding.UTF8.GetString(data); + } + + if (result != null) { + int startIndex = result.IndexOf(""); + if (startIndex > -1) + result = result.Substring(startIndex, endIndex - startIndex + 1); + } + return result; + } + + /// + /// Partially Parse an MXF file, retrieve embedded metadata + /// + public string GetMetadata() { + string result = null; + MXFKLVFactory klvFactory = new MXFKLVFactory(); + + MXFPartition currentPartition = null; + Dictionary allPrimerKeys = null; + int[] counters = new int[Enum.GetNames(typeof(KeyType)).Length]; + PartialSeekMode seekMode = PartialSeekMode.Unknown; + using (m_reader = new MXFReader(this.Filename)) { + this.Filesize = m_reader.Size; + MXFObject partitions = new MXFNamedObject("Partitions", 0); + this.AddChild(partitions); + + // Start with trying to find the RIP + bool ripFound = ReadRIP(klvFactory); + if (ripFound) + seekMode = PartialSeekMode.UsingRIP; + m_reader.Seek(0); // Start at the beginning + + // Start by reading the first partition + int partitionNumber = 0; // For easy partition identification + while (!m_reader.EOF && seekMode != PartialSeekMode.Backwards) // Eof and NOT searching backwards + { + MXFKLV klv = klvFactory.CreateObject(m_reader, currentPartition); + + //Debug.WriteLine(klv.Parent.Type + " " + klv.Type); + + // Update overall counters + //if (klv.Key.Type == KeyType.None) + // counters[(int)klv.Key.Type]++; + + if (klv.Key.Type == KeyType.Partition && seekMode == PartialSeekMode.Backwards) { + if (this.Partitions.Exists(a => a.Offset == klv.Offset)) { + // A new partition has been found that we already found, quit the main loop + break; + } + } + + + // Process the new KLV + + if (!ProcessKLVObjectOrig(klv, partitions, ref currentPartition, ref partitionNumber, ref allPrimerKeys)) + break; + Debug.WriteLine("{0}/{1} ", klv.Parent, klv); + + if ("XML Document Text - An XML document as text. Data type is specified by the value.".Equals(klv.Key.Name)) { + result = ReadData(klv); + break; + } + + // If we found the second partition + long nextSeekPosition = klv.DataOffset + klv.Length; + if (partitionNumber >= 2) // Header fully read, now busy with the second partition + { + switch (seekMode) { + case PartialSeekMode.UsingRIP: // And we already found the RIP + if (currentPartition.FirstSystemItem != null) // And we found the first system item + { + MXFEntryRIP ripEntry = this.RIP.GetPartition(partitionNumber); + if (ripEntry != null) { + // Mark the current partition as not-completely read + currentPartition.IsLoaded = false; + + // Start at the next partition + nextSeekPosition = (long)ripEntry.PartitionOffset; + } + } + break; + + case PartialSeekMode.Backwards: // NO RIP, searching backwards + // Backwards, jump to the PREVIOUS partition + if (currentPartition.FirstSystemItem != null) // And we found the first system item + { + // Jump to the previous partition + if (currentPartition.PreviousPartition != 0) { + // And we haven't found this partition yet + if (!this.Partitions.Exists(a => a.ThisPartition == currentPartition.PreviousPartition)) + nextSeekPosition = (long)currentPartition.PreviousPartition; // Jump to previous + } + } + break; + + case PartialSeekMode.Unknown: // No RIP.... + // Hmmm, RIP is not found, check if we have a footer partition somewhere + MXFPartition part = this.Partitions.Where(a => a.FooterPartition != 0).FirstOrDefault(); + if (part != null) { + // If we are already at the footer, don't bother to seek + if (currentPartition.Offset != (long)part.FooterPartition) { + nextSeekPosition = (long)part.FooterPartition; // Start at the footer + seekMode = PartialSeekMode.Backwards; + } + } + break; + } + } + + // Next KLV please + m_reader.Seek(nextSeekPosition); + + } + } + //Debug.WriteLine(String.Format("Finished parsing file '{0}'", this.Filename)); + return result; } + /// /// Fully Parse an MXF file /// diff --git a/client/MXFFileParser/Properties/AssemblyInfo.cs b/client/MXFFileParser/Properties/AssemblyInfo.cs index 7bf29ca6..22c250e8 100644 --- a/client/MXFFileParser/Properties/AssemblyInfo.cs +++ b/client/MXFFileParser/Properties/AssemblyInfo.cs @@ -32,5 +32,5 @@ using System.Runtime.InteropServices; // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("2.2.0.6")] -[assembly: AssemblyFileVersion("2.2.0.6")] +[assembly: AssemblyVersion("2.2.0.7")] +[assembly: AssemblyFileVersion("2.2.0.7")] diff --git a/client/Maestro/ArchiveMetadataForm.Designer.cs b/client/Maestro/ArchiveMetadataForm.Designer.cs index b844726c..da8339bd 100644 --- a/client/Maestro/ArchiveMetadataForm.Designer.cs +++ b/client/Maestro/ArchiveMetadataForm.Designer.cs @@ -40,10 +40,11 @@ this.btnOk = new System.Windows.Forms.Button(); this.btnCancel = new System.Windows.Forms.Button(); this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); + this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel(); + this.btnImportOctopus = new System.Windows.Forms.Button(); this.cbFolders = new System.Windows.Forms.ComboBox(); this.dtScheduled = new System.Windows.Forms.DateTimePicker(); - this.btnImportOctopus = new System.Windows.Forms.Button(); - this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel(); + this.btnMxfMetadata = new System.Windows.Forms.Button(); this.groupBox1.SuspendLayout(); this.tableLayoutPanel1.SuspendLayout(); this.tableLayoutPanel2.SuspendLayout(); @@ -164,7 +165,7 @@ this.txtMediaDescription.Multiline = true; this.txtMediaDescription.Name = "txtMediaDescription"; this.txtMediaDescription.ScrollBars = System.Windows.Forms.ScrollBars.Both; - this.txtMediaDescription.Size = new System.Drawing.Size(749, 136); + this.txtMediaDescription.Size = new System.Drawing.Size(749, 186); this.txtMediaDescription.TabIndex = 4; // // label_stuffTitle @@ -181,10 +182,11 @@ // // groupBox1 // + this.groupBox1.Controls.Add(this.btnMxfMetadata); this.groupBox1.Controls.Add(this.btnOk); this.groupBox1.Controls.Add(this.btnCancel); this.groupBox1.Dock = System.Windows.Forms.DockStyle.Bottom; - this.groupBox1.Location = new System.Drawing.Point(0, 497); + this.groupBox1.Location = new System.Drawing.Point(0, 547); this.groupBox1.Margin = new System.Windows.Forms.Padding(4); this.groupBox1.Name = "groupBox1"; this.groupBox1.Padding = new System.Windows.Forms.Padding(4); @@ -253,9 +255,39 @@ this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle()); this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle()); this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle()); - this.tableLayoutPanel1.Size = new System.Drawing.Size(771, 497); + this.tableLayoutPanel1.Size = new System.Drawing.Size(771, 547); this.tableLayoutPanel1.TabIndex = 3; // + // tableLayoutPanel2 + // + this.tableLayoutPanel2.AutoSize = true; + this.tableLayoutPanel2.ColumnCount = 3; + this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); + this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); + this.tableLayoutPanel2.Controls.Add(this.btnImportOctopus, 2, 0); + this.tableLayoutPanel2.Controls.Add(this.cbFolders, 1, 0); + this.tableLayoutPanel2.Controls.Add(this.dtScheduled, 0, 0); + this.tableLayoutPanel2.Dock = System.Windows.Forms.DockStyle.Fill; + this.tableLayoutPanel2.Location = new System.Drawing.Point(10, 308); + this.tableLayoutPanel2.Name = "tableLayoutPanel2"; + this.tableLayoutPanel2.RowCount = 1; + this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel2.Size = new System.Drawing.Size(751, 36); + this.tableLayoutPanel2.TabIndex = 10; + // + // btnImportOctopus + // + this.btnImportOctopus.Anchor = System.Windows.Forms.AnchorStyles.None; + this.btnImportOctopus.Location = new System.Drawing.Point(647, 4); + this.btnImportOctopus.Margin = new System.Windows.Forms.Padding(4); + this.btnImportOctopus.Name = "btnImportOctopus"; + this.btnImportOctopus.Size = new System.Drawing.Size(100, 28); + this.btnImportOctopus.TabIndex = 9; + this.btnImportOctopus.Text = "Import"; + this.btnImportOctopus.UseVisualStyleBackColor = true; + this.btnImportOctopus.Click += new System.EventHandler(this.OnImportOctopusData); + // // cbFolders // this.cbFolders.Dock = System.Windows.Forms.DockStyle.Fill; @@ -281,42 +313,24 @@ this.dtScheduled.TabIndex = 7; this.dtScheduled.ValueChanged += new System.EventHandler(this.OnDateChanged); // - // btnImportOctopus - // - this.btnImportOctopus.Anchor = System.Windows.Forms.AnchorStyles.None; - this.btnImportOctopus.Location = new System.Drawing.Point(647, 4); - this.btnImportOctopus.Margin = new System.Windows.Forms.Padding(4); - this.btnImportOctopus.Name = "btnImportOctopus"; - this.btnImportOctopus.Size = new System.Drawing.Size(100, 28); - this.btnImportOctopus.TabIndex = 9; - this.btnImportOctopus.Text = "Import"; - this.btnImportOctopus.UseVisualStyleBackColor = true; - this.btnImportOctopus.Click += new System.EventHandler(this.OnImportOctopusData); - // - // tableLayoutPanel2 + // btnMxfMetadata // - this.tableLayoutPanel2.AutoSize = true; - this.tableLayoutPanel2.ColumnCount = 3; - this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); - this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); - this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); - this.tableLayoutPanel2.Controls.Add(this.btnImportOctopus, 2, 0); - this.tableLayoutPanel2.Controls.Add(this.cbFolders, 1, 0); - this.tableLayoutPanel2.Controls.Add(this.dtScheduled, 0, 0); - this.tableLayoutPanel2.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel2.Location = new System.Drawing.Point(10, 308); - this.tableLayoutPanel2.Name = "tableLayoutPanel2"; - this.tableLayoutPanel2.RowCount = 1; - this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); - this.tableLayoutPanel2.Size = new System.Drawing.Size(751, 36); - this.tableLayoutPanel2.TabIndex = 10; + this.btnMxfMetadata.Anchor = System.Windows.Forms.AnchorStyles.Left; + this.btnMxfMetadata.Location = new System.Drawing.Point(8, 15); + this.btnMxfMetadata.Margin = new System.Windows.Forms.Padding(4); + this.btnMxfMetadata.Name = "btnMxfMetadata"; + this.btnMxfMetadata.Size = new System.Drawing.Size(126, 28); + this.btnMxfMetadata.TabIndex = 7; + this.btnMxfMetadata.Text = "MXF Metadata"; + this.btnMxfMetadata.UseVisualStyleBackColor = true; + this.btnMxfMetadata.Click += new System.EventHandler(this.OnImportMxfMetadataClick); // // ArchiveMetadataForm // this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.CancelButton = this.btnCancel; - this.ClientSize = new System.Drawing.Size(771, 548); + this.ClientSize = new System.Drawing.Size(771, 598); this.Controls.Add(this.tableLayoutPanel1); this.Controls.Add(this.groupBox1); this.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238))); @@ -355,5 +369,6 @@ private System.Windows.Forms.DateTimePicker dtScheduled; private System.Windows.Forms.Button btnImportOctopus; private System.Windows.Forms.TableLayoutPanel tableLayoutPanel2; + private System.Windows.Forms.Button btnMxfMetadata; } } \ No newline at end of file diff --git a/client/Maestro/ArchiveMetadataForm.cs b/client/Maestro/ArchiveMetadataForm.cs index f1aa3a54..d8da45fc 100644 --- a/client/Maestro/ArchiveMetadataForm.cs +++ b/client/Maestro/ArchiveMetadataForm.cs @@ -7,15 +7,21 @@ using System.Collections.Generic; using System.Linq; using System; using MaestroShared.Commons; +using Maestro.Metadata; +using Myriadbits.MXF; +using System.Xml.Linq; +using System.Diagnostics; namespace Maestro { public partial class ArchiveMetadataForm : Form { private ArchiveMetadata model; + private readonly SourceInfo selectedSource; private OctopusAPI client; - public ArchiveMetadataForm(ref ArchiveMetadata model, OctopusMetadata metadata, IMessageBus errorMessageBus) : this() { + public ArchiveMetadataForm(ref ArchiveMetadata model, OctopusMetadata metadata, IMessageBus errorMessageBus, SourceInfo selectedSource) : this() { this.model = model; + this.selectedSource = selectedSource; txtItemID.Text = model.itemHouseId; txtItemTitle.Text = model.itemTitle; txtItemDescription.Text = model.itemDescription; @@ -31,6 +37,8 @@ namespace Maestro { client = new OctopusAPI(metadata.Server?.Address?.OriginalString, metadata.Server?.UserName, metadata.Server?.Password, metadata.Server?.Timeout ?? 0, errorMessageBus); RefreshFolders(); } + + btnMxfMetadata.Enabled = selectedSource?.FileInfo != null; } private void RefreshFolders() { @@ -79,5 +87,36 @@ namespace Maestro { else txtMediaDescription.Text = text; } + + private void OnImportMxfMetadataClick(object sender, EventArgs e) { + try { + MXFFile mxf = new MXFFile(selectedSource.FileInfo.FullName); + string xml = mxf.GetMetadata(); + if (xml == null) { + MessageBox.Show("Nem található metaadat a fájlban."); + return; + } + + XElement root = XElement.Parse(xml); + string ns = root.GetDefaultNamespace()?.NamespaceName; + if (ns != null) + ns = "{" + ns + "}"; + + XElement xCreator = root.Elements(ns + "Creator").FirstOrDefault(); + if (xCreator != null) + txtItemTitle.Text = xCreator.Attribute("name").Value; + XElement xTitle = root.Elements(ns + "Title").FirstOrDefault(); + if (xTitle != null) + txtMediaTitle.Text = xTitle.Attribute("usAscii").Value; + XElement xDescription = root.Elements(ns + "Description").FirstOrDefault(); + if (xDescription != null) + txtMediaDescription.Text = xDescription.Value; + + } catch (Exception ex) { + MessageBox.Show("Hiba! A rendszer üzenete: " + ex.Message); + } + + + } } } diff --git a/client/Maestro/Configuration/editor-hirtv.json b/client/Maestro/Configuration/editor-hirtv.json new file mode 100644 index 00000000..dce2293d --- /dev/null +++ b/client/Maestro/Configuration/editor-hirtv.json @@ -0,0 +1,90 @@ +{ + "title": "Editor - HÍRTV", + "active": true, + "startInTray": false, + "enableCustomMetadataId": true, + "player": { + "enabled": true, + "autoStart": false, + "segmentEditor": true + }, + "source": { + "$type": "UNCSource", + "filter": "avi,wav,mxf,mts", + "local": { + "address": "file://d:/!META_MXF", + "timeout": 1000 + }, + "remote": { + "address": "ftp://10.11.1.100/Promise/", + "userName": "editor1", + "password": "mBsAKn0RRr+lErAWAu+oMD/3CRxlBLNvm3UB84SKl5KBVYD5+wIANFL0eszfbAUtzYKqdN/dEB/6ItBNz9D6C4/hppcYrg0+73+xFW9KYEwd2KfgHaH5uslbA/8IyI/U", + "timeout": 1000 + } + }, + "metadatas": [ + { + "$type": "OctopusMetadata", + "server": { + "address": "http://10.10.1.29:89/services/rest/octopus/", + "timeout": 1000 + } + }, + { + "$type": "TrafficMetadata", + "server": { + "address": "Data Source=10.10.1.45;Initial Catalog=PA_Echo;Persist Security Info=True;", + "userName": "MAM", + "password": "7RKZYBzumKjL40SJwuwiFCvX57xuCN8zay6OttUm2wbrgImyYZBHyZTUUYrXX31Ge2Uwew07HYsqh2uzdJeDBDwcVntxaHg3nIpv9Dyq/odVoiC4tUF/K+lgvKWANcrZ", + "timeout": 1000 + } + }, + { + "$type": "MediaCubeMetadata", + "server": { + "address": "http://10.10.1.29:88/services/rest/jobengine/", + "timeout": 1000 + } + } + ], + "targets": [ + { + "label": "Adáskész", + "processor": "FXPTargetProcessor", + "outputFormat": "%ID%", + "reference": [ "Mentés" ], + "saveSegments": true, + "subFolderFormat": "%SOURCEFOLDERNAME%", + "tag": "Adáskész", + "remote": { + "address": "ftp://10.11.1.100/Promise/PROGRAM/TEST", + "userName": "editor1", + "password": "mBsAKn0RRr+lErAWAu+oMD/3CRxlBLNvm3UB84SKl5KBVYD5+wIANFL0eszfbAUtzYKqdN/dEB/6ItBNz9D6C4/hppcYrg0+73+xFW9KYEwd2KfgHaH5uslbA/8IyI/U", + "timeout": 1000 + } + }, + { + "label": "Archiválás", + "processor": "FXPTargetProcessor", + "outputFormat": "%ID%", + "saveArchiveMetadata": true, + "tag": "Archiválás", + "remote": { + "address": "ftp://10.11.1.100/Promise/ARCHIVE/TEST", + "userName": "editor1", + "password": "mBsAKn0RRr+lErAWAu+oMD/3CRxlBLNvm3UB84SKl5KBVYD5+wIANFL0eszfbAUtzYKqdN/dEB/6ItBNz9D6C4/hppcYrg0+73+xFW9KYEwd2KfgHaH5uslbA/8IyI/U", + "timeout": 1000 + } + }, + { + "label": "Mentés", + "readOnly": true, + "processor": "UNCTargetProcessor", + "outputFormat": "%SOURCENAME%", + "tag": "Mentés", + "subFolderFormat": "Transfered", + "moveToFolder": true + } + + ] +} diff --git a/client/Maestro/Configuration/editor.json b/client/Maestro/Configuration/editor-mv.json similarity index 94% rename from client/Maestro/Configuration/editor.json rename to client/Maestro/Configuration/editor-mv.json index 0e802bf1..ee67c186 100644 --- a/client/Maestro/Configuration/editor.json +++ b/client/Maestro/Configuration/editor-mv.json @@ -1,6 +1,6 @@ { "title": "Editor", - "active": true, + "active": false, "startInTray": false, "enableCustomMetadataId": true, "player": { @@ -12,7 +12,7 @@ "$type": "UNCSource", "filter": "avi,wav,mxf,mts", "local": { - "address": "file://c:/_video/", + "address": "file://d:/!META_MXF", "timeout": 1000 }, "remote": { diff --git a/client/Maestro/Maestro.csproj b/client/Maestro/Maestro.csproj index a5cb64d7..0deee7ee 100644 --- a/client/Maestro/Maestro.csproj +++ b/client/Maestro/Maestro.csproj @@ -300,7 +300,10 @@ Always - + + Always + + Always diff --git a/client/Maestro/MaestroForm.Metadata.cs b/client/Maestro/MaestroForm.Metadata.cs index 7a7babaa..9c4ec3b5 100644 --- a/client/Maestro/MaestroForm.Metadata.cs +++ b/client/Maestro/MaestroForm.Metadata.cs @@ -114,7 +114,7 @@ namespace Maestro { } OctopusMetadata metadata = MetadataProvider.Get(Configuration.Metadatas); - ArchiveMetadataForm form = new ArchiveMetadataForm(ref archiveMetadata, metadata, errorMessageBus); + ArchiveMetadataForm form = new ArchiveMetadataForm(ref archiveMetadata, metadata, errorMessageBus, SelectedSource); form.BackColor = partialColor; DialogResult result = form.ShowDialog(); diff --git a/client/Maestro/Properties/AssemblyInfo.cs b/client/Maestro/Properties/AssemblyInfo.cs index 0d15fbc5..38eabe36 100644 --- a/client/Maestro/Properties/AssemblyInfo.cs +++ b/client/Maestro/Properties/AssemblyInfo.cs @@ -32,5 +32,5 @@ using System.Runtime.InteropServices; // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("2.1.0.4")] -[assembly: AssemblyFileVersion("2.1.0.4")] +[assembly: AssemblyVersion("2.1.0.5")] +[assembly: AssemblyFileVersion("2.1.0.5")] diff --git a/server/user.jobengine.osgi.server/src/user/jobengine/zk/model/MaestroJobListModel.java b/server/user.jobengine.osgi.server/src/user/jobengine/zk/model/MaestroJobListModel.java index 60f1db38..ffe01882 100644 --- a/server/user.jobengine.osgi.server/src/user/jobengine/zk/model/MaestroJobListModel.java +++ b/server/user.jobengine.osgi.server/src/user/jobengine/zk/model/MaestroJobListModel.java @@ -118,10 +118,10 @@ public class MaestroJobListModel extends AsyncBaseModel implements IJobChangedLi registerTask(() -> onJobCreated(job)); return; } - if (jobEvent.getSignalType().equals(SignalType.DELETE)) { - registerTask(() -> onJobDeleted(job)); - return; - } + // if (jobEvent.getSignalType().equals(SignalType.DELETE)) { + // registerTask(() -> onJobDeleted(job)); + // return; + // } if (jobEvent.getSignalType().equals(SignalType.UPDATE)) { registerTask(() -> onJobUpdated(job)); return; -- 2.54.0