"isStandalone": true,\r
"player": {\r
"autoStart": false,\r
- "segmentEditor": true\r
- },\r
- "metadata": {\r
- "$type": "TrafficMetadata",\r
- "uiFileName": "dxplay.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": 10000\r
- },\r
- "version": 0,\r
- "redefineSegments": true\r
+ "segmentEditor": false\r
}\r
}\r
BeginInvoke((Action)(() => {\r
if (Disposing || IsDisposed || m_play == null)\r
return;\r
- if (m_play.State == GraphState.Completed)\r
+ if (m_play.State == GraphState.Completed || m_play.State == GraphState.Paused)\r
UpdatePlayPauseButton();\r
if (!trackBarAtUser)\r
playerControls.TrackBar.Value = m_play.CurrentTC.ZeroBasedFrames;\r
// You can specify all the values or you can default the Revision and Build Numbers \r
// by using the '*' as shown below:\r
\r
-[assembly: AssemblyVersion("2.0.8.8")]\r
+[assembly: AssemblyVersion("2.0.8.9")]\r
\r
//\r
// In order to sign your assembly you must specify a key to use. Refer to the \r
[assembly: AssemblyDelaySign(false)]\r
[assembly: AssemblyKeyFile("")]\r
[assembly: AssemblyKeyName("")]\r
-[assembly: AssemblyFileVersion("2.0.8.8")]\r
+[assembly: AssemblyFileVersion("2.0.8.9")]\r
\r
break;\r
}\r
}\r
- //TODO XML kiolvasás és parse\r
- public string InspectMetadata() {\r
- ParsePartial();\r
- return null;\r
+ string ReadData(MXFObject obj) {\r
+ string result = null;\r
+ long readerOffset = obj.Offset;\r
+ long len = (int)obj.Length;\r
+ MXFKLV klv = obj as MXFKLV;\r
+ if (klv != null) {\r
+ // Determine real length including BER + Key\r
+ len = (klv.DataOffset - readerOffset) + klv.Length;\r
+ }\r
+ MXFLocalTag lt = obj as MXFLocalTag;\r
+ if (lt != null) {\r
+ len = (lt.DataOffset - readerOffset) + lt.Size;\r
+ }\r
+\r
+ if (len > 0) {\r
+ byte[] data = new byte[len];\r
+\r
+ using (MXFReader reader = new MXFReader(this.Filename)) {\r
+ reader.Seek(readerOffset);\r
+ reader.Read(data, len);\r
+ }\r
+ result = System.Text.Encoding.UTF8.GetString(data);\r
+ }\r
+\r
+ if (result != null) {\r
+ int startIndex = result.IndexOf("<?xml");\r
+ int endIndex = result.LastIndexOf(">");\r
+ if (startIndex > -1)\r
+ result = result.Substring(startIndex, endIndex - startIndex + 1);\r
+ }\r
+ return result;\r
+ }\r
+\r
+ /// <summary>\r
+ /// Partially Parse an MXF file, retrieve embedded metadata\r
+ /// </summary>\r
+ public string GetMetadata() {\r
+ string result = null;\r
+ MXFKLVFactory klvFactory = new MXFKLVFactory();\r
+\r
+ MXFPartition currentPartition = null;\r
+ Dictionary<UInt16, MXFEntryPrimer> allPrimerKeys = null;\r
+ int[] counters = new int[Enum.GetNames(typeof(KeyType)).Length];\r
+ PartialSeekMode seekMode = PartialSeekMode.Unknown;\r
+ using (m_reader = new MXFReader(this.Filename)) {\r
+ this.Filesize = m_reader.Size;\r
+ MXFObject partitions = new MXFNamedObject("Partitions", 0);\r
+ this.AddChild(partitions);\r
+\r
+ // Start with trying to find the RIP\r
+ bool ripFound = ReadRIP(klvFactory);\r
+ if (ripFound)\r
+ seekMode = PartialSeekMode.UsingRIP;\r
+ m_reader.Seek(0); // Start at the beginning\r
+\r
+ // Start by reading the first partition\r
+ int partitionNumber = 0; // For easy partition identification\r
+ while (!m_reader.EOF && seekMode != PartialSeekMode.Backwards) // Eof and NOT searching backwards\r
+ {\r
+ MXFKLV klv = klvFactory.CreateObject(m_reader, currentPartition);\r
+\r
+ //Debug.WriteLine(klv.Parent.Type + " " + klv.Type);\r
+\r
+ // Update overall counters\r
+ //if (klv.Key.Type == KeyType.None)\r
+ // counters[(int)klv.Key.Type]++;\r
+\r
+ if (klv.Key.Type == KeyType.Partition && seekMode == PartialSeekMode.Backwards) {\r
+ if (this.Partitions.Exists(a => a.Offset == klv.Offset)) {\r
+ // A new partition has been found that we already found, quit the main loop\r
+ break;\r
+ }\r
+ }\r
+\r
+\r
+ // Process the new KLV\r
+\r
+ if (!ProcessKLVObjectOrig(klv, partitions, ref currentPartition, ref partitionNumber, ref allPrimerKeys))\r
+ break;\r
+ Debug.WriteLine("{0}/{1} ", klv.Parent, klv);\r
+\r
+ if ("XML Document Text - An XML document as text. Data type is specified by the value.".Equals(klv.Key.Name)) {\r
+ result = ReadData(klv);\r
+ break;\r
+ }\r
+\r
+ // If we found the second partition \r
+ long nextSeekPosition = klv.DataOffset + klv.Length;\r
+ if (partitionNumber >= 2) // Header fully read, now busy with the second partition\r
+ {\r
+ switch (seekMode) {\r
+ case PartialSeekMode.UsingRIP: // And we already found the RIP\r
+ if (currentPartition.FirstSystemItem != null) // And we found the first system item\r
+ {\r
+ MXFEntryRIP ripEntry = this.RIP.GetPartition(partitionNumber);\r
+ if (ripEntry != null) {\r
+ // Mark the current partition as not-completely read\r
+ currentPartition.IsLoaded = false;\r
+\r
+ // Start at the next partition\r
+ nextSeekPosition = (long)ripEntry.PartitionOffset;\r
+ }\r
+ }\r
+ break;\r
+\r
+ case PartialSeekMode.Backwards: // NO RIP, searching backwards\r
+ // Backwards, jump to the PREVIOUS partition\r
+ if (currentPartition.FirstSystemItem != null) // And we found the first system item\r
+ {\r
+ // Jump to the previous partition\r
+ if (currentPartition.PreviousPartition != 0) {\r
+ // And we haven't found this partition yet\r
+ if (!this.Partitions.Exists(a => a.ThisPartition == currentPartition.PreviousPartition))\r
+ nextSeekPosition = (long)currentPartition.PreviousPartition; // Jump to previous\r
+ }\r
+ }\r
+ break;\r
+\r
+ case PartialSeekMode.Unknown: // No RIP....\r
+ // Hmmm, RIP is not found, check if we have a footer partition somewhere\r
+ MXFPartition part = this.Partitions.Where(a => a.FooterPartition != 0).FirstOrDefault();\r
+ if (part != null) {\r
+ // If we are already at the footer, don't bother to seek\r
+ if (currentPartition.Offset != (long)part.FooterPartition) {\r
+ nextSeekPosition = (long)part.FooterPartition; // Start at the footer\r
+ seekMode = PartialSeekMode.Backwards;\r
+ }\r
+ }\r
+ break;\r
+ }\r
+ }\r
+\r
+ // Next KLV please\r
+ m_reader.Seek(nextSeekPosition);\r
+\r
+ }\r
+ }\r
+ //Debug.WriteLine(String.Format("Finished parsing file '{0}'", this.Filename));\r
+ return result;\r
}\r
\r
+\r
/// <summary>\r
/// Fully Parse an MXF file \r
/// </summary>\r
// You can specify all the values or you can default the Build and Revision Numbers \r
// by using the '*' as shown below:\r
// [assembly: AssemblyVersion("1.0.*")]\r
-[assembly: AssemblyVersion("2.2.0.6")]\r
-[assembly: AssemblyFileVersion("2.2.0.6")]\r
+[assembly: AssemblyVersion("2.2.0.7")]\r
+[assembly: AssemblyFileVersion("2.2.0.7")]\r
this.btnOk = new System.Windows.Forms.Button();\r
this.btnCancel = new System.Windows.Forms.Button();\r
this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();\r
+ this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel();\r
+ this.btnImportOctopus = new System.Windows.Forms.Button();\r
this.cbFolders = new System.Windows.Forms.ComboBox();\r
this.dtScheduled = new System.Windows.Forms.DateTimePicker();\r
- this.btnImportOctopus = new System.Windows.Forms.Button();\r
- this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel();\r
+ this.btnMxfMetadata = new System.Windows.Forms.Button();\r
this.groupBox1.SuspendLayout();\r
this.tableLayoutPanel1.SuspendLayout();\r
this.tableLayoutPanel2.SuspendLayout();\r
this.txtMediaDescription.Multiline = true;\r
this.txtMediaDescription.Name = "txtMediaDescription";\r
this.txtMediaDescription.ScrollBars = System.Windows.Forms.ScrollBars.Both;\r
- this.txtMediaDescription.Size = new System.Drawing.Size(749, 136);\r
+ this.txtMediaDescription.Size = new System.Drawing.Size(749, 186);\r
this.txtMediaDescription.TabIndex = 4;\r
// \r
// label_stuffTitle\r
// \r
// groupBox1\r
// \r
+ this.groupBox1.Controls.Add(this.btnMxfMetadata);\r
this.groupBox1.Controls.Add(this.btnOk);\r
this.groupBox1.Controls.Add(this.btnCancel);\r
this.groupBox1.Dock = System.Windows.Forms.DockStyle.Bottom;\r
- this.groupBox1.Location = new System.Drawing.Point(0, 497);\r
+ this.groupBox1.Location = new System.Drawing.Point(0, 547);\r
this.groupBox1.Margin = new System.Windows.Forms.Padding(4);\r
this.groupBox1.Name = "groupBox1";\r
this.groupBox1.Padding = new System.Windows.Forms.Padding(4);\r
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());\r
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());\r
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());\r
- this.tableLayoutPanel1.Size = new System.Drawing.Size(771, 497);\r
+ this.tableLayoutPanel1.Size = new System.Drawing.Size(771, 547);\r
this.tableLayoutPanel1.TabIndex = 3;\r
// \r
+ // tableLayoutPanel2\r
+ // \r
+ this.tableLayoutPanel2.AutoSize = true;\r
+ this.tableLayoutPanel2.ColumnCount = 3;\r
+ this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());\r
+ this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F));\r
+ this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());\r
+ this.tableLayoutPanel2.Controls.Add(this.btnImportOctopus, 2, 0);\r
+ this.tableLayoutPanel2.Controls.Add(this.cbFolders, 1, 0);\r
+ this.tableLayoutPanel2.Controls.Add(this.dtScheduled, 0, 0);\r
+ this.tableLayoutPanel2.Dock = System.Windows.Forms.DockStyle.Fill;\r
+ this.tableLayoutPanel2.Location = new System.Drawing.Point(10, 308);\r
+ this.tableLayoutPanel2.Name = "tableLayoutPanel2";\r
+ this.tableLayoutPanel2.RowCount = 1;\r
+ this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));\r
+ this.tableLayoutPanel2.Size = new System.Drawing.Size(751, 36);\r
+ this.tableLayoutPanel2.TabIndex = 10;\r
+ // \r
+ // btnImportOctopus\r
+ // \r
+ this.btnImportOctopus.Anchor = System.Windows.Forms.AnchorStyles.None;\r
+ this.btnImportOctopus.Location = new System.Drawing.Point(647, 4);\r
+ this.btnImportOctopus.Margin = new System.Windows.Forms.Padding(4);\r
+ this.btnImportOctopus.Name = "btnImportOctopus";\r
+ this.btnImportOctopus.Size = new System.Drawing.Size(100, 28);\r
+ this.btnImportOctopus.TabIndex = 9;\r
+ this.btnImportOctopus.Text = "Import";\r
+ this.btnImportOctopus.UseVisualStyleBackColor = true;\r
+ this.btnImportOctopus.Click += new System.EventHandler(this.OnImportOctopusData);\r
+ // \r
// cbFolders\r
// \r
this.cbFolders.Dock = System.Windows.Forms.DockStyle.Fill;\r
this.dtScheduled.TabIndex = 7;\r
this.dtScheduled.ValueChanged += new System.EventHandler(this.OnDateChanged);\r
// \r
- // btnImportOctopus\r
- // \r
- this.btnImportOctopus.Anchor = System.Windows.Forms.AnchorStyles.None;\r
- this.btnImportOctopus.Location = new System.Drawing.Point(647, 4);\r
- this.btnImportOctopus.Margin = new System.Windows.Forms.Padding(4);\r
- this.btnImportOctopus.Name = "btnImportOctopus";\r
- this.btnImportOctopus.Size = new System.Drawing.Size(100, 28);\r
- this.btnImportOctopus.TabIndex = 9;\r
- this.btnImportOctopus.Text = "Import";\r
- this.btnImportOctopus.UseVisualStyleBackColor = true;\r
- this.btnImportOctopus.Click += new System.EventHandler(this.OnImportOctopusData);\r
- // \r
- // tableLayoutPanel2\r
+ // btnMxfMetadata\r
// \r
- this.tableLayoutPanel2.AutoSize = true;\r
- this.tableLayoutPanel2.ColumnCount = 3;\r
- this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());\r
- this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F));\r
- this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());\r
- this.tableLayoutPanel2.Controls.Add(this.btnImportOctopus, 2, 0);\r
- this.tableLayoutPanel2.Controls.Add(this.cbFolders, 1, 0);\r
- this.tableLayoutPanel2.Controls.Add(this.dtScheduled, 0, 0);\r
- this.tableLayoutPanel2.Dock = System.Windows.Forms.DockStyle.Fill;\r
- this.tableLayoutPanel2.Location = new System.Drawing.Point(10, 308);\r
- this.tableLayoutPanel2.Name = "tableLayoutPanel2";\r
- this.tableLayoutPanel2.RowCount = 1;\r
- this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));\r
- this.tableLayoutPanel2.Size = new System.Drawing.Size(751, 36);\r
- this.tableLayoutPanel2.TabIndex = 10;\r
+ this.btnMxfMetadata.Anchor = System.Windows.Forms.AnchorStyles.Left;\r
+ this.btnMxfMetadata.Location = new System.Drawing.Point(8, 15);\r
+ this.btnMxfMetadata.Margin = new System.Windows.Forms.Padding(4);\r
+ this.btnMxfMetadata.Name = "btnMxfMetadata";\r
+ this.btnMxfMetadata.Size = new System.Drawing.Size(126, 28);\r
+ this.btnMxfMetadata.TabIndex = 7;\r
+ this.btnMxfMetadata.Text = "MXF Metadata";\r
+ this.btnMxfMetadata.UseVisualStyleBackColor = true;\r
+ this.btnMxfMetadata.Click += new System.EventHandler(this.OnImportMxfMetadataClick);\r
// \r
// ArchiveMetadataForm\r
// \r
this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F);\r
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;\r
this.CancelButton = this.btnCancel;\r
- this.ClientSize = new System.Drawing.Size(771, 548);\r
+ this.ClientSize = new System.Drawing.Size(771, 598);\r
this.Controls.Add(this.tableLayoutPanel1);\r
this.Controls.Add(this.groupBox1);\r
this.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));\r
private System.Windows.Forms.DateTimePicker dtScheduled;\r
private System.Windows.Forms.Button btnImportOctopus;\r
private System.Windows.Forms.TableLayoutPanel tableLayoutPanel2;\r
+ private System.Windows.Forms.Button btnMxfMetadata;\r
}\r
}
\ No newline at end of file
using System.Linq;\r
using System;\r
using MaestroShared.Commons;\r
+using Maestro.Metadata;\r
+using Myriadbits.MXF;\r
+using System.Xml.Linq;\r
+using System.Diagnostics;\r
\r
namespace Maestro {\r
public partial class ArchiveMetadataForm : Form {\r
\r
private ArchiveMetadata model;\r
+ private readonly SourceInfo selectedSource;\r
private OctopusAPI client;\r
\r
- public ArchiveMetadataForm(ref ArchiveMetadata model, OctopusMetadata metadata, IMessageBus errorMessageBus) : this() {\r
+ public ArchiveMetadataForm(ref ArchiveMetadata model, OctopusMetadata metadata, IMessageBus errorMessageBus, SourceInfo selectedSource) : this() {\r
this.model = model;\r
+ this.selectedSource = selectedSource;\r
txtItemID.Text = model.itemHouseId;\r
txtItemTitle.Text = model.itemTitle;\r
txtItemDescription.Text = model.itemDescription;\r
client = new OctopusAPI(metadata.Server?.Address?.OriginalString, metadata.Server?.UserName, metadata.Server?.Password, metadata.Server?.Timeout ?? 0, errorMessageBus);\r
RefreshFolders();\r
}\r
+\r
+ btnMxfMetadata.Enabled = selectedSource?.FileInfo != null;\r
}\r
\r
private void RefreshFolders() {\r
else\r
txtMediaDescription.Text = text;\r
}\r
+\r
+ private void OnImportMxfMetadataClick(object sender, EventArgs e) {\r
+ try {\r
+ MXFFile mxf = new MXFFile(selectedSource.FileInfo.FullName);\r
+ string xml = mxf.GetMetadata();\r
+ if (xml == null) {\r
+ MessageBox.Show("Nem található metaadat a fájlban.");\r
+ return;\r
+ }\r
+\r
+ XElement root = XElement.Parse(xml);\r
+ string ns = root.GetDefaultNamespace()?.NamespaceName;\r
+ if (ns != null)\r
+ ns = "{" + ns + "}";\r
+\r
+ XElement xCreator = root.Elements(ns + "Creator").FirstOrDefault();\r
+ if (xCreator != null)\r
+ txtItemTitle.Text = xCreator.Attribute("name").Value;\r
+ XElement xTitle = root.Elements(ns + "Title").FirstOrDefault();\r
+ if (xTitle != null)\r
+ txtMediaTitle.Text = xTitle.Attribute("usAscii").Value;\r
+ XElement xDescription = root.Elements(ns + "Description").FirstOrDefault();\r
+ if (xDescription != null)\r
+ txtMediaDescription.Text = xDescription.Value;\r
+\r
+ } catch (Exception ex) {\r
+ MessageBox.Show("Hiba! A rendszer üzenete: " + ex.Message);\r
+ }\r
+\r
+\r
+ }\r
}\r
}\r
--- /dev/null
+{\r
+ "title": "Editor - HÍRTV",\r
+ "active": true,\r
+ "startInTray": false,\r
+ "enableCustomMetadataId": true,\r
+ "player": {\r
+ "enabled": true,\r
+ "autoStart": false,\r
+ "segmentEditor": true\r
+ },\r
+ "source": {\r
+ "$type": "UNCSource",\r
+ "filter": "avi,wav,mxf,mts",\r
+ "local": {\r
+ "address": "file://d:/!META_MXF",\r
+ "timeout": 1000\r
+ },\r
+ "remote": {\r
+ "address": "ftp://10.11.1.100/Promise/",\r
+ "userName": "editor1",\r
+ "password": "mBsAKn0RRr+lErAWAu+oMD/3CRxlBLNvm3UB84SKl5KBVYD5+wIANFL0eszfbAUtzYKqdN/dEB/6ItBNz9D6C4/hppcYrg0+73+xFW9KYEwd2KfgHaH5uslbA/8IyI/U",\r
+ "timeout": 1000\r
+ }\r
+ },\r
+ "metadatas": [\r
+ {\r
+ "$type": "OctopusMetadata",\r
+ "server": {\r
+ "address": "http://10.10.1.29:89/services/rest/octopus/",\r
+ "timeout": 1000\r
+ }\r
+ },\r
+ {\r
+ "$type": "TrafficMetadata",\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
+ }\r
+ },\r
+ {\r
+ "$type": "MediaCubeMetadata",\r
+ "server": {\r
+ "address": "http://10.10.1.29:88/services/rest/jobengine/",\r
+ "timeout": 1000\r
+ }\r
+ }\r
+ ],\r
+ "targets": [\r
+ {\r
+ "label": "Adáskész",\r
+ "processor": "FXPTargetProcessor",\r
+ "outputFormat": "%ID%",\r
+ "reference": [ "Mentés" ],\r
+ "saveSegments": true,\r
+ "subFolderFormat": "%SOURCEFOLDERNAME%",\r
+ "tag": "Adáskész",\r
+ "remote": {\r
+ "address": "ftp://10.11.1.100/Promise/PROGRAM/TEST",\r
+ "userName": "editor1",\r
+ "password": "mBsAKn0RRr+lErAWAu+oMD/3CRxlBLNvm3UB84SKl5KBVYD5+wIANFL0eszfbAUtzYKqdN/dEB/6ItBNz9D6C4/hppcYrg0+73+xFW9KYEwd2KfgHaH5uslbA/8IyI/U",\r
+ "timeout": 1000\r
+ }\r
+ },\r
+ {\r
+ "label": "Archiválás",\r
+ "processor": "FXPTargetProcessor",\r
+ "outputFormat": "%ID%",\r
+ "saveArchiveMetadata": true,\r
+ "tag": "Archiválás",\r
+ "remote": {\r
+ "address": "ftp://10.11.1.100/Promise/ARCHIVE/TEST",\r
+ "userName": "editor1",\r
+ "password": "mBsAKn0RRr+lErAWAu+oMD/3CRxlBLNvm3UB84SKl5KBVYD5+wIANFL0eszfbAUtzYKqdN/dEB/6ItBNz9D6C4/hppcYrg0+73+xFW9KYEwd2KfgHaH5uslbA/8IyI/U",\r
+ "timeout": 1000\r
+ }\r
+ },\r
+ {\r
+ "label": "Mentés",\r
+ "readOnly": true,\r
+ "processor": "UNCTargetProcessor",\r
+ "outputFormat": "%SOURCENAME%",\r
+ "tag": "Mentés",\r
+ "subFolderFormat": "Transfered",\r
+ "moveToFolder": true\r
+ }\r
+\r
+ ]\r
+}\r
{\r
"title": "Editor",\r
- "active": true,\r
+ "active": false,\r
"startInTray": false,\r
"enableCustomMetadataId": true,\r
"player": {\r
"$type": "UNCSource",\r
"filter": "avi,wav,mxf,mts",\r
"local": {\r
- "address": "file://c:/_video/",\r
+ "address": "file://d:/!META_MXF",\r
"timeout": 1000\r
},\r
"remote": {\r
<None Include="Configuration\dani-teszt-vezerlo.json">\r
<CopyToOutputDirectory>Always</CopyToOutputDirectory>\r
</None>\r
- <None Include="Configuration\editor.json">\r
+ <None Include="Configuration\editor-mv.json">\r
+ <CopyToOutputDirectory>Always</CopyToOutputDirectory>\r
+ </None>\r
+ <None Include="Configuration\editor-hirtv.json">\r
<CopyToOutputDirectory>Always</CopyToOutputDirectory>\r
</None>\r
<None Include="Configuration\global.json">\r
}\r
\r
OctopusMetadata metadata = MetadataProvider.Get<OctopusMetadata>(Configuration.Metadatas);\r
- ArchiveMetadataForm form = new ArchiveMetadataForm(ref archiveMetadata, metadata, errorMessageBus);\r
+ ArchiveMetadataForm form = new ArchiveMetadataForm(ref archiveMetadata, metadata, errorMessageBus, SelectedSource);\r
form.BackColor = partialColor;\r
DialogResult result = form.ShowDialog();\r
\r
// You can specify all the values or you can default the Build and Revision Numbers\r
// by using the '*' as shown below:\r
// [assembly: AssemblyVersion("1.0.*")]\r
-[assembly: AssemblyVersion("2.1.0.4")]\r
-[assembly: AssemblyFileVersion("2.1.0.4")]\r
+[assembly: AssemblyVersion("2.1.0.5")]\r
+[assembly: AssemblyFileVersion("2.1.0.5")]\r
registerTask(() -> onJobCreated(job));\r
return;\r
}\r
- if (jobEvent.getSignalType().equals(SignalType.DELETE)) {\r
- registerTask(() -> onJobDeleted(job));\r
- return;\r
- }\r
+ // if (jobEvent.getSignalType().equals(SignalType.DELETE)) {\r
+ // registerTask(() -> onJobDeleted(job));\r
+ // return;\r
+ // }\r
if (jobEvent.getSignalType().equals(SignalType.UPDATE)) {\r
registerTask(() -> onJobUpdated(job));\r
return;\r