Merge lp:~dangarner/xibo/client-170alpha into lp:xibo/1.7

Proposed by Dan Garner
Status: Merged
Merged at revision: 338
Proposed branch: lp:~dangarner/xibo/client-170alpha
Merge into: lp:xibo/1.7
Diff against target: 31227 lines (+19569/-9973) (has conflicts)
105 files modified
client/dotNET/About.Designer.cs (+0/-129)
client/dotNET/About.cs (+0/-63)
client/dotNET/About.resx (+0/-1060)
client/dotNET/BlackList.cs (+0/-210)
client/dotNET/CacheManager.cs (+0/-387)
client/dotNET/Control/Region.cs (+653/-0)
client/dotNET/Control/XiboCefWebBrowser.cs (+115/-0)
client/dotNET/DataSetView.cs (+0/-235)
client/dotNET/Flash.cs (+0/-141)
client/dotNET/Forms/About.Designer.cs (+129/-0)
client/dotNET/Forms/About.cs (+63/-0)
client/dotNET/Forms/About.resx (+1060/-0)
client/dotNET/Forms/OptionForm.Designer.cs (+469/-0)
client/dotNET/Forms/OptionForm.cs (+286/-0)
client/dotNET/Forms/OptionForm.resx (+739/-0)
client/dotNET/HardwareKey.cs (+0/-175)
client/dotNET/Hashes.cs (+0/-124)
client/dotNET/Image.cs (+0/-88)
client/dotNET/KeyStore.cs (+0/-178)
client/dotNET/Log/ClientInfo.cs (+2/-2)
client/dotNET/Log/ClientInfoTraceListener.cs (+6/-6)
client/dotNET/Log/LogMessage.cs (+114/-0)
client/dotNET/Log/StatLog.cs (+333/-0)
client/dotNET/Log/XiboTraceListener.cs (+275/-0)
client/dotNET/LogMessage.cs (+0/-114)
client/dotNET/Logic/ApplicationSettings.cs (+177/-0)
client/dotNET/Logic/BlackList.cs (+210/-0)
client/dotNET/Logic/CacheManager.cs (+387/-0)
client/dotNET/Logic/HardwareKey.cs (+175/-0)
client/dotNET/Logic/Hashes.cs (+124/-0)
client/dotNET/Logic/KeyStore.cs (+178/-0)
client/dotNET/Logic/MediaOption.cs (+101/-0)
client/dotNET/Logic/RegionOptions.cs (+80/-0)
client/dotNET/Logic/RequiredFiles.cs (+448/-0)
client/dotNET/Logic/Schedule.cs (+305/-0)
client/dotNET/Logic/ScheduleManager.cs (+529/-0)
client/dotNET/Logic/ScreenShot.cs (+46/-0)
client/dotNET/MainForm.Designer.cs (+1/-1)
client/dotNET/MainForm.cs (+148/-24)
client/dotNET/Media.cs (+0/-239)
client/dotNET/Media/CefWebMedia.cs (+261/-0)
client/dotNET/Media/Flash.cs (+141/-0)
client/dotNET/Media/IeWebMedia.cs (+253/-0)
client/dotNET/Media/Image.cs (+94/-0)
client/dotNET/Media/Media.cs (+251/-0)
client/dotNET/Media/PowerPoint.cs (+123/-0)
client/dotNET/Media/ShellCommand.cs (+97/-0)
client/dotNET/Media/TemporaryFile.cs (+71/-0)
client/dotNET/Media/TemporaryHtml.cs (+108/-0)
client/dotNET/Media/Video.cs (+156/-0)
client/dotNET/Media/VideoDS.cs (+139/-0)
client/dotNET/Media/VideoPlayer.Designer.cs (+63/-0)
client/dotNET/Media/VideoPlayer.cs (+109/-0)
client/dotNET/Media/VideoPlayer.resx (+131/-0)
client/dotNET/MediaOption.cs (+0/-101)
client/dotNET/OptionForm.Designer.cs (+0/-1076)
client/dotNET/OptionForm.cs (+0/-334)
client/dotNET/OptionForm.resx (+0/-739)
client/dotNET/Program.cs (+113/-39)
client/dotNET/Properties/AssemblyInfo.cs (+4/-4)
client/dotNET/Properties/Resources.Designer.cs (+1/-1)
client/dotNET/Properties/Settings.Designer.cs (+3/-0)
client/dotNET/Properties/Settings.settings (+5/-1)
client/dotNET/Region.cs (+0/-645)
client/dotNET/RegionOptions.cs (+0/-79)
client/dotNET/Rss.cs (+0/-672)
client/dotNET/Schedule.cs (+0/-290)
client/dotNET/ScheduleManager.cs (+0/-512)
client/dotNET/Settings.cs (+0/-47)
client/dotNET/ShellCommand.cs (+0/-97)
client/dotNET/StatLog.cs (+0/-332)
client/dotNET/TemporaryFile.cs (+0/-71)
client/dotNET/TemporaryHtml.cs (+0/-108)
client/dotNET/Video.cs (+0/-156)
client/dotNET/VideoDS.cs (+0/-139)
client/dotNET/VideoPlayer.Designer.cs (+0/-63)
client/dotNET/VideoPlayer.cs (+0/-109)
client/dotNET/VideoPlayer.resx (+0/-131)
client/dotNET/Web References/xmds/Reference.cs (+174/-99)
client/dotNET/Web References/xmds/Reference.map (+1/-1)
client/dotNET/Web References/xmds/xmds.wsdl (+54/-27)
client/dotNET/WindowAnimator.cs (+0/-107)
client/dotNET/XiboClient.csproj (+76/-77)
client/dotNET/XiboTraceListener.cs (+0/-308)
client/dotNET/XmdsAgents/FileAgent.cs (+45/-13)
client/dotNET/XmdsAgents/LibraryAgent.cs (+3/-3)
client/dotNET/XmdsAgents/RegisterAgent.cs (+171/-0)
client/dotNET/XmdsAgents/RequiredFilesAgent.cs (+6/-6)
client/dotNET/XmdsAgents/ScheduleAgent.cs (+4/-4)
client/dotNET/app.config (+5/-0)
client/dotNET/bin/Release/DEFAULT/0.xml (+0/-33)
client/dotNET/bin/Release/XiboClient.exe.config (+0/-145)
client/dotNET/bin/Release/XiboClient.vshost.exe.config (+0/-145)
client/dotNET/bin/x86/Release/cef.log (+9429/-0)
client/dotNET/default.config.xml (+51/-0)
default.pot (+8/-0)
server/config/config.class.php (+12/-2)
server/install.php (+12/-0)
server/install/master/structure.sql (+10/-0)
server/lib/app/pdoconnect.class.php (+11/-1)
server/manual/content/admin/release_notes_1.6.2.php (+162/-76)
server/modules/preview/HtmlTemplateForGetResource.html (+4/-0)
server/modules/preview/html-preview.js (+12/-4)
server/modules/preview/xibo-text-render.js (+31/-0)
server/upgrade.php (+12/-0)
Text conflict in client/dotNET/MainForm.cs
Text conflict in client/dotNET/Properties/Settings.Designer.cs
Text conflict in client/dotNET/Properties/Settings.settings
Contents conflict in client/dotNET/RequiredFiles.cs
Contents conflict in client/dotNET/Text.cs
Contents conflict in client/dotNET/WebContent.cs
Conflict adding file client/dotNET/app.config.  Moved existing file to client/dotNET/app.config.moved.
Contents conflict in default.mo
Text conflict in default.pot
Text conflict in server/config/config.class.php
Text conflict in server/install.php
Text conflict in server/manual/content/admin/release_notes_1.6.2.php
Text conflict in server/modules/preview/HtmlTemplateForGetResource.html
Text conflict in server/modules/preview/html-preview.js
Text conflict in server/modules/preview/xibo-text-render.js
Text conflict in server/upgrade.php
To merge this branch: bzr merge lp:~dangarner/xibo/client-170alpha
Reviewer Review Type Date Requested Status
Xibo Maintainters Pending
Review via email: mp+235183@code.launchpad.net
To post a comment you must log in.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== added directory 'client/cefglue'
2=== added file 'client/cefglue/Xilium.CefGlue.WindowsForms.dll'
3Binary files client/cefglue/Xilium.CefGlue.WindowsForms.dll 1970-01-01 00:00:00 +0000 and client/cefglue/Xilium.CefGlue.WindowsForms.dll 2014-09-18 17:08:39 +0000 differ
4=== added file 'client/cefglue/Xilium.CefGlue.dll'
5Binary files client/cefglue/Xilium.CefGlue.dll 1970-01-01 00:00:00 +0000 and client/cefglue/Xilium.CefGlue.dll 2014-09-18 17:08:39 +0000 differ
6=== removed file 'client/dotNET/About.Designer.cs'
7--- client/dotNET/About.Designer.cs 2013-05-01 19:24:35 +0000
8+++ client/dotNET/About.Designer.cs 1970-01-01 00:00:00 +0000
9@@ -1,129 +0,0 @@
10-namespace XiboClient
11-{
12- partial class About
13- {
14- /// <summary>
15- /// Required designer variable.
16- /// </summary>
17- private System.ComponentModel.IContainer components = null;
18-
19- /// <summary>
20- /// Clean up any resources being used.
21- /// </summary>
22- /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
23- protected override void Dispose(bool disposing)
24- {
25- if (disposing && (components != null))
26- {
27- components.Dispose();
28- }
29- base.Dispose(disposing);
30- }
31-
32- #region Windows Form Designer generated code
33-
34- /// <summary>
35- /// Required method for Designer support - do not modify
36- /// the contents of this method with the code editor.
37- /// </summary>
38- private void InitializeComponent()
39- {
40- System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(About));
41- this.pictureBox1 = new System.Windows.Forms.PictureBox();
42- this.buttonHelp = new System.Windows.Forms.Button();
43- this.richTextBox1 = new System.Windows.Forms.RichTextBox();
44- this.label1 = new System.Windows.Forms.Label();
45- this.label2 = new System.Windows.Forms.Label();
46- this.buttonClose = new System.Windows.Forms.Button();
47- ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
48- this.SuspendLayout();
49- //
50- // pictureBox1
51- //
52- this.pictureBox1.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox1.Image")));
53- this.pictureBox1.Location = new System.Drawing.Point(12, 6);
54- this.pictureBox1.Name = "pictureBox1";
55- this.pictureBox1.Size = new System.Drawing.Size(160, 82);
56- this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize;
57- this.pictureBox1.TabIndex = 0;
58- this.pictureBox1.TabStop = false;
59- //
60- // buttonHelp
61- //
62- this.buttonHelp.Location = new System.Drawing.Point(12, 277);
63- this.buttonHelp.Name = "buttonHelp";
64- this.buttonHelp.Size = new System.Drawing.Size(75, 23);
65- this.buttonHelp.TabIndex = 1;
66- this.buttonHelp.Text = "Online Help";
67- this.buttonHelp.UseVisualStyleBackColor = true;
68- this.buttonHelp.Click += new System.EventHandler(this.buttonHelp_Click);
69- //
70- // richTextBox1
71- //
72- this.richTextBox1.Location = new System.Drawing.Point(12, 97);
73- this.richTextBox1.Name = "richTextBox1";
74- this.richTextBox1.Size = new System.Drawing.Size(397, 174);
75- this.richTextBox1.TabIndex = 2;
76- this.richTextBox1.Text = resources.GetString("richTextBox1.Text");
77- this.richTextBox1.TextChanged += new System.EventHandler(this.richTextBox1_TextChanged);
78- //
79- // label1
80- //
81- this.label1.AutoSize = true;
82- this.label1.Location = new System.Drawing.Point(296, 9);
83- this.label1.Name = "label1";
84- this.label1.Size = new System.Drawing.Size(35, 13);
85- this.label1.TabIndex = 3;
86- this.label1.Text = "label1";
87- //
88- // label2
89- //
90- this.label2.AutoSize = true;
91- this.label2.Location = new System.Drawing.Point(296, 45);
92- this.label2.Name = "label2";
93- this.label2.Size = new System.Drawing.Size(35, 13);
94- this.label2.TabIndex = 4;
95- this.label2.Text = "label2";
96- //
97- // buttonClose
98- //
99- this.buttonClose.Location = new System.Drawing.Point(333, 276);
100- this.buttonClose.Name = "buttonClose";
101- this.buttonClose.Size = new System.Drawing.Size(75, 23);
102- this.buttonClose.TabIndex = 5;
103- this.buttonClose.Text = "Close";
104- this.buttonClose.UseVisualStyleBackColor = true;
105- this.buttonClose.Click += new System.EventHandler(this.buttonClose_Click);
106- //
107- // About
108- //
109- this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
110- this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
111- this.ClientSize = new System.Drawing.Size(421, 312);
112- this.Controls.Add(this.buttonClose);
113- this.Controls.Add(this.label2);
114- this.Controls.Add(this.label1);
115- this.Controls.Add(this.richTextBox1);
116- this.Controls.Add(this.buttonHelp);
117- this.Controls.Add(this.pictureBox1);
118- this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
119- this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
120- this.Name = "About";
121- this.Text = "About";
122- ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
123- this.ResumeLayout(false);
124- this.PerformLayout();
125-
126- }
127-
128- #endregion
129-
130- private System.Windows.Forms.PictureBox pictureBox1;
131- private System.Windows.Forms.Button buttonHelp;
132- private System.Windows.Forms.RichTextBox richTextBox1;
133- private System.Windows.Forms.Label label1;
134- private System.Windows.Forms.Label label2;
135- private System.Windows.Forms.Button buttonClose;
136-
137- }
138-}
139\ No newline at end of file
140
141=== removed file 'client/dotNET/About.cs'
142--- client/dotNET/About.cs 2014-02-09 15:08:13 +0000
143+++ client/dotNET/About.cs 1970-01-01 00:00:00 +0000
144@@ -1,63 +0,0 @@
145-/*
146- * Xibo - Digitial Signage - http://www.xibo.org.uk
147- * Copyright (C) 2006-2014 Daniel Garner and James Packer
148- *
149- * This file is part of Xibo.
150- *
151- * Xibo is free software: you can redistribute it and/or modify
152- * it under the terms of the GNU Affero General Public License as published by
153- * the Free Software Foundation, either version 3 of the License, or
154- * any later version.
155- *
156- * Xibo is distributed in the hope that it will be useful,
157- * but WITHOUT ANY WARRANTY; without even the implied warranty of
158- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
159- * GNU Affero General Public License for more details.
160- *
161- * You should have received a copy of the GNU Affero General Public License
162- * along with Xibo. If not, see <http://www.gnu.org/licenses/>.
163- */
164-using System;
165-using System.Collections.Generic;
166-using System.ComponentModel;
167-using System.Data;
168-using System.Drawing;
169-using System.Text;
170-using System.Windows.Forms;
171-
172-namespace XiboClient
173-{
174- public partial class About : Form
175- {
176- public About()
177- {
178- InitializeComponent();
179-
180- label1.Text = Application.ProductName;
181- label2.Text = Properties.Settings.Default.ClientVersion;
182- }
183-
184- private void buttonHelp_Click(object sender, EventArgs e)
185- {
186- // open URL in separate instance of default browser
187- try
188- {
189- System.Diagnostics.Process.Start("http://xibo.org.uk/manual");
190- }
191- catch
192- {
193- MessageBox.Show("No web browser installed");
194- }
195- }
196-
197- private void buttonClose_Click(object sender, EventArgs e)
198- {
199- this.Close();
200- }
201-
202- private void richTextBox1_TextChanged(object sender, EventArgs e)
203- {
204-
205- }
206- }
207-}
208\ No newline at end of file
209
210=== removed file 'client/dotNET/About.resx'
211--- client/dotNET/About.resx 2014-02-09 15:08:13 +0000
212+++ client/dotNET/About.resx 1970-01-01 00:00:00 +0000
213@@ -1,1060 +0,0 @@
214-<?xml version="1.0" encoding="utf-8"?>
215-<root>
216- <!--
217- Microsoft ResX Schema
218-
219- Version 2.0
220-
221- The primary goals of this format is to allow a simple XML format
222- that is mostly human readable. The generation and parsing of the
223- various data types are done through the TypeConverter classes
224- associated with the data types.
225-
226- Example:
227-
228- ... ado.net/XML headers & schema ...
229- <resheader name="resmimetype">text/microsoft-resx</resheader>
230- <resheader name="version">2.0</resheader>
231- <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
232- <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
233- <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
234- <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
235- <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
236- <value>[base64 mime encoded serialized .NET Framework object]</value>
237- </data>
238- <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
239- <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
240- <comment>This is a comment</comment>
241- </data>
242-
243- There are any number of "resheader" rows that contain simple
244- name/value pairs.
245-
246- Each data row contains a name, and value. The row also contains a
247- type or mimetype. Type corresponds to a .NET class that support
248- text/value conversion through the TypeConverter architecture.
249- Classes that don't support this are serialized and stored with the
250- mimetype set.
251-
252- The mimetype is used for serialized objects, and tells the
253- ResXResourceReader how to depersist the object. This is currently not
254- extensible. For a given mimetype the value must be set accordingly:
255-
256- Note - application/x-microsoft.net.object.binary.base64 is the format
257- that the ResXResourceWriter will generate, however the reader can
258- read any of the formats listed below.
259-
260- mimetype: application/x-microsoft.net.object.binary.base64
261- value : The object must be serialized with
262- : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
263- : and then encoded with base64 encoding.
264-
265- mimetype: application/x-microsoft.net.object.soap.base64
266- value : The object must be serialized with
267- : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
268- : and then encoded with base64 encoding.
269-
270- mimetype: application/x-microsoft.net.object.bytearray.base64
271- value : The object must be serialized into a byte array
272- : using a System.ComponentModel.TypeConverter
273- : and then encoded with base64 encoding.
274- -->
275- <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
276- <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
277- <xsd:element name="root" msdata:IsDataSet="true">
278- <xsd:complexType>
279- <xsd:choice maxOccurs="unbounded">
280- <xsd:element name="metadata">
281- <xsd:complexType>
282- <xsd:sequence>
283- <xsd:element name="value" type="xsd:string" minOccurs="0" />
284- </xsd:sequence>
285- <xsd:attribute name="name" use="required" type="xsd:string" />
286- <xsd:attribute name="type" type="xsd:string" />
287- <xsd:attribute name="mimetype" type="xsd:string" />
288- <xsd:attribute ref="xml:space" />
289- </xsd:complexType>
290- </xsd:element>
291- <xsd:element name="assembly">
292- <xsd:complexType>
293- <xsd:attribute name="alias" type="xsd:string" />
294- <xsd:attribute name="name" type="xsd:string" />
295- </xsd:complexType>
296- </xsd:element>
297- <xsd:element name="data">
298- <xsd:complexType>
299- <xsd:sequence>
300- <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
301- <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
302- </xsd:sequence>
303- <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
304- <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
305- <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
306- <xsd:attribute ref="xml:space" />
307- </xsd:complexType>
308- </xsd:element>
309- <xsd:element name="resheader">
310- <xsd:complexType>
311- <xsd:sequence>
312- <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
313- </xsd:sequence>
314- <xsd:attribute name="name" type="xsd:string" use="required" />
315- </xsd:complexType>
316- </xsd:element>
317- </xsd:choice>
318- </xsd:complexType>
319- </xsd:element>
320- </xsd:schema>
321- <resheader name="resmimetype">
322- <value>text/microsoft-resx</value>
323- </resheader>
324- <resheader name="version">
325- <value>2.0</value>
326- </resheader>
327- <resheader name="reader">
328- <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
329- </resheader>
330- <resheader name="writer">
331- <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
332- </resheader>
333- <assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
334- <data name="pictureBox1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
335- <value>
336- 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
648-</value>
649- </data>
650- <data name="richTextBox1.Text" xml:space="preserve">
651- <value>Xibo - Digitial Signage - http://www.xibo.org.uk
652-Copyright (C) 2006-2014 Daniel Garner and the Xibo Developers
653-
654-Xibo is free software: you can redistribute it and/or modify
655-it under the terms of the GNU Affero General Public License as published by
656-the Free Software Foundation, either version 3 of the License, or
657-any later version.
658-
659-Xibo is distributed in the hope that it will be useful,
660-but WITHOUT ANY WARRANTY; without even the implied warranty of
661-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
662-GNU Affero General Public License for more details.
663-
664-You should have received a copy of the GNU Affero General Public License
665-along with Xibo. If not, see &lt;http://www.gnu.org/licenses/&gt;.</value>
666- </data>
667- <data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
668- <value>
669- AAABAAkAICAQAAEABADoAgAAlgAAABAQEAABAAQAKAEAAH4DAAAwMAAAAQAIAKgOAACmBAAAICAAAAEA
670- CACoCAAAThMAABAQAAABAAgAaAUAAPYbAAAAAAAAAQAgAM8wAABeIQAAMDAAAAEAIACoJQAALVIAACAg
671- AAABACAAqBAAANV3AAAQEAAAAQAgAGgEAAB9iAAAKAAAACAAAABAAAAAAQAEAAAAAAAAAAAAAAAAAAAA
672- AAAAAAAAAAAAAAAAAAAAAIAAAIAAAACAgACAAAAAgACAAICAAACAgIAAwMDAAAAA/wAA/wAAAP//AP8A
673- AAD/AP8A//8AAP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4d3AAAAAAAAAAAAAAAACGxsfmcAAAAA
674- AAAAAAAAAHbOd+bGcAAAAAAAAAAAAAfmcAAAfscAAAAAAAAAAAAI7AAAAAZnAAAAAAAAAAAADGcAAAAI
675- 7HAAAAAAAAAAAHbnAAAAAG5wAAAAAAAAAACMZwAAAADGcAAAAAAAAAAAfmgAAAAAbnAAAAAAAAAAAIxn
676- AAAAAOZwAAAAAAAAAAAG5wAAAAhscAAAAAAAAAAAB8YAAAAIbgAAAAAAAAAAAAfncAAAdscAAAAAAAAA
677- AAAAx+d3d85wAAAAAAAAAAAAAAbsdsfmAAAAAAAAAAAAAAAAdn5ncAAAAAAAAAAAAAAAAAAAAAAAAAAA
678- AAAAAAAAAHhwAACIcAAAAAAAAAAAAACIiAAAiIcAAAAAAAAAAAAI+PgACPj4AAAAAAAAAAAAAI/4AAj4
679- +AAAAAAAAAAAAACIgAAAiIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeHAA
680- AAAAAAB4dwAAAAAACPj4AAAAAAAIiPhwAAAAAAj/iAAAAAAACI/4gAAAAACIj/gAAAAAAAiPj4AAAAAA
681- CP+PAAAAAAAI+P9wAAAAAACIgAAAAAAAAIiIAAAAAAAAAAAAAAAAAAAAAAAAAP//////+D///+AP///A
682- B///h8P//4/j//+P4f//D/H//w/x//8P8f//D/H//4/h//+P4///h8P//8AH///gD///8B/////////H
683- x///w8P//4OD///Dg///x8f////////////8f/w/+D/4H/g/+B/wP/gf+D/4H/x//D//////KAAAABAA
684- AAAgAAAAAQAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAIAAAACAgACAAAAAgACAAICA
685- AACAgIAAwMDAAAAA/wAA/wAAAP//AP8AAAD/AP8A//8AAP///wAAAAAAAAAAAAAAB8dmAAAAAAAGAAdw
686- AAAAAHYAAGAAAAAAdwAAYAAAAAB2AADgAAAAAH4AB2AAAAAAB2duAAAAAAAAeHAAAAAAAAhwCHAAAAAA
687- D4APgAAAAAAAAAAAAAAACAAAAABwAACIgAAACPAAAI+AAAAI8AAACAAAAAgAAP/////4P///+5////Pf
688- ///z3///89////Of///4P////H////mf///5n////////+/3///H5///x+f//+/v//8oAAAAMAAAAGAA
689- AAABAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHNuZgB+dmkAenVtAHd1cgB8enYAenp5AHx8
690- fAC+eRIAv3sUAL58FQC/fRgAvn8dAMF9FQDAfxoAi3FKAIxzTQCafk0AnH9PAIx1UQCLd1cAj3tbAI98
691- XACWfFIAkntVAJd+VQCOfWAAi3xkAIB4awCGe2kAh31rAIF5bACAfXgAv4AdAL6BIgC6gSkAvYMpAL2F
692- KgCugTwAtYM3ALaFNQC7hDEAsYE5ALaFOAC5iToAvYo5AL6LPgDCgBYAxIEWAMaEFwDBgBoAxIIYAMaF
693- GQDBgR0Aw4QeAMWFHQDIhxkAx4kfAMiIGgDIiB0Aw4UjAMKFJADEhyQAxokhAMGHLgDCiCoAx4woAMCI
694- MwDDjTUAwo88AMOSPQDGkj0AxZQ+AJaAWwCuhUEAqYRHAK6GRgClhU8AsodDALKIRgC0iEQAuotBAL6O
695- QgC7jkYAsYtKALuRTQCsi1UAs49UAJ6IZgCNgnAAioV9AI6IfwCTiHcAnY10AKKLZgCljGUAoYxrAKyS
696- aQCokm0AuZpmAL+eZgCyl2wAt5poAK2XcwC2nnYAuaF5AMOTRQDCk0kAx5dIAMGVTwDGnlkAwZxfAMSd
697- XwDBonEAw6d6AMSpfACBgYEAhoSCAIaGhgCJiYkAjo6OAJaPggCSkpIAlpaWAJqamgCdnZ0AppiDAK2d
698- hACimYkAqJyIALikggCxpZEAva6UAL+xmQChoqIApqamAKioqACvr68AsbGxALO0tAC5ubkAvr6+AMKu
699- jgDIsIsAxbOXAMCxmgC/wMAAwMDAAMXFxQDHyMgAycnJAMvMzADNzc0A0NHRANPU1ADW1tYA2NfXANfY
700- 2ADZ2dkA3d3dAOHh4QDl5eUA6enpAHAGAACQCQAAsAoAAM8MAADwDgAA/yASAP8+MQD/XFEA/3pxAP+X
701- kQD/trEA/9TRAP///wAAAAAALwAOAFAAFwBwACEAkAArALAANgDPAEAA8ABJAP8RWgD/MXAA/1GGAP9x
702- nAD/kbIA/7HIAP/R3wD///8AAAAAAC8AIABQADYAcABMAJAAYgCwAHgAzwCOAPAApAD/EbMA/zG+AP9R
703- xwD/cdEA/5HcAP+x5QD/0fAA////AAAAAAAsAC8ASwBQAGkAcACHAJAApQCwAMQAzwDhAPAA8BH/APIx
704- /wD0Uf8A9nH/APeR/wD5sf8A+9H/AP///wAAAAAAGwAvAC0AUAA/AHAAUgCQAGMAsAB2AM8AiADwAJkR
705- /wCmMf8AtFH/AMJx/wDPkf8A3LH/AOvR/wD///8AAAAAAAgALwAOAFAAFQBwABsAkAAhALAAJgDPACwA
706- 8AA+Ef8AWDH/AHFR/wCMcf8AppH/AL+x/wDa0f8A////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
707- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
708- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABaGxMPDxAUHQUAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
709- AAAAAAAAAAAAAAAAAAAAXE8iCQgICAgICykXAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
710- AABYIwkICQkLCwsJCQkLKgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF8iCQkKQ3GOkI9w
711- IgkJCScfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfg4KDSFlAAAAAAAAAGsNCQkmIAAAAAAA
712- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUQ0NDWEAAAAAAAAAAABSDQ0MFQAAAAAAAAAAAAAAAAAAAAAA
713- AAAAAAAAAAAAAAB/NQ0NLQAAAAAAAAAAAACENQ0NLAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABX
714- DS8yYAAAAAAAAAAAAAAAbQ0vMlkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuDS8keQAAAAAAAAAA
715- AAAAaA0vDUkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABALy8rAAAAAAAAAAAAAAAAgy8vDU0AAAAA
716- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9MzBOAAAAAAAAAAAAAAAAADYwMEwAAAAAAAAAAAAAAAAAAAAA
717- AAAAAAAAAAAAAAA8MzBLAAAAAAAAAAAAAAAAADYzME4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+
718- MzBLAAAAAAAAAAAAAAAAADcwMFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBMTNKAAAAAAAAAAAA
719- AAAAADczM1QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEMzMrWgAAAAAAAAAAAAAAgTMzMFYAAAAA
720- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAABqMTElHwAAAAAAAAAAAAAAYjE0MF4AAAAAAAAAAAAAAAAAAAAA
721- AAAAAAAAAAAAAABjMTQ3GAAAAAAAAAAAAAAAUzQxN4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACR
722- OTQ0LAQAAAAAAAAAAABdPjQ0RQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbDQ0NxkEAAAAAAAA
723- AFssNDQ3ZwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADk4OD8RAQYAAAB1Hi04OzRVAAAAAAAA
724- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHM/NzQ5KBIWGklLQDg4OEYAAAAAAAAAAAAAAAAAAAAAAAAA
725- AAAAAAAAAAAAAAAAAABzPzg4ODo5Pzs4Ojo6RwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
726- AAAAAG5COzg4ODo6OUhpAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgmZvcGRp
727- kQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
728- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB6d3R2AAAAAAAAAAB4d3QAAAAAAAAAAAAAAAAAAAAAAAAA
729- AAAAAAAAAAAAAAAAAIiWmpmHdgAAAAAAAIqZm5d7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
730- AJ2foaCehgAAAAAAip+goKCaeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlKChoqGgmAAAAAAA
731- l6ChoqGfiwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlqChoqGgmAAAAAAAmKChoqGfjQAAAAAA
732- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAk5+goaCfjQAAAAAAlJ+goaCeiQAAAAAAAAAAAAAAAAAAAAAA
733- AAAAAAAAAAAAAAAAAJicn52TAAAAAAAAAJien52TAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
734- AAAAlQAAAAAAAAAAAAAAlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
735- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
736- AAAAAAAAAAAAAAAAAAAAAAAAAAAAdgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAd3UAAAAAAAAAAAAAAAAA
737- AAAAAAAAAIaNk4h0AAAAAAAAAAAAAAAAAAAAAAAAAHyLlJN9BwAAAAAAAAAAAAAAAAAAAAAAlJ+fn5+Z
738- eAAAAAAAAAAAAAAAAAAAAAAAiJ2fn5+flXUAAAAAAAAAAAAAAAAAAACMn5+hoZ+fmHoAAAAAAAAAAAAA
739- AAAAAAAAl5+goKCgn4cAAAAAAAAAAAAAAAAAAACZoKCioaGgnnsAAAAAAAAAAAAAAAAAAAAAnqChoqKg
740- n5YAAAAAAAAAAAAAAAAAAACboKGioqGgn30AAAAAAAAAAAAAAAAAAACTnqChoqKhn5kAAAAAAAAAAAAA
741- AAAAAACan6CioaGfngAAAAAAAAAAAAAAAAAAAAAAnJ+hoqGhn5cAAAAAAAAAAAAAAAAAAACUn5+goZ+f
742- lQAAAAAAAAAAAAAAAAAAAAAAmZ+goKCfn4oAAAAAAAAAAAAAAAAAAAAAmJ6fn56VAAAAAAAAAAAAAAAA
743- AAAAAAAAAJmen5+elQAAAAAAAAAAAAAAAAAAAAAAAJSMjJMAAAAAAAAAAAAAAAAAAAAAAAAAAACTjIyS
744- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//
745- /////wAA////////AAD//+AP//8AAP//gAP//wAA//8AAf//AAD//gAA//8AAP/8D+B//wAA//wf8H//
746- AAD/+D/wf/8AAP/4P/g//wAA//g/+D//AAD/+H/4P/8AAP/4f/w//wAA//h//D//AAD/+H/8P/8AAP/4
747- f/w//wAA//g/+D//AAD/+D/4P/8AAP/4P/g//wAA//gf8H//AAD//A/gf/8AAP/+A4D//wAA//4AAf//
748- AAD//wAD//8AAP//wAf//wAA///wH///AAD///////8AAP//D/H//wAA//4H4P//AAD//gfAf/8AAP/8
749- B8B//wAA//wHwH//AAD//AfAf/8AAP/+D+D//wAA//+/+///AAD///////8AAP///////wAA/+///+f/
750- AAD/g///gf8AAP8B//8A/wAA/gD//wD/AAD+AP//AP8AAP4A//4A/wAA/gH//wD/AAD+Af//AP8AAP8D
751- //+B/wAA/4f//8P/AAD///////8AACgAAAAgAAAAQAAAAAEACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
752- AAAAAAAAf3VlAHx2awC+eRIAvnoUAL98FQC6fBsAvn0ZALt9HAC4fiQAsn0uAKl/OwDBfhQAwH8YAIpz
753- SwCLdFAAjXZVAIl2WACLeFoAjHpcAIR2YACFeGMAhXhkAIV9cgC+gB8Av4EhALmAJAC9giUAtYIuALqE
754- KAC/hSsAuIItALuFLQCvgjYAsIA2AL6MOwC7iTwAvIw8AMOAFgDEgRYAxoQXAMKBGgDEgxkAxoUZAMGC
755- HQDDhB8AwYUhAMSGIQDChyYAxospAMCMMwDEjjEAwY42AMSONQCag10AnYNcAK6HSwC7j0UAtY1KAL6R
756- RQCmiFYArYlRAKGEWAC2kFQAvpdbAIyAbACeh2IAnolnAJSEaQCVhm0AhIB4AI2HfACUincAkol5AJCJ
757- fACekHkAt5hkALGWaAC+n24AqpRxAKyWcwCvmXIArJt+ALCdfgDCml0AhISEAIqKigCNjY0AkpKSAJaW
758- lgCZmZkAnp6eAKWZhQCpmoEAqJ+PAKCgoACqqqoAra2tALKysgC2t7cAurq6ALu8vAC9vb0AwMDAAMbH
759- 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
1027- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAUAAAATAAAAKQAAAEUHBgRoOjAg
1028- lWJNLLtvUSTKbk4dy25NG8tvUCDLa1Epx1REK7QYFA6QAAAAdgAAAF8AAAA9AAAAIgAAAA4AAAADAAAA
1029- AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1030- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAABQAAABEAAAAvCQgF
1031- V1NCJ6CsfjbqvoAh/r56E/++eRD/vnkR/755Ef++eRD/vnkR/758F/+6gi36g2Qx1iwkF6AAAABtAAAA
1032- SQAAACcAAAANAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1033- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAACAAAA
1034- DgAAACUWEgtbfV8xvbl+I/i/exT/vnoT/756E/+/exb/v30Y/799Gf6/fBf/v3sU/756E/++ehP/vnwX
1035- /q17L/I9MR6pBAMCcAAAAEQAAAAcAAAACQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1036- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1037- BAAAAAEAAAAHAAAAGwICAT+LazjFvn4d/L97FP+/exT/v3wV/76FLfetg0K/mnhDmJZ1QoyogkeguYo/
1038- 1L+CIv2/exP/v3sU/797E/+yfi/1PzMfpwAAAGQAAAAyAAAAEwAAAAQAAAAAAAAAAAAAAAAAAAAAAAAA
1039- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1040- AAAAAAAAAAAAAAAAAQAAAAQAAAAPBwYEMXBaN57Afxr/v3wU/798FP+/fxz9mXU9wDUsHkkAAAAXAAAA
1041- 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
1125- DQAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1126- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzQ0NB2/wMDH2NfX
1127- +9zc3P/X2Nj8rq+vwiYmJj0AAAAQAAAABQAAAAEAAAAAAAAABDg4OCbExMTR2dnZ/dzc3P/X2Nj8q6ur
1128- viIiIjYAAAAPAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1129- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAACAAAAAwAAAAQAAAAEAAAA
1130- BAAAAAUvMDAifH19YJGSkoF3d3dhJiYmKgAAAA0AAAAFAAAAAQAAAAAAAAAAAAAAAQAAAAQ8PDwohoaG
1131- a5SUlIx5enpmJiYmKgAAAA0AAAAGAAAABAAAAAUAAAAFAAAABAAAAAIAAAABAAAAAAAAAAAAAAAAAAAA
1132- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAYAAAANAAAA
1133- FAAAABgAAAAXAAAAEQAAAAoAAAAFAAAABAAAAAUAAAAFAAAAAwAAAAIAAAAAAAAAAAAAAAAAAAAAAAAA
1134- AAAAAAAAAAACAAAABAAAAAUAAAAFAAAABQAAAAUAAAAJAAAAEQAAABcAAAAaAAAAFgAAABAAAAAHAAAA
1135- AwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAA
1136- CgAAABgAAAAsAAAAPAAAAEYAAABDAAAANgAAACQAAAARAAAABgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAA
1137- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAABAAAAA4AAAAgAAAANAAAAEMAAABJAAAA
1138- QgAAADIAAAAcAAAADQAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1139- 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
1181- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAOAAAAJAAAADYAAABGAAAA
1182- SQAAAEkAAABEAAAAMwAAACAAAAAMAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1183- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAFQAAADEQDQhkOCwa
1184- kUk1FqpJMxKrSTUXqj0wHJ4KCAZ1AAAAVwAAACoAAAAQAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1185- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAABIUEAlRXUUf
1186- p7Z9JfW+exb/vnkS/756E/++eRL/vnoU/694JfRsTyLJDgsGcwAAAD0AAAAOAAAAAgAAAAAAAAAAAAAA
1187- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAEAAAALAAAA
1188- LHpaJ7m2eRz1vnsU/75/HvuufjPMpHg0tbOBNMu9gSP1vnoT/7p7GfxrTiLEDgsHbQAAACIAAAAHAAAA
1189- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1190- BAYFAyFgSiaPv30W/798FP+bbinPPTAcWAAAAA4AAAAGAwICCS4mGiykdSrMvnwX/Lp7GfthRx+9AAAA
1191- RQAAABUAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1192- AAAAAAEAAAAJHxkOQZ1uJdLAfBT/voEh+zInF2MDAwIZAAAAAgAAAAAAAAAAAAAAAkg3HVOzeyTjv30V
1193- /6t4Ke8IBwViAAAAIwAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1194- AAAAAAAAAAAAAAAAAgAAABJQPB1zun0d88B/GP6GYSfFAAAAKwAAAAgAAAAAAAAAAAAAAAAAAAAACQcE
1195- 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
1270- QYPDrEHDw6xB
1271-</value>
1272- </data>
1273-</root>
1274\ No newline at end of file
1275
1276=== removed file 'client/dotNET/BlackList.cs'
1277--- client/dotNET/BlackList.cs 2013-05-01 19:24:35 +0000
1278+++ client/dotNET/BlackList.cs 1970-01-01 00:00:00 +0000
1279@@ -1,210 +0,0 @@
1280-/*
1281- * Xibo - Digitial Signage - http://www.xibo.org.uk
1282- * Copyright (C) 2006,2007,2008 Daniel Garner and James Packer
1283- *
1284- * This file is part of Xibo.
1285- *
1286- * Xibo is free software: you can redistribute it and/or modify
1287- * it under the terms of the GNU Affero General Public License as published by
1288- * the Free Software Foundation, either version 3 of the License, or
1289- * any later version.
1290- *
1291- * Xibo is distributed in the hope that it will be useful,
1292- * but WITHOUT ANY WARRANTY; without even the implied warranty of
1293- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1294- * GNU Affero General Public License for more details.
1295- *
1296- * You should have received a copy of the GNU Affero General Public License
1297- * along with Xibo. If not, see <http://www.gnu.org/licenses/>.
1298- */
1299-using System;
1300-using System.Collections.Generic;
1301-using System.IO;
1302-using System.Text;
1303-using System.Xml;
1304-using System.Windows.Forms;
1305-using System.Diagnostics;
1306-
1307-namespace XiboClient
1308-{
1309- class BlackList : IDisposable
1310- {
1311- private xmds.xmds xmds1;
1312- private HardwareKey hardwareKey;
1313-
1314- private string blackListFile;
1315-
1316- public BlackList()
1317- {
1318- // Check that the black list file is available
1319- blackListFile = Application.UserAppDataPath + "//" + Properties.Settings.Default.blackListLocation;
1320-
1321- // Get the key for this display
1322- hardwareKey = new HardwareKey();
1323- }
1324-
1325- /// <summary>
1326- /// Adds a media item to the Black list. Adds Locally and to the WebService
1327- /// </summary>
1328- /// <param name="id">The Media ID</param>
1329- /// <param name="type">The BlackListType, either All (to blacklist on all displays) or Single (to blacklist only on this display)</param>
1330- /// <param name="reason">The reason for the blacklist</param>
1331- public void Add(string id, BlackListType type, string reason)
1332- {
1333- // Do some validation
1334- if (reason == "") reason = "No reason provided";
1335-
1336- int mediaId;
1337- if (!int.TryParse(id, out mediaId))
1338- {
1339- System.Diagnostics.Trace.WriteLine(String.Format("Currently can only append Integer media types. Id {0}", id), "BlackList - Add");
1340- }
1341-
1342- // Send to the webservice
1343- xmds1 = new XiboClient.xmds.xmds();
1344- xmds1.BlackListCompleted += new XiboClient.xmds.BlackListCompletedEventHandler(xmds1_BlackListCompleted);
1345-
1346- xmds1.BlackListAsync(Properties.Settings.Default.ServerKey, hardwareKey.Key, mediaId, type.ToString(), reason, Properties.Settings.Default.Version);
1347-
1348- // Add to the local list
1349- AddLocal(id);
1350- }
1351-
1352- private void xmds1_BlackListCompleted(object sender, XiboClient.xmds.BlackListCompletedEventArgs e)
1353- {
1354- if (e.Error != null)
1355- {
1356- System.Diagnostics.Trace.WriteLine("Error sending blacklist", "BlackList - BlackListCompleted");
1357- }
1358- else
1359- {
1360- System.Diagnostics.Trace.WriteLine("Blacklist sending complete", "BlackList - BlackListCompleted");
1361- }
1362-
1363- return;
1364- }
1365-
1366- /// <summary>
1367- /// Adds the Media Items in the XMLNodeList to the Blacklist (will only add these locally)
1368- /// </summary>
1369- /// <param name="items">The XMLNodeList containing the blacklist items. Each node must have an "id".</param>
1370- public void Add(XmlNodeList items)
1371- {
1372- Trace.WriteLine(new LogMessage("Blacklist - Add", "Adding XMLNodeList to Blacklist"), LogType.Info.ToString());
1373-
1374- foreach (XmlNode node in items)
1375- {
1376- XmlAttributeCollection attributes = node.Attributes;
1377-
1378- if (attributes["id"].Value != null)
1379- {
1380- AddLocal(attributes["id"].Value);
1381- }
1382- }
1383- }
1384-
1385- /// <summary>
1386- /// Adds the Media ID to the local blacklist
1387- /// </summary>
1388- /// <param name="id">The ID to be blacklisted.</param>
1389- private void AddLocal(string id)
1390- {
1391- try
1392- {
1393- StreamWriter tw = new StreamWriter(File.Open(blackListFile, FileMode.Append, FileAccess.Write, FileShare.Read), Encoding.UTF8);
1394-
1395- tw.Write(String.Format("[{0}],", id));
1396- tw.Close();
1397- }
1398- catch (Exception ex)
1399- {
1400- System.Diagnostics.Debug.WriteLine(ex.Message, "Blacklist - Add");
1401- System.Diagnostics.Trace.WriteLine(String.Format("Cant add {0} to the blacklist", id));
1402- }
1403-
1404- return;
1405- }
1406-
1407- /// <summary>
1408- /// Truncates the local Blacklist
1409- /// </summary>
1410- public void Truncate()
1411- {
1412- try
1413- {
1414- File.Delete(Application.UserAppDataPath + "//" + Properties.Settings.Default.blackListLocation);
1415- }
1416- catch (Exception ex)
1417- {
1418- System.Diagnostics.Trace.WriteLine("Cannot truncate the BlackList", "Blacklist - Truncate");
1419- System.Diagnostics.Trace.WriteLine(ex.Message);
1420- }
1421- }
1422-
1423- /// <summary>
1424- /// Checks whether or not a media item is in the blacklist
1425- /// </summary>
1426- /// <param name="fileId"></param>
1427- /// <returns></returns>
1428- public Boolean BlackListed(string fileId)
1429- {
1430- StreamReader sr = null;
1431-
1432- // Store as an XML Fragment
1433- if (!File.Exists(blackListFile))
1434- {
1435- return false;
1436- }
1437-
1438- try
1439- {
1440- // Use an XML Text Reader to grab the shiv from the black list location.
1441- sr = new StreamReader(File.Open(blackListFile, FileMode.Open, FileAccess.Read, FileShare.ReadWrite));
1442-
1443- string listed = sr.ReadToEnd();
1444-
1445- return listed.Contains(String.Format("[{0}]", fileId));
1446- }
1447- catch (Exception ex)
1448- {
1449- System.Diagnostics.Debug.WriteLine(ex.Message, "BlackList - BlackListed");
1450- }
1451- finally
1452- {
1453- // Make sure the xr is closed
1454- if (sr != null) sr.Close();
1455- }
1456-
1457- return false;
1458- }
1459-
1460- #region IDisposableMethods
1461-
1462- private Boolean disposed;
1463-
1464- protected virtual void Dispose(bool disposing)
1465- {
1466- if (!disposed)
1467- {
1468- if (disposing)
1469- {
1470- // Dispose managed resources.
1471- }
1472-
1473- // There are no unmanaged resources to release, but
1474- // if we add them, they need to be released here.
1475- }
1476- disposed = true;
1477- }
1478-
1479- public void Dispose()
1480- {
1481- Dispose(true);
1482- GC.SuppressFinalize(this);
1483- }
1484-
1485- #endregion
1486- }
1487-
1488- public enum BlackListType { Single, All }
1489-}
1490
1491=== removed file 'client/dotNET/CacheManager.cs'
1492--- client/dotNET/CacheManager.cs 2013-05-01 19:28:16 +0000
1493+++ client/dotNET/CacheManager.cs 1970-01-01 00:00:00 +0000
1494@@ -1,387 +0,0 @@
1495-/*
1496- * Xibo - Digitial Signage - http://www.xibo.org.uk
1497- * Copyright (C) 2009 Daniel Garner
1498- *
1499- * This file is part of Xibo.
1500- *
1501- * Xibo is free software: you can redistribute it and/or modify
1502- * it under the terms of the GNU Affero General Public License as published by
1503- * the Free Software Foundation, either version 3 of the License, or
1504- * any later version.
1505- *
1506- * Xibo is distributed in the hope that it will be useful,
1507- * but WITHOUT ANY WARRANTY; without even the implied warranty of
1508- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1509- * GNU Affero General Public License for more details.
1510- *
1511- * You should have received a copy of the GNU Affero General Public License
1512- * along with Xibo. If not, see <http://www.gnu.org/licenses/>.
1513- */
1514-using System;
1515-using System.Collections.Generic;
1516-using System.Collections.ObjectModel;
1517-using System.Text;
1518-using System.IO;
1519-using System.Windows.Forms;
1520-using System.Xml.Serialization;
1521-using System.Diagnostics;
1522-using System.Xml;
1523-
1524-namespace XiboClient
1525-{
1526- public class CacheManager
1527- {
1528- public static object _locker = new object();
1529- public Collection<Md5Resource> _files;
1530-
1531- public CacheManager()
1532- {
1533- _files = new Collection<Md5Resource>();
1534- }
1535-
1536- /// <summary>
1537- /// Gets the MD5 for the given path
1538- /// </summary>
1539- /// <param name="path"></param>
1540- /// <returns></returns>
1541- public String GetMD5(String path)
1542- {
1543- // Either we already have the MD5 stored
1544- foreach (Md5Resource file in _files)
1545- {
1546- if (file.path == path)
1547- {
1548- // Check to see if this file has been modified since the MD5 cache
1549- DateTime lastWrite = File.GetLastWriteTime(Properties.Settings.Default.LibraryPath + @"\" + path);
1550-
1551- if (lastWrite > file.cacheDate)
1552- {
1553- Trace.WriteLine(new LogMessage("GetMD5", path + " has been written to since cache, recalculating"), LogType.Audit.ToString());
1554-
1555- // Get the MD5 again
1556- String md5 = CalcMD5(path);
1557-
1558- // Store the new cacheDate AND the new MD5
1559- Remove(path);
1560-
1561- Add(path, md5);
1562-
1563- // Return the new MD5
1564- return md5;
1565- }
1566-
1567- return file.md5;
1568- }
1569- }
1570-
1571- return CalcMD5(path);
1572- }
1573-
1574- /// <summary>
1575- /// Calculates the MD5 for a path
1576- /// </summary>
1577- /// <param name="path"></param>
1578- /// <returns></returns>
1579- private string CalcMD5(String path)
1580- {
1581- try
1582- {
1583- // Open the file and get the MD5
1584- using (FileStream md5Fs = new FileStream(Properties.Settings.Default.LibraryPath + @"\" + path, FileMode.Open, FileAccess.Read))
1585- {
1586- return Hashes.MD5(md5Fs);
1587- }
1588- }
1589- catch (Exception ex)
1590- {
1591- Trace.WriteLine(new LogMessage("CalcMD5", "Unable to calc the MD5 because: " + ex.Message), LogType.Error.ToString());
1592-
1593- // Return a 0 MD5 which will immediately invalidate the file
1594- return "0";
1595- }
1596- }
1597-
1598- /// <summary>
1599- /// Adds a MD5 to the CacheManager
1600- /// </summary>
1601- /// <param name="path"></param>
1602- /// <param name="md5"></param>
1603- public void Add(String path, String md5)
1604- {
1605- lock (_locker)
1606- {
1607- // First check to see if this path is in the collection
1608- foreach (Md5Resource file in _files)
1609- {
1610- if (file.path == path)
1611- return;
1612- }
1613-
1614- // We need to generate the MD5 and store it for later
1615- Md5Resource md5Resource = new Md5Resource();
1616-
1617- md5Resource.path = path;
1618- md5Resource.md5 = md5;
1619- md5Resource.cacheDate = DateTime.Now;
1620-
1621- // Add the resource to the collection
1622- _files.Add(md5Resource);
1623-
1624- Debug.WriteLine(new LogMessage("Add", "Adding new MD5 to CacheManager"), LogType.Info.ToString());
1625- }
1626- }
1627-
1628- /// <summary>
1629- /// Removes the MD5 resource associated with the Path given
1630- /// </summary>
1631- /// <param name="path"></param>
1632- public void Remove(String path)
1633- {
1634- lock (_locker)
1635- {
1636- // Loop through all MD5s and remove any that match the path
1637- for (int i = 0; i < _files.Count; i++)
1638- {
1639- Md5Resource file = _files[i];
1640-
1641- if (file.path == path)
1642- {
1643- _files.Remove(file);
1644-
1645- System.Diagnostics.Debug.WriteLine(new LogMessage("Remove", "Removing stale MD5 from the CacheManager"), LogType.Info.ToString());
1646- }
1647- }
1648- }
1649- }
1650-
1651- /// <summary>
1652- /// Writes the CacheManager to disk
1653- /// </summary>
1654- public void WriteCacheManager()
1655- {
1656- lock (_locker)
1657- {
1658- Debug.WriteLine(new LogMessage("CacheManager - WriteCacheManager", "About to Write the Cache Manager"), LogType.Info.ToString());
1659-
1660- try
1661- {
1662- using (StreamWriter streamWriter = new StreamWriter(Application.UserAppDataPath + "\\" + Properties.Settings.Default.CacheManagerFile))
1663- {
1664- XmlSerializer xmlSerializer = new XmlSerializer(typeof(CacheManager));
1665-
1666- xmlSerializer.Serialize(streamWriter, this);
1667- }
1668- }
1669- catch (Exception ex)
1670- {
1671- Trace.WriteLine(new LogMessage("MainForm_FormClosing", "Unable to write CacheManager to disk because: " + ex.Message));
1672- }
1673- }
1674- }
1675-
1676- /// <summary>
1677- /// Is the given URI a valid file?
1678- /// </summary>
1679- /// <param name="path"></param>
1680- /// <returns>True is it is and false if it isnt</returns>
1681- public bool IsValidPath(String path)
1682- {
1683- lock (_locker)
1684- {
1685- // Currently a path is valid if it is in the cache
1686- if (String.IsNullOrEmpty(path))
1687- return false;
1688-
1689- // Search for this path
1690- foreach (Md5Resource file in _files)
1691- {
1692- if (file.path == path)
1693- {
1694- // If we cached it over 2 minutes ago, then check the GetLastWriteTime
1695- if (file.cacheDate > DateTime.Now.AddMinutes(-2))
1696- return true;
1697-
1698- try
1699- {
1700- // Check to see if this file has been deleted since the Cache Manager registered it
1701- if (!File.Exists(Properties.Settings.Default.LibraryPath + @"\" + path))
1702- return false;
1703-
1704- // Check to see if this file has been modified since the MD5 cache
1705- // If it has then we assume invalid, otherwise its valid
1706- DateTime lastWrite = File.GetLastWriteTime(Properties.Settings.Default.LibraryPath + @"\" + path);
1707-
1708- if (lastWrite <= file.cacheDate)
1709- return true;
1710- else
1711- return false;
1712- }
1713- catch (Exception ex)
1714- {
1715- Trace.WriteLine(new LogMessage("IsValid", "Unable to determine if the file is valid. Assuming not valid: " + ex.Message), LogType.Error.ToString());
1716-
1717- // Assume invalid
1718- return false;
1719- }
1720- }
1721- }
1722-
1723- // Reached the end of the cache and havent found the file.
1724- return false;
1725- }
1726- }
1727-
1728- /// <summary>
1729- /// Is the provided layout file a valid layout (has all media)
1730- /// </summary>
1731- /// <param name="layoutFile"></param>
1732- /// <returns></returns>
1733- public bool IsValidLayout(string layoutFile)
1734- {
1735- lock (_locker)
1736- {
1737- Debug.WriteLine("Checking if Layout " + layoutFile + " is valid");
1738-
1739- if (!IsValidPath(layoutFile))
1740- return false;
1741-
1742-
1743- // Load the XLF, get all media ID's
1744- XmlDocument layoutXml = new XmlDocument();
1745- layoutXml.Load(Properties.Settings.Default.LibraryPath + @"\" + layoutFile);
1746-
1747- try
1748- {
1749- XmlNodeList mediaNodes = layoutXml.SelectNodes("//media");
1750-
1751- // Store some information about the validity of local video to decide if this layout should be valid or not.
1752- int countInvalidLocalVideo = 0;
1753-
1754- foreach (XmlNode media in mediaNodes)
1755- {
1756- // Is this a stored media type?
1757- switch (media.Attributes["type"].Value)
1758- {
1759- case "video":
1760- case "image":
1761- case "flash":
1762- case "ppt":
1763-
1764- // Get the path and see if its
1765- if (!IsValidPath(GetUri(media)))
1766- {
1767- Trace.WriteLine(new LogMessage("CacheManager - IsValidLayout", "Invalid Media: " + media.Attributes["id"].Value.ToString()), LogType.Audit.ToString());
1768- return false;
1769- }
1770-
1771- break;
1772-
1773- case "localvideo":
1774-
1775- // Check that the path they have specified is ok
1776- if (!File.Exists(Uri.UnescapeDataString(GetUri(media)).Replace('+', ' ')))
1777- {
1778- // Local video path does not exist
1779- Trace.WriteLine(new LogMessage("CacheManager - IsValidLayout", media.InnerText + " does not exist"), LogType.Error.ToString());
1780- countInvalidLocalVideo++;
1781- }
1782-
1783- break;
1784-
1785- default:
1786- continue;
1787- }
1788- }
1789-
1790- // If the number of invalid local video elements is equal to the number of elements on the layout, then don't show
1791- if (countInvalidLocalVideo == mediaNodes.Count)
1792- return false;
1793- }
1794- catch (Exception ex)
1795- {
1796- Trace.WriteLine(new LogMessage("CacheManager - IsValidLayout", "Exception checking media. " + ex.Message), LogType.Audit.ToString());
1797- return false;
1798- }
1799-
1800- // Also check to see if there is a background image that needs to be downloaded
1801- try
1802- {
1803- XmlNode layoutNode = layoutXml.SelectSingleNode("/layout");
1804- XmlAttributeCollection layoutAttributes = layoutNode.Attributes;
1805-
1806- if (layoutAttributes["background"] != null && !string.IsNullOrEmpty(layoutAttributes["background"].Value))
1807- {
1808- if (!IsValidPath(layoutAttributes["background"].Value))
1809- {
1810- Debug.WriteLine("Invalid background: " + layoutAttributes["background"].Value);
1811- return false;
1812- }
1813- }
1814- }
1815- catch
1816- {
1817- // We dont want a missing background attribute to stop this process
1818- return true;
1819- }
1820-
1821- Debug.WriteLine("Layout " + layoutFile + " is valid");
1822-
1823- return true;
1824- }
1825- }
1826-
1827- /// <summary>
1828- /// Get the URI of this media item
1829- /// </summary>
1830- /// <param name="media"></param>
1831- /// <returns></returns>
1832- private string GetUri(XmlNode media)
1833- {
1834- XmlNode uriNode = media.SelectSingleNode(".//options/uri");
1835- return uriNode.InnerText;
1836- }
1837-
1838- /// <summary>
1839- /// Regenerate from Required Files
1840- /// </summary>
1841- public void Regenerate()
1842- {
1843- lock (_locker)
1844- {
1845- if (!File.Exists(Application.UserAppDataPath + "\\" + Properties.Settings.Default.RequiredFilesFile))
1846- return;
1847-
1848- // Open the XML file and check each required file that isnt already there
1849- XmlDocument xml = new XmlDocument();
1850- xml.Load(Application.UserAppDataPath + "\\" + Properties.Settings.Default.RequiredFilesFile);
1851-
1852- XmlNodeList fileNodes = xml.SelectNodes("//RequiredFile/Path");
1853-
1854- foreach (XmlNode file in fileNodes)
1855- {
1856- string path = file.InnerText;
1857-
1858- // Make sure every required file is correctly logged in the cache manager
1859- // Leave the files that are not required in there to be analysed later
1860- if (File.Exists(Properties.Settings.Default.LibraryPath + @"\" + path))
1861- {
1862- // Add this file to the cache manager
1863- Add(path, GetMD5(path));
1864- }
1865- else
1866- {
1867- // Remove this file from the cachemanager
1868- Remove(path);
1869- }
1870- }
1871- }
1872- }
1873- }
1874-
1875- public struct Md5Resource
1876- {
1877- public String md5;
1878- public String path;
1879- public DateTime cacheDate;
1880- }
1881-}
1882
1883=== added directory 'client/dotNET/Control'
1884=== added file 'client/dotNET/Control/Region.cs'
1885--- client/dotNET/Control/Region.cs 1970-01-01 00:00:00 +0000
1886+++ client/dotNET/Control/Region.cs 2014-09-18 17:08:39 +0000
1887@@ -0,0 +1,653 @@
1888+/*
1889+ * Xibo - Digitial Signage - http://www.xibo.org.uk
1890+ * Copyright (C) 2006-2014 Daniel Garner
1891+ *
1892+ * This file is part of Xibo.
1893+ *
1894+ * Xibo is free software: you can redistribute it and/or modify
1895+ * it under the terms of the GNU Affero General Public License as published by
1896+ * the Free Software Foundation, either version 3 of the License, or
1897+ * any later version.
1898+ *
1899+ * Xibo is distributed in the hope that it will be useful,
1900+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
1901+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1902+ * GNU Affero General Public License for more details.
1903+ *
1904+ * You should have received a copy of the GNU Affero General Public License
1905+ * along with Xibo. If not, see <http://www.gnu.org/licenses/>.
1906+ */
1907+using System;
1908+using System.Collections.Generic;
1909+using System.Text;
1910+using System.Windows.Forms;
1911+using System.Xml;
1912+using System.Diagnostics;
1913+using XiboClient.Properties;
1914+
1915+namespace XiboClient
1916+{
1917+ /// <summary>
1918+ /// Layout Region, container for Media
1919+ /// </summary>
1920+ class Region : Panel
1921+ {
1922+ private BlackList _blackList;
1923+ public delegate void DurationElapsedDelegate();
1924+ public event DurationElapsedDelegate DurationElapsedEvent;
1925+
1926+ private Media _media;
1927+ private RegionOptions _options;
1928+ public bool _hasExpired = false;
1929+ public bool _layoutExpired = false;
1930+ private int _currentSequence = -1;
1931+
1932+ // Stat objects
1933+ private StatLog _statLog;
1934+ private Stat _stat;
1935+
1936+ // Cache Manager
1937+ private CacheManager _cacheManager;
1938+
1939+ /// <summary>
1940+ /// Creates the Region
1941+ /// </summary>
1942+ /// <param name="statLog"></param>
1943+ /// <param name="cacheManager"></param>
1944+ public Region(ref StatLog statLog, ref CacheManager cacheManager)
1945+ {
1946+ // Store the statLog
1947+ _statLog = statLog;
1948+
1949+ // Store the cache manager
1950+ _cacheManager = cacheManager;
1951+
1952+ //default options
1953+ _options = new RegionOptions();
1954+ _options.width = 1024;
1955+ _options.height = 768;
1956+ _options.left = 0;
1957+ _options.top = 0;
1958+ _options.uri = null;
1959+
1960+ Location = new System.Drawing.Point(_options.left, _options.top);
1961+ Size = new System.Drawing.Size(_options.width, _options.height);
1962+ BackColor = System.Drawing.Color.Transparent;
1963+
1964+ if (ApplicationSettings.Default.DoubleBuffering)
1965+ {
1966+ SetStyle(ControlStyles.OptimizedDoubleBuffer, true);
1967+ SetStyle(ControlStyles.AllPaintingInWmPaint, true);
1968+ }
1969+
1970+ // Create a new BlackList for us to use
1971+ _blackList = new BlackList();
1972+ }
1973+
1974+ /// <summary>
1975+ /// Options for the region
1976+ /// </summary>
1977+ public RegionOptions regionOptions
1978+ {
1979+ get
1980+ {
1981+ return this._options;
1982+ }
1983+ set
1984+ {
1985+ _options = value;
1986+
1987+ EvalOptions();
1988+ }
1989+ }
1990+
1991+ ///<summary>
1992+ /// Evaulates the change in options
1993+ ///</summary>
1994+ private void EvalOptions()
1995+ {
1996+ // First time
1997+ bool initialMedia = (_currentSequence == -1);
1998+
1999+ if (initialMedia)
2000+ {
2001+ // Evaluate the width, etc
2002+ Location = new System.Drawing.Point(_options.left, _options.top);
2003+ Size = new System.Drawing.Size(_options.width, _options.height);
2004+ }
2005+
2006+ // Try to populate a new media object for this region
2007+ Media newMedia = new Media(0, 0, 0, 0);
2008+
2009+ // Loop around trying to start the next media
2010+ bool startSuccessful = false;
2011+ int countTries = 0;
2012+
2013+ while (!startSuccessful)
2014+ {
2015+ // If we go round this the same number of times as media objects, then we are unsuccessful and should exception
2016+ if (countTries >= _options.mediaNodes.Count)
2017+ throw new ArgumentOutOfRangeException("Unable to set and start a media node");
2018+
2019+ // Lets try again
2020+ countTries++;
2021+
2022+ // Store the current sequence
2023+ int temp = _currentSequence;
2024+
2025+ // Set the next media node for this panel
2026+ if (!SetNextMediaNodeInOptions())
2027+ {
2028+ // For some reason we cannot set a media node... so we need this region to become invalid
2029+ _hasExpired = true;
2030+ DurationElapsedEvent();
2031+ return;
2032+ }
2033+
2034+ // If the sequence hasnt been changed, OR the layout has been expired
2035+ // there has been no change to the sequence, therefore the media we have already created is still valid
2036+ // or this media has actually been destroyed and we are working out way out the call stack
2037+ if (_currentSequence == temp || _layoutExpired)
2038+ return;
2039+
2040+ // Store the Current Index
2041+ _options.CurrentIndex = _currentSequence;
2042+
2043+ // See if we can start the new media object
2044+ try
2045+ {
2046+ newMedia = CreateNextMediaNode(_options);
2047+ }
2048+ catch (Exception ex)
2049+ {
2050+ Trace.WriteLine(new LogMessage("Region - Eval Options", "Unable to create new " + _options.type + " object: " + ex.Message), LogType.Error.ToString());
2051+
2052+ // Try the next node
2053+ startSuccessful = false;
2054+ continue;
2055+ }
2056+
2057+ // First thing we do is stop the current stat record
2058+ if (!initialMedia)
2059+ CloseCurrentStatRecord();
2060+
2061+ // Start the new media
2062+ try
2063+ {
2064+ StartMedia(newMedia);
2065+ }
2066+ catch (Exception ex)
2067+ {
2068+ Trace.WriteLine(new LogMessage("Region - Eval Options", "Unable to start new " + _options.type + " object: " + ex.Message), LogType.Error.ToString());
2069+ startSuccessful = false;
2070+ continue;
2071+ }
2072+
2073+ startSuccessful = true;
2074+
2075+ // Remove the old media
2076+ if (!initialMedia)
2077+ {
2078+ StopMedia(_media);
2079+ _media = null;
2080+ }
2081+
2082+ // Change the reference
2083+ _media = newMedia;
2084+
2085+ // Open a stat record
2086+ OpenStatRecordForMedia();
2087+ }
2088+ }
2089+
2090+ /// <summary>
2091+ /// Sets the next media node. Should be used either from a mediaComplete event, or an options reset from
2092+ /// the parent.
2093+ /// </summary>
2094+ private bool SetNextMediaNodeInOptions()
2095+ {
2096+ // What if there are no media nodes?
2097+ if (_options.mediaNodes.Count == 0)
2098+ {
2099+ Trace.WriteLine(new LogMessage("Region - SetNextMediaNode", "No media nodes to display"), LogType.Audit.ToString());
2100+
2101+ return false;
2102+ }
2103+
2104+ // Zero out the options that are persisted
2105+ _options.text = "";
2106+ _options.documentTemplate = "";
2107+ _options.copyrightNotice = "";
2108+ _options.scrollSpeed = 30;
2109+ _options.updateInterval = 6;
2110+ _options.uri = "";
2111+ _options.direction = "none";
2112+ _options.javaScript = "";
2113+ _options.Dictionary = new MediaDictionary();
2114+
2115+ // Get a media node
2116+ bool validNode = false;
2117+ int numAttempts = 0;
2118+
2119+ // Loop through all the nodes in order
2120+ while (numAttempts < _options.mediaNodes.Count)
2121+ {
2122+ // Move the sequence on
2123+ _currentSequence++;
2124+
2125+ if (_currentSequence >= _options.mediaNodes.Count)
2126+ {
2127+ // Start from the beginning
2128+ _currentSequence = 0;
2129+
2130+ // We have expired (want to raise an expired event to the parent)
2131+ _hasExpired = true;
2132+
2133+ Trace.WriteLine(new LogMessage("Region - SetNextMediaNode", "Media Expired:" + _options.ToString() + " . Reached the end of the sequence. Starting from the beginning."), LogType.Audit.ToString());
2134+
2135+ // Region Expired
2136+ DurationElapsedEvent();
2137+
2138+ // We want to continue on to show the next media (unless the duration elapsed event triggers a region change)
2139+ if (_layoutExpired)
2140+ return true;
2141+ }
2142+
2143+ // Get the media node for this sequence
2144+ XmlNode mediaNode = _options.mediaNodes[_currentSequence];
2145+ XmlAttributeCollection nodeAttributes = mediaNode.Attributes;
2146+
2147+ // Set the media id
2148+ if (nodeAttributes["id"].Value != null)
2149+ _options.mediaid = nodeAttributes["id"].Value;
2150+
2151+ // Check isnt blacklisted
2152+ if (_blackList.BlackListed(_options.mediaid))
2153+ {
2154+ Trace.WriteLine(new LogMessage("Region - SetNextMediaNode", string.Format("MediaID [{0}] has been blacklisted.", _options.mediaid)), LogType.Error.ToString());
2155+
2156+ // Increment the number of attempts and try again
2157+ numAttempts++;
2158+
2159+ // Carry on
2160+ continue;
2161+ }
2162+
2163+ // Assume we have a valid node at this point
2164+ validNode = true;
2165+
2166+ // Parse the options for this media node
2167+ ParseOptionsForMediaNode(mediaNode, nodeAttributes);
2168+
2169+ // Is this a file based media node?
2170+ if (_options.type == "video" || _options.type == "flash" || _options.type == "image" || _options.type == "powerpoint")
2171+ {
2172+ // Use the cache manager to determine if the file is valid
2173+ validNode = _cacheManager.IsValidPath(_options.uri);
2174+ }
2175+
2176+ // If we have a valid node, break out of the loop
2177+ if (validNode)
2178+ break;
2179+
2180+ // Increment the number of attempts and try again
2181+ numAttempts++;
2182+ }
2183+
2184+ // If we dont have a valid node out of all the nodes in the region, then return false.
2185+ if (!validNode)
2186+ return false;
2187+
2188+ Trace.WriteLine(new LogMessage("Region - SetNextMediaNode", "New media detected " + _options.type), LogType.Audit.ToString());
2189+
2190+ return true;
2191+ }
2192+
2193+ /// <summary>
2194+ /// Parse options for the media node
2195+ /// </summary>
2196+ /// <param name="mediaNode"></param>
2197+ /// <param name="nodeAttributes"></param>
2198+ private void ParseOptionsForMediaNode(XmlNode mediaNode, XmlAttributeCollection nodeAttributes)
2199+ {
2200+ // New version has a different schema - the right way to do it would be to pass the <options> and <raw> nodes to
2201+ // the relevant media class - however I dont feel like engineering such a change so the alternative is to
2202+ // parse all the possible media type nodes here.
2203+
2204+ // Type and Duration will always be on the media node
2205+ _options.type = nodeAttributes["type"].Value;
2206+
2207+ // Render as
2208+ if (nodeAttributes["render"] != null)
2209+ _options.render = nodeAttributes["render"].Value;
2210+
2211+ //TODO: Check the type of node we have, and make sure it is supported.
2212+
2213+ if (nodeAttributes["duration"].Value != "")
2214+ {
2215+ _options.duration = int.Parse(nodeAttributes["duration"].Value);
2216+ }
2217+ else
2218+ {
2219+ _options.duration = 60;
2220+ Trace.WriteLine("Duration is Empty, using a default of 60.", "Region - SetNextMediaNode");
2221+ }
2222+
2223+ // We cannot have a 0 duration here... not sure why we would... but
2224+ if (_options.duration == 0 && _options.type != "video" && _options.type != "localvideo")
2225+ {
2226+ int emptyLayoutDuration = int.Parse(ApplicationSettings.Default.EmptyLayoutDuration.ToString());
2227+ _options.duration = (emptyLayoutDuration == 0) ? 10 : emptyLayoutDuration;
2228+ }
2229+
2230+ // There will be some stuff on option nodes
2231+ XmlNode optionNode = mediaNode.FirstChild;
2232+
2233+ // Loop through each option node
2234+ foreach (XmlNode option in optionNode.ChildNodes)
2235+ {
2236+ if (option.Name == "direction")
2237+ {
2238+ _options.direction = option.InnerText;
2239+ }
2240+ else if (option.Name == "uri")
2241+ {
2242+ _options.uri = option.InnerText;
2243+ }
2244+ else if (option.Name == "copyright")
2245+ {
2246+ _options.copyrightNotice = option.InnerText;
2247+ }
2248+ else if (option.Name == "scrollSpeed")
2249+ {
2250+ try
2251+ {
2252+ _options.scrollSpeed = int.Parse(option.InnerText);
2253+ }
2254+ catch
2255+ {
2256+ System.Diagnostics.Trace.WriteLine("Non integer scrollSpeed in XLF", "Region - SetNextMediaNode");
2257+ }
2258+ }
2259+ else if (option.Name == "updateInterval")
2260+ {
2261+ try
2262+ {
2263+ _options.updateInterval = int.Parse(option.InnerText);
2264+ }
2265+ catch
2266+ {
2267+ System.Diagnostics.Trace.WriteLine("Non integer updateInterval in XLF", "Region - SetNextMediaNode");
2268+ }
2269+ }
2270+
2271+ // Add this to the options object
2272+ _options.Dictionary.Add(option.Name, option.InnerText);
2273+ }
2274+
2275+ // And some stuff on Raw nodes
2276+ XmlNode rawNode = mediaNode.LastChild;
2277+
2278+ foreach (XmlNode raw in rawNode.ChildNodes)
2279+ {
2280+ if (raw.Name == "text")
2281+ {
2282+ _options.text = raw.InnerText;
2283+ }
2284+ else if (raw.Name == "template")
2285+ {
2286+ _options.documentTemplate = raw.InnerText;
2287+ }
2288+ else if (raw.Name == "embedHtml")
2289+ {
2290+ _options.text = raw.InnerText;
2291+ }
2292+ else if (raw.Name == "embedScript")
2293+ {
2294+ _options.javaScript = raw.InnerText;
2295+ }
2296+ }
2297+ }
2298+
2299+ /// <summary>
2300+ /// Create the next media node based on the provided options
2301+ /// </summary>
2302+ /// <param name="options"></param>
2303+ /// <returns></returns>
2304+ private Media CreateNextMediaNode(RegionOptions options)
2305+ {
2306+ Media media;
2307+
2308+ Trace.WriteLine(new LogMessage("Region - CreateNextMediaNode", string.Format("Creating new media: {0}, {1}", options.type, options.mediaid)), LogType.Audit.ToString());
2309+
2310+ bool useCef = ApplicationSettings.Default.UseCefWebBrowser;
2311+
2312+ if (options.render == "html")
2313+ {
2314+ if (useCef)
2315+ media = new CefWebMedia(options);
2316+ else
2317+ media = new IeWebMedia(options);
2318+ }
2319+ else
2320+ {
2321+ switch (options.type)
2322+ {
2323+ case "image":
2324+ options.uri = ApplicationSettings.Default.LibraryPath + @"\" + options.uri;
2325+ media = new ImagePosition(options);
2326+ break;
2327+
2328+ case "powerpoint":
2329+ options.uri = ApplicationSettings.Default.LibraryPath + @"\" + options.uri;
2330+ media = new PowerPoint(options);
2331+ break;
2332+
2333+ case "video":
2334+ options.uri = ApplicationSettings.Default.LibraryPath + @"\" + options.uri;
2335+
2336+ // Which video engine are we using?
2337+ if (ApplicationSettings.Default.VideoRenderingEngine == "DirectShow")
2338+ media = new VideoDS(options);
2339+ else
2340+ media = new Video(options);
2341+
2342+ break;
2343+
2344+ case "localvideo":
2345+ // Which video engine are we using?
2346+ if (ApplicationSettings.Default.VideoRenderingEngine == "DirectShow")
2347+ media = new VideoDS(options);
2348+ else
2349+ media = new Video(options);
2350+
2351+ break;
2352+
2353+ case "datasetview":
2354+ case "embedded":
2355+ case "ticker":
2356+ case "text":
2357+ case "webpage":
2358+ if (useCef)
2359+ media = new CefWebMedia(options);
2360+ else
2361+ media = new IeWebMedia(options);
2362+
2363+ break;
2364+
2365+ case "flash":
2366+ options.uri = ApplicationSettings.Default.LibraryPath + @"\" + options.uri;
2367+ media = new Flash(options);
2368+ break;
2369+
2370+ case "shellcommand":
2371+ media = new ShellCommand(options);
2372+ break;
2373+
2374+ default:
2375+ throw new InvalidOperationException("Not a valid media node type: " + options.type);
2376+ }
2377+ }
2378+
2379+ // Sets up the timer for this media
2380+ media.Duration = options.duration;
2381+
2382+ // Add event handler for when this completes
2383+ media.DurationElapsedEvent += new Media.DurationElapsedDelegate(media_DurationElapsedEvent);
2384+
2385+ return media;
2386+ }
2387+
2388+ /// <summary>
2389+ /// Start the provided media
2390+ /// </summary>
2391+ /// <param name="media"></param>
2392+ private void StartMedia(Media media)
2393+ {
2394+ media.RenderMedia();
2395+
2396+ Trace.WriteLine(new LogMessage("Region - StartMedia", "Starting media"), LogType.Audit.ToString());
2397+
2398+ Controls.Add(media);
2399+ }
2400+
2401+ /// <summary>
2402+ /// Stop the provided media
2403+ /// </summary>
2404+ private void StopMedia(Media media)
2405+ {
2406+ Trace.WriteLine(new LogMessage("Region - Stop Media", "Stopping media"), LogType.Audit.ToString());
2407+
2408+ // Hide the media
2409+ media.Hide();
2410+
2411+ // Remove the controls
2412+ Controls.Remove(media);
2413+
2414+ // Dispose of the current media
2415+ try
2416+ {
2417+ // Dispose of the media
2418+ media.Dispose();
2419+ }
2420+ catch (Exception ex)
2421+ {
2422+ Debug.WriteLine("No media to remove");
2423+ Debug.WriteLine(ex.Message);
2424+ }
2425+ }
2426+
2427+ /// <summary>
2428+ /// Opens a stat record for the current media
2429+ /// </summary>
2430+ private void OpenStatRecordForMedia()
2431+ {
2432+ // This media has started and is being replaced
2433+ _stat = new Stat();
2434+ _stat.type = StatType.Media;
2435+ _stat.fromDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
2436+ _stat.scheduleID = _options.scheduleId;
2437+ _stat.layoutID = _options.layoutId;
2438+ _stat.mediaID = _options.mediaid;
2439+ }
2440+
2441+ /// <summary>
2442+ /// Close out the stat record
2443+ /// </summary>
2444+ private void CloseCurrentStatRecord()
2445+ {
2446+ try
2447+ {
2448+ // Here we say that this media is expired
2449+ _stat.toDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
2450+
2451+ // Record this stat event in the statLog object
2452+ _statLog.RecordStat(_stat);
2453+ }
2454+ catch
2455+ {
2456+ Trace.WriteLine(new LogMessage("Region - StopMedia", "No Stat record when one was expected"), LogType.Error.ToString());
2457+ }
2458+ }
2459+
2460+ /// <summary>
2461+ /// The media has elapsed
2462+ /// </summary>
2463+ private void media_DurationElapsedEvent(int filesPlayed)
2464+ {
2465+ Trace.WriteLine(new LogMessage("Region - DurationElapsedEvent", string.Format("Media Elapsed: {0}", _options.uri)), LogType.Audit.ToString());
2466+
2467+ if (filesPlayed > 1)
2468+ // Increment the _current sequence by the number of filesPlayed (minus 1)
2469+ _currentSequence = _currentSequence + (filesPlayed - 1);
2470+
2471+ // make some decisions about what to do next
2472+ try
2473+ {
2474+ EvalOptions();
2475+ }
2476+ catch (Exception e)
2477+ {
2478+ Trace.WriteLine(new LogMessage("Region - media_DurationElapsedEvent", e.Message), LogType.Error.ToString());
2479+
2480+ // What do we do if there is an exception moving to the next media node?
2481+ // For some reason we cannot set a media node... so we need this region to become invalid
2482+ _hasExpired = true;
2483+ DurationElapsedEvent();
2484+ return;
2485+ }
2486+ }
2487+
2488+ /// <summary>
2489+ /// Clears the Region of anything that it shouldnt still have...
2490+ /// </summary>
2491+ public void Clear()
2492+ {
2493+ try
2494+ {
2495+ // What happens if we are disposing this region but we have not yet completed the stat event?
2496+ if (string.IsNullOrEmpty(_stat.toDate))
2497+ {
2498+ // Say that this media has ended
2499+ _stat.toDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
2500+
2501+ // Record this stat event in the statLog object
2502+ _statLog.RecordStat(_stat);
2503+ }
2504+ }
2505+ catch
2506+ {
2507+ Trace.WriteLine(new LogMessage("Region - Clear", "Error closing off stat record"), LogType.Error.ToString());
2508+ }
2509+ }
2510+
2511+ /// <summary>
2512+ /// Performs the disposal.
2513+ /// </summary>
2514+ protected override void Dispose(bool disposing)
2515+ {
2516+ if (disposing)
2517+ {
2518+ try
2519+ {
2520+ _media.Dispose();
2521+ _media = null;
2522+
2523+ Debug.WriteLine("Media Disposed by Region", "Region - Dispose");
2524+ }
2525+ catch (Exception ex)
2526+ {
2527+ Debug.WriteLine(ex.Message);
2528+ Debug.WriteLine("There was no media to dispose", "Region - Dispose");
2529+ }
2530+ finally
2531+ {
2532+ if (_media != null)
2533+ _media = null;
2534+ }
2535+ }
2536+
2537+ base.Dispose(disposing);
2538+ }
2539+ }
2540+}
2541
2542=== added file 'client/dotNET/Control/XiboCefWebBrowser.cs'
2543--- client/dotNET/Control/XiboCefWebBrowser.cs 1970-01-01 00:00:00 +0000
2544+++ client/dotNET/Control/XiboCefWebBrowser.cs 2014-09-18 17:08:39 +0000
2545@@ -0,0 +1,115 @@
2546+/*
2547+ * Xibo - Digitial Signage - http://www.xibo.org.uk
2548+ * Copyright (C) 2014 Spring Signage Ltd
2549+ *
2550+ * This file is part of Xibo.
2551+ *
2552+ * Xibo is free software: you can redistribute it and/or modify
2553+ * it under the terms of the GNU Affero General Public License as published by
2554+ * the Free Software Foundation, either version 3 of the License, or
2555+ * any later version.
2556+ *
2557+ * Xibo is distributed in the hope that it will be useful,
2558+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
2559+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2560+ * GNU Affero General Public License for more details.
2561+ *
2562+ * You should have received a copy of the GNU Affero General Public License
2563+ * along with Xibo. If not, see <http://www.gnu.org/licenses/>.
2564+ */
2565+using System;
2566+using System.Collections.Generic;
2567+using System.ComponentModel;
2568+using System.Drawing;
2569+using System.Drawing.Drawing2D;
2570+using System.Windows.Forms;
2571+using Xilium.CefGlue;
2572+using Xilium.CefGlue.WindowsForms;
2573+
2574+namespace XiboClient.Control
2575+{
2576+ class XiboCefWebBrowser : CefWebBrowser
2577+ {
2578+ private bool _handleCreated;
2579+
2580+ public XiboCefWebBrowser()
2581+ {
2582+ SetStyle(
2583+ ControlStyles.ContainerControl
2584+ | ControlStyles.ResizeRedraw
2585+ | ControlStyles.FixedWidth
2586+ | ControlStyles.FixedHeight
2587+ | ControlStyles.StandardClick
2588+ | ControlStyles.UserMouse
2589+ | ControlStyles.SupportsTransparentBackColor
2590+ | ControlStyles.StandardDoubleClick
2591+ | ControlStyles.OptimizedDoubleBuffer
2592+ | ControlStyles.CacheText
2593+ | ControlStyles.EnableNotifyMessage
2594+ | ControlStyles.DoubleBuffer
2595+ | ControlStyles.OptimizedDoubleBuffer
2596+ | ControlStyles.UseTextForAccessibility
2597+ | ControlStyles.Opaque,
2598+ false);
2599+
2600+ SetStyle(
2601+ ControlStyles.UserPaint
2602+ | ControlStyles.AllPaintingInWmPaint
2603+ | ControlStyles.Selectable,
2604+ true);
2605+
2606+ StartUrl = "about:blank";
2607+
2608+ var windowInfo = CefWindowInfo.Create();
2609+ windowInfo.SetAsChild(Handle, new CefRectangle { X = 0, Y = 0, Width = Width, Height = Height });
2610+
2611+ var client = CreateWebClient();
2612+
2613+ var settings = BrowserSettings;
2614+ if (settings == null) settings = new CefBrowserSettings { };
2615+
2616+ CefBrowserHost.CreateBrowser(windowInfo, client, settings, StartUrl);
2617+ }
2618+
2619+ protected override void OnHandleCreated(EventArgs e)
2620+ {
2621+ base.OnHandleCreated(e);
2622+
2623+ if (DesignMode)
2624+ {
2625+ if (!_handleCreated) Paint += PaintInDesignMode;
2626+ }
2627+ else
2628+ {
2629+ // We've already created our browser
2630+ }
2631+
2632+ _handleCreated = true;
2633+ }
2634+
2635+ private void PaintInDesignMode(object sender, PaintEventArgs e)
2636+ {
2637+ var width = this.Width;
2638+ var height = this.Height;
2639+ if (width > 1 && height > 1)
2640+ {
2641+ var brush = new SolidBrush(this.ForeColor);
2642+ var pen = new Pen(this.ForeColor);
2643+ pen.DashStyle = DashStyle.Dash;
2644+
2645+ e.Graphics.DrawRectangle(pen, 0, 0, width - 1, height - 1);
2646+
2647+ var fontHeight = (int)(this.Font.GetHeight(e.Graphics) * 1.25);
2648+
2649+ var x = 3;
2650+ var y = 3;
2651+
2652+ e.Graphics.DrawString("CefWebBrowser", Font, brush, x, y + (0 * fontHeight));
2653+ e.Graphics.DrawString(string.Format("StartUrl: {0}", StartUrl), Font, brush, x, y + (1 * fontHeight));
2654+
2655+ brush.Dispose();
2656+ pen.Dispose();
2657+ }
2658+ }
2659+ }
2660+}
2661
2662=== removed file 'client/dotNET/DataSetView.cs'
2663--- client/dotNET/DataSetView.cs 2013-11-09 12:14:38 +0000
2664+++ client/dotNET/DataSetView.cs 1970-01-01 00:00:00 +0000
2665@@ -1,235 +0,0 @@
2666-/*
2667- * Xibo - Digitial Signage - http://www.xibo.org.uk
2668- * Copyright (C) 2011-2013 Daniel Garner
2669- *
2670- * This file is part of Xibo.
2671- *
2672- * Xibo is free software: you can redistribute it and/or modify
2673- * it under the terms of the GNU Affero General Public License as published by
2674- * the Free Software Foundation, either version 3 of the License, or
2675- * any later version.
2676- *
2677- * Xibo is distributed in the hope that it will be useful,
2678- * but WITHOUT ANY WARRANTY; without even the implied warranty of
2679- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2680- * GNU Affero General Public License for more details.
2681- *
2682- * You should have received a copy of the GNU Affero General Public License
2683- * along with Xibo. If not, see <http://www.gnu.org/licenses/>.
2684- */
2685-using System;
2686-using System.Collections.Generic;
2687-using System.Text;
2688-using System.Windows.Forms;
2689-using XiboClient.Properties;
2690-using System.IO;
2691-using System.Diagnostics;
2692-
2693-namespace XiboClient
2694-{
2695- class DataSetView :
2696- Media
2697- {
2698- private int _layoutId;
2699- private string _regionId;
2700- private string _mediaId;
2701- private int _updateInterval;
2702- private double _scaleFactor;
2703- private int _duration;
2704- private string _backgroundImage;
2705- private string _backgroundColor;
2706- private string _backgroundTop;
2707- private string _backgroundLeft;
2708-
2709- // File paths
2710- private string _filePath;
2711- private TemporaryFile _temporaryFile;
2712-
2713- private WebBrowser _webBrowser;
2714-
2715- public DataSetView(RegionOptions options)
2716- : base(options.width, options.height, options.top, options.left)
2717- {
2718- _layoutId = options.layoutId;
2719- _regionId = options.regionId;
2720- _mediaId = options.mediaid;
2721- _duration = options.duration;
2722- _scaleFactor = options.scaleFactor;
2723-
2724- _updateInterval = Convert.ToInt32(options.Dictionary.Get("updateInterval"));
2725-
2726- _backgroundImage = options.backgroundImage;
2727- _backgroundColor = options.backgroundColor;
2728-
2729- // Set up the backgrounds
2730- _backgroundTop = options.backgroundTop + "px";
2731- _backgroundLeft = options.backgroundLeft + "px";
2732-
2733- // Create a webbrowser to take the temp file loc
2734- _webBrowser = new WebBrowser();
2735- _webBrowser.ScriptErrorsSuppressed = true;
2736- _webBrowser.Size = this.Size;
2737- _webBrowser.ScrollBarsEnabled = false;
2738- _webBrowser.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(webBrowser_DocumentCompleted);
2739-
2740- // Construct a sensible file path to store this resource
2741- _filePath = Settings.Default.LibraryPath + @"\" + _mediaId + ".htm";
2742-
2743- if (HtmlReady())
2744- {
2745- // Write to temporary file
2746- SaveToTemporaryFile();
2747-
2748- // Navigate to temp file
2749- _webBrowser.Navigate(_temporaryFile.Path);
2750- }
2751- else
2752- {
2753- RefreshLocalHtml();
2754- }
2755- }
2756-
2757- /// <summary>
2758- /// Handles the document completed event.
2759- /// Resets the Background color to be options.backgroundImage
2760- /// </summary>
2761- /// <param name="sender"></param>
2762- /// <param name="e"></param>
2763- void webBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
2764- {
2765- // Show the control
2766- Controls.Add(_webBrowser);
2767- }
2768-
2769- private bool HtmlReady()
2770- {
2771- // Pull the RSS feed, and put it in a temporary file cache
2772- // We want to check the file exists first
2773- string filePath = Settings.Default.LibraryPath + @"\" + _mediaId + ".htm";
2774-
2775- if (!File.Exists(filePath) || _updateInterval == 0)
2776- return false;
2777-
2778- // It exists - therefore we want to get the last time it was updated
2779- DateTime lastWriteDate = System.IO.File.GetLastWriteTime(filePath);
2780-
2781- if (DateTime.Now.CompareTo(lastWriteDate.AddHours(_updateInterval * 1.0 / 60.0)) > 0)
2782- return false;
2783- else
2784- return true;
2785- }
2786-
2787- /// <summary>
2788- /// Updates the position of the background and saves to a temporary file
2789- /// </summary>
2790- private void SaveToTemporaryFile()
2791- {
2792- // read the contents of the file
2793- using (StreamReader reader = new StreamReader(_filePath))
2794- {
2795- string cachedFile = reader.ReadToEnd();
2796-
2797- // Handle the background
2798- String bodyStyle;
2799-
2800- if (_backgroundImage == null || _backgroundImage == "")
2801- {
2802- bodyStyle = "background-color:" + _backgroundColor + " ;";
2803- }
2804- else
2805- {
2806- bodyStyle = "background-image: url('" + _backgroundImage.Replace('\\', '/') + "'); background-attachment:fixed; background-color:" + _backgroundColor + " background-repeat: no-repeat; background-position: " + _backgroundLeft + " " + _backgroundTop + ";";
2807- }
2808-
2809- string html = cachedFile.Replace("</head>", "<style type='text/css'>body {" + bodyStyle + " font-size:" + _scaleFactor.ToString() + "em; }</style></head>");
2810-
2811- _temporaryFile = new TemporaryFile();
2812- _temporaryFile.FileContent = html;
2813- }
2814- }
2815-
2816- /// <summary>
2817- /// Refresh the Local cache of the DataSetView HTML
2818- /// </summary>
2819- private void RefreshLocalHtml()
2820- {
2821- xmds.xmds xmds = new XiboClient.xmds.xmds();
2822- xmds.GetResourceCompleted += new XiboClient.xmds.GetResourceCompletedEventHandler(xmds_GetResourceCompleted);
2823-
2824- xmds.GetResourceAsync(Settings.Default.ServerKey, Settings.Default.hardwareKey, _layoutId, _regionId, _mediaId, Settings.Default.Version);
2825- }
2826-
2827- /// <summary>
2828- /// Refresh Complete
2829- /// </summary>
2830- /// <param name="sender"></param>
2831- /// <param name="e"></param>
2832- private void xmds_GetResourceCompleted(object sender, XiboClient.xmds.GetResourceCompletedEventArgs e)
2833- {
2834- try
2835- {
2836- // Success / Failure
2837- if (e.Error != null)
2838- {
2839- Trace.WriteLine(new LogMessage("xmds_GetResource", "Unable to get Resource: " + e.Error.Message), LogType.Error.ToString());
2840-
2841- // Start the timer so that we expire
2842- base.RenderMedia();
2843- }
2844- else
2845- {
2846- // Write to the library
2847- using (StreamWriter sw = new StreamWriter(File.Open(_filePath, FileMode.Create, FileAccess.Write, FileShare.Read)))
2848- {
2849- sw.Write(e.Result);
2850- sw.Close();
2851- }
2852-
2853- // Write to temporary file
2854- SaveToTemporaryFile();
2855-
2856- // Handle Navigate in here because we will not have done it during first load
2857- _webBrowser.Navigate(_temporaryFile.Path);
2858- }
2859- }
2860- catch (ObjectDisposedException)
2861- {
2862- Trace.WriteLine(new LogMessage("DataSetView", "Retrived the data set, stored the document but the media has already expired."), LogType.Error.ToString());
2863- }
2864- catch (Exception ex)
2865- {
2866- Trace.WriteLine(new LogMessage("DataSetView", "Unknown exception " + ex.Message), LogType.Error.ToString());
2867- }
2868- }
2869-
2870- protected override void Dispose(bool disposing)
2871- {
2872- if (disposing)
2873- {
2874- try
2875- {
2876- _webBrowser.Dispose();
2877-
2878- Debug.WriteLine("Disposed of the Web Browser control", "DataSetView - Dispose");
2879- }
2880- catch
2881- {
2882- Debug.WriteLine("Web browser control already disposed", "DataSetView - Dispose");
2883- }
2884-
2885- // Delete the temporary file
2886- try
2887- {
2888- if (_temporaryFile != null)
2889- _temporaryFile.Dispose();
2890- }
2891- catch
2892- {
2893- Debug.WriteLine("Unable to delete temporary file for dataset", "DataSetView - Dispose");
2894- }
2895- }
2896-
2897- base.Dispose(disposing);
2898- }
2899- }
2900-}
2901
2902=== removed file 'client/dotNET/Flash.cs'
2903--- client/dotNET/Flash.cs 2013-05-01 19:24:35 +0000
2904+++ client/dotNET/Flash.cs 1970-01-01 00:00:00 +0000
2905@@ -1,141 +0,0 @@
2906-/*
2907- * Xibo - Digitial Signage - http://www.xibo.org.uk
2908- * Copyright (C) 2006-2011 Daniel Garner and James Packer
2909- *
2910- * This file is part of Xibo.
2911- *
2912- * Xibo is free software: you can redistribute it and/or modify
2913- * it under the terms of the GNU Affero General Public License as published by
2914- * the Free Software Foundation, either version 3 of the License, or
2915- * any later version.
2916- *
2917- * Xibo is distributed in the hope that it will be useful,
2918- * but WITHOUT ANY WARRANTY; without even the implied warranty of
2919- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2920- * GNU Affero General Public License for more details.
2921- *
2922- * You should have received a copy of the GNU Affero General Public License
2923- * along with Xibo. If not, see <http://www.gnu.org/licenses/>.
2924- */
2925-using System;
2926-using System.Collections.Generic;
2927-using System.Text;
2928-using System.Windows.Forms;
2929-using System.Diagnostics;
2930-
2931-namespace XiboClient
2932-{
2933- class Flash
2934- : Media
2935- {
2936- private TemporaryHtml _tempHtml;
2937- private WebBrowser _webBrowser;
2938- private string _backgroundImage;
2939- private string _backgroundColor;
2940- private string _backgroundTop;
2941- private string _backgroundLeft;
2942-
2943- public Flash (RegionOptions options)
2944- : base(options.width, options.height, options.top, options.left)
2945- {
2946- _tempHtml = new TemporaryHtml();
2947-
2948- _backgroundImage = options.backgroundImage;
2949- _backgroundColor = options.backgroundColor;
2950- _backgroundTop = options.backgroundTop + "px";
2951- _backgroundLeft = options.backgroundLeft + "px";
2952-
2953- // Create the HEAD of the document
2954- GenerateHeadHtml();
2955-
2956- // Set the body
2957- string html = @"
2958- <object classid='clsid:d27cdb6e-ae6d-11cf-96b8-444553540000' codebase='http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0' width='{2}' height='{3}' id='analog_clock' align='middle'>
2959- <param name='allowScriptAccess' value='sameDomain' />
2960- <param name='movie' value='{1}' />
2961- <param name='quality' value='high' />
2962- <param name='bgcolor' value='#000' />
2963- <param name='WMODE' value='transparent' />
2964- <embed src='{1}' quality='high' wmode='transparent' bgcolor='#ffffff' width='{2}' height='{3}' name='analog_clock' align='middle' allowScriptAccess='sameDomain' type='application/x-shockwave-flash' pluginspage='http://www.macromedia.com/go/getflashplayer' />
2965- </object>
2966- ";
2967-
2968- _tempHtml.BodyContent = string.Format(html, options.uri, options.uri, options.width.ToString(), options.height.ToString());
2969-
2970- // Fire up a webBrowser control to display the completed file.
2971- _webBrowser = new WebBrowser();
2972- _webBrowser.Size = this.Size;
2973- _webBrowser.ScrollBarsEnabled = false;
2974- _webBrowser.ScriptErrorsSuppressed = true;
2975- _webBrowser.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(_webBrowser_DocumentCompleted);
2976-
2977- // Navigate to temp file
2978- _webBrowser.Navigate(_tempHtml.Path);
2979- }
2980-
2981- /// <summary>
2982- /// Generates the Head Html for this Document
2983- /// </summary>
2984- private void GenerateHeadHtml()
2985- {
2986- // Handle the background
2987- String bodyStyle;
2988-
2989- if (_backgroundImage == null || _backgroundImage == "")
2990- {
2991- bodyStyle = "background-color:" + _backgroundColor + " ;";
2992- }
2993- else
2994- {
2995- bodyStyle = "background-image: url('" + _backgroundImage + "'); background-attachment:fixed; background-color:" + _backgroundColor + " background-repeat: no-repeat; background-position: " + _backgroundLeft + " " + _backgroundTop + ";";
2996- }
2997-
2998- // Store the document text in the temporary HTML space
2999- _tempHtml.HeadContent = "<style type='text/css'>body {" + bodyStyle + " }</style>"; ;
3000- }
3001-
3002- /// <summary>
3003- /// Web browser completed event
3004- /// </summary>
3005- /// <param name="sender"></param>
3006- /// <param name="e"></param>
3007- void _webBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
3008- {
3009- // We have navigated to the temporary file.
3010- Show();
3011- Controls.Add(_webBrowser);
3012- }
3013-
3014- /// <summary>
3015- /// Dispose
3016- /// </summary>
3017- /// <param name="disposing"></param>
3018- protected override void Dispose(bool disposing)
3019- {
3020- if (disposing)
3021- {
3022- // Remove the webbrowser control
3023- try
3024- {
3025- _webBrowser.Dispose();
3026- }
3027- catch
3028- {
3029- System.Diagnostics.Trace.WriteLine(new LogMessage("WebBrowser still in use.", String.Format("Dispose")));
3030- }
3031-
3032- // Remove the temporary file we created
3033- try
3034- {
3035- _tempHtml.Dispose();
3036- }
3037- catch (Exception ex)
3038- {
3039- Trace.WriteLine(new LogMessage("Dispose", String.Format("Unable to dispose TemporaryHtml with exception {0}", ex.Message)));
3040- }
3041- }
3042-
3043- base.Dispose(disposing);
3044- }
3045- }
3046-}
3047
3048=== added directory 'client/dotNET/Forms'
3049=== added file 'client/dotNET/Forms/About.Designer.cs'
3050--- client/dotNET/Forms/About.Designer.cs 1970-01-01 00:00:00 +0000
3051+++ client/dotNET/Forms/About.Designer.cs 2014-09-18 17:08:39 +0000
3052@@ -0,0 +1,129 @@
3053+namespace XiboClient
3054+{
3055+ partial class About
3056+ {
3057+ /// <summary>
3058+ /// Required designer variable.
3059+ /// </summary>
3060+ private System.ComponentModel.IContainer components = null;
3061+
3062+ /// <summary>
3063+ /// Clean up any resources being used.
3064+ /// </summary>
3065+ /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
3066+ protected override void Dispose(bool disposing)
3067+ {
3068+ if (disposing && (components != null))
3069+ {
3070+ components.Dispose();
3071+ }
3072+ base.Dispose(disposing);
3073+ }
3074+
3075+ #region Windows Form Designer generated code
3076+
3077+ /// <summary>
3078+ /// Required method for Designer support - do not modify
3079+ /// the contents of this method with the code editor.
3080+ /// </summary>
3081+ private void InitializeComponent()
3082+ {
3083+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(About));
3084+ this.pictureBox1 = new System.Windows.Forms.PictureBox();
3085+ this.buttonHelp = new System.Windows.Forms.Button();
3086+ this.richTextBox1 = new System.Windows.Forms.RichTextBox();
3087+ this.label1 = new System.Windows.Forms.Label();
3088+ this.label2 = new System.Windows.Forms.Label();
3089+ this.buttonClose = new System.Windows.Forms.Button();
3090+ ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
3091+ this.SuspendLayout();
3092+ //
3093+ // pictureBox1
3094+ //
3095+ this.pictureBox1.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox1.Image")));
3096+ this.pictureBox1.Location = new System.Drawing.Point(12, 6);
3097+ this.pictureBox1.Name = "pictureBox1";
3098+ this.pictureBox1.Size = new System.Drawing.Size(160, 82);
3099+ this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize;
3100+ this.pictureBox1.TabIndex = 0;
3101+ this.pictureBox1.TabStop = false;
3102+ //
3103+ // buttonHelp
3104+ //
3105+ this.buttonHelp.Location = new System.Drawing.Point(12, 277);
3106+ this.buttonHelp.Name = "buttonHelp";
3107+ this.buttonHelp.Size = new System.Drawing.Size(75, 23);
3108+ this.buttonHelp.TabIndex = 1;
3109+ this.buttonHelp.Text = "Online Help";
3110+ this.buttonHelp.UseVisualStyleBackColor = true;
3111+ this.buttonHelp.Click += new System.EventHandler(this.buttonHelp_Click);
3112+ //
3113+ // richTextBox1
3114+ //
3115+ this.richTextBox1.Location = new System.Drawing.Point(12, 97);
3116+ this.richTextBox1.Name = "richTextBox1";
3117+ this.richTextBox1.Size = new System.Drawing.Size(397, 174);
3118+ this.richTextBox1.TabIndex = 2;
3119+ this.richTextBox1.Text = resources.GetString("richTextBox1.Text");
3120+ this.richTextBox1.TextChanged += new System.EventHandler(this.richTextBox1_TextChanged);
3121+ //
3122+ // label1
3123+ //
3124+ this.label1.AutoSize = true;
3125+ this.label1.Location = new System.Drawing.Point(296, 9);
3126+ this.label1.Name = "label1";
3127+ this.label1.Size = new System.Drawing.Size(35, 13);
3128+ this.label1.TabIndex = 3;
3129+ this.label1.Text = "label1";
3130+ //
3131+ // label2
3132+ //
3133+ this.label2.AutoSize = true;
3134+ this.label2.Location = new System.Drawing.Point(296, 45);
3135+ this.label2.Name = "label2";
3136+ this.label2.Size = new System.Drawing.Size(35, 13);
3137+ this.label2.TabIndex = 4;
3138+ this.label2.Text = "label2";
3139+ //
3140+ // buttonClose
3141+ //
3142+ this.buttonClose.Location = new System.Drawing.Point(333, 276);
3143+ this.buttonClose.Name = "buttonClose";
3144+ this.buttonClose.Size = new System.Drawing.Size(75, 23);
3145+ this.buttonClose.TabIndex = 5;
3146+ this.buttonClose.Text = "Close";
3147+ this.buttonClose.UseVisualStyleBackColor = true;
3148+ this.buttonClose.Click += new System.EventHandler(this.buttonClose_Click);
3149+ //
3150+ // About
3151+ //
3152+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
3153+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
3154+ this.ClientSize = new System.Drawing.Size(421, 312);
3155+ this.Controls.Add(this.buttonClose);
3156+ this.Controls.Add(this.label2);
3157+ this.Controls.Add(this.label1);
3158+ this.Controls.Add(this.richTextBox1);
3159+ this.Controls.Add(this.buttonHelp);
3160+ this.Controls.Add(this.pictureBox1);
3161+ this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
3162+ this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
3163+ this.Name = "About";
3164+ this.Text = "About";
3165+ ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
3166+ this.ResumeLayout(false);
3167+ this.PerformLayout();
3168+
3169+ }
3170+
3171+ #endregion
3172+
3173+ private System.Windows.Forms.PictureBox pictureBox1;
3174+ private System.Windows.Forms.Button buttonHelp;
3175+ private System.Windows.Forms.RichTextBox richTextBox1;
3176+ private System.Windows.Forms.Label label1;
3177+ private System.Windows.Forms.Label label2;
3178+ private System.Windows.Forms.Button buttonClose;
3179+
3180+ }
3181+}
3182\ No newline at end of file
3183
3184=== added file 'client/dotNET/Forms/About.cs'
3185--- client/dotNET/Forms/About.cs 1970-01-01 00:00:00 +0000
3186+++ client/dotNET/Forms/About.cs 2014-09-18 17:08:39 +0000
3187@@ -0,0 +1,63 @@
3188+/*
3189+ * Xibo - Digitial Signage - http://www.xibo.org.uk
3190+ * Copyright (C) 2006-2014 Daniel Garner and James Packer
3191+ *
3192+ * This file is part of Xibo.
3193+ *
3194+ * Xibo is free software: you can redistribute it and/or modify
3195+ * it under the terms of the GNU Affero General Public License as published by
3196+ * the Free Software Foundation, either version 3 of the License, or
3197+ * any later version.
3198+ *
3199+ * Xibo is distributed in the hope that it will be useful,
3200+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
3201+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
3202+ * GNU Affero General Public License for more details.
3203+ *
3204+ * You should have received a copy of the GNU Affero General Public License
3205+ * along with Xibo. If not, see <http://www.gnu.org/licenses/>.
3206+ */
3207+using System;
3208+using System.Collections.Generic;
3209+using System.ComponentModel;
3210+using System.Data;
3211+using System.Drawing;
3212+using System.Text;
3213+using System.Windows.Forms;
3214+
3215+namespace XiboClient
3216+{
3217+ public partial class About : Form
3218+ {
3219+ public About()
3220+ {
3221+ InitializeComponent();
3222+
3223+ label1.Text = Application.ProductName;
3224+ label2.Text = ApplicationSettings.Default.ClientVersion;
3225+ }
3226+
3227+ private void buttonHelp_Click(object sender, EventArgs e)
3228+ {
3229+ // open URL in separate instance of default browser
3230+ try
3231+ {
3232+ System.Diagnostics.Process.Start("http://xibo.org.uk/manual");
3233+ }
3234+ catch
3235+ {
3236+ MessageBox.Show("No web browser installed");
3237+ }
3238+ }
3239+
3240+ private void buttonClose_Click(object sender, EventArgs e)
3241+ {
3242+ this.Close();
3243+ }
3244+
3245+ private void richTextBox1_TextChanged(object sender, EventArgs e)
3246+ {
3247+
3248+ }
3249+ }
3250+}
3251\ No newline at end of file
3252
3253=== added file 'client/dotNET/Forms/About.resx'
3254--- client/dotNET/Forms/About.resx 1970-01-01 00:00:00 +0000
3255+++ client/dotNET/Forms/About.resx 2014-09-18 17:08:39 +0000
3256@@ -0,0 +1,1060 @@
3257+<?xml version="1.0" encoding="utf-8"?>
3258+<root>
3259+ <!--
3260+ Microsoft ResX Schema
3261+
3262+ Version 2.0
3263+
3264+ The primary goals of this format is to allow a simple XML format
3265+ that is mostly human readable. The generation and parsing of the
3266+ various data types are done through the TypeConverter classes
3267+ associated with the data types.
3268+
3269+ Example:
3270+
3271+ ... ado.net/XML headers & schema ...
3272+ <resheader name="resmimetype">text/microsoft-resx</resheader>
3273+ <resheader name="version">2.0</resheader>
3274+ <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
3275+ <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
3276+ <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
3277+ <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
3278+ <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
3279+ <value>[base64 mime encoded serialized .NET Framework object]</value>
3280+ </data>
3281+ <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
3282+ <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
3283+ <comment>This is a comment</comment>
3284+ </data>
3285+
3286+ There are any number of "resheader" rows that contain simple
3287+ name/value pairs.
3288+
3289+ Each data row contains a name, and value. The row also contains a
3290+ type or mimetype. Type corresponds to a .NET class that support
3291+ text/value conversion through the TypeConverter architecture.
3292+ Classes that don't support this are serialized and stored with the
3293+ mimetype set.
3294+
3295+ The mimetype is used for serialized objects, and tells the
3296+ ResXResourceReader how to depersist the object. This is currently not
3297+ extensible. For a given mimetype the value must be set accordingly:
3298+
3299+ Note - application/x-microsoft.net.object.binary.base64 is the format
3300+ that the ResXResourceWriter will generate, however the reader can
3301+ read any of the formats listed below.
3302+
3303+ mimetype: application/x-microsoft.net.object.binary.base64
3304+ value : The object must be serialized with
3305+ : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
3306+ : and then encoded with base64 encoding.
3307+
3308+ mimetype: application/x-microsoft.net.object.soap.base64
3309+ value : The object must be serialized with
3310+ : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
3311+ : and then encoded with base64 encoding.
3312+
3313+ mimetype: application/x-microsoft.net.object.bytearray.base64
3314+ value : The object must be serialized into a byte array
3315+ : using a System.ComponentModel.TypeConverter
3316+ : and then encoded with base64 encoding.
3317+ -->
3318+ <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
3319+ <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
3320+ <xsd:element name="root" msdata:IsDataSet="true">
3321+ <xsd:complexType>
3322+ <xsd:choice maxOccurs="unbounded">
3323+ <xsd:element name="metadata">
3324+ <xsd:complexType>
3325+ <xsd:sequence>
3326+ <xsd:element name="value" type="xsd:string" minOccurs="0" />
3327+ </xsd:sequence>
3328+ <xsd:attribute name="name" use="required" type="xsd:string" />
3329+ <xsd:attribute name="type" type="xsd:string" />
3330+ <xsd:attribute name="mimetype" type="xsd:string" />
3331+ <xsd:attribute ref="xml:space" />
3332+ </xsd:complexType>
3333+ </xsd:element>
3334+ <xsd:element name="assembly">
3335+ <xsd:complexType>
3336+ <xsd:attribute name="alias" type="xsd:string" />
3337+ <xsd:attribute name="name" type="xsd:string" />
3338+ </xsd:complexType>
3339+ </xsd:element>
3340+ <xsd:element name="data">
3341+ <xsd:complexType>
3342+ <xsd:sequence>
3343+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
3344+ <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
3345+ </xsd:sequence>
3346+ <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
3347+ <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
3348+ <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
3349+ <xsd:attribute ref="xml:space" />
3350+ </xsd:complexType>
3351+ </xsd:element>
3352+ <xsd:element name="resheader">
3353+ <xsd:complexType>
3354+ <xsd:sequence>
3355+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
3356+ </xsd:sequence>
3357+ <xsd:attribute name="name" type="xsd:string" use="required" />
3358+ </xsd:complexType>
3359+ </xsd:element>
3360+ </xsd:choice>
3361+ </xsd:complexType>
3362+ </xsd:element>
3363+ </xsd:schema>
3364+ <resheader name="resmimetype">
3365+ <value>text/microsoft-resx</value>
3366+ </resheader>
3367+ <resheader name="version">
3368+ <value>2.0</value>
3369+ </resheader>
3370+ <resheader name="reader">
3371+ <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
3372+ </resheader>
3373+ <resheader name="writer">
3374+ <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
3375+ </resheader>
3376+ <assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
3377+ <data name="pictureBox1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
3378+ <value>
3379+ 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
3691+</value>
3692+ </data>
3693+ <data name="richTextBox1.Text" xml:space="preserve">
3694+ <value>Xibo - Digitial Signage - http://www.xibo.org.uk
3695+Copyright (C) 2006-2014 Daniel Garner and the Xibo Developers
3696+
3697+Xibo is free software: you can redistribute it and/or modify
3698+it under the terms of the GNU Affero General Public License as published by
3699+the Free Software Foundation, either version 3 of the License, or
3700+any later version.
3701+
3702+Xibo is distributed in the hope that it will be useful,
3703+but WITHOUT ANY WARRANTY; without even the implied warranty of
3704+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
3705+GNU Affero General Public License for more details.
3706+
3707+You should have received a copy of the GNU Affero General Public License
3708+along with Xibo. If not, see &lt;http://www.gnu.org/licenses/&gt;.</value>
3709+ </data>
3710+ <data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
3711+ <value>
3712+ AAABAAkAICAQAAEABADoAgAAlgAAABAQEAABAAQAKAEAAH4DAAAwMAAAAQAIAKgOAACmBAAAICAAAAEA
3713+ CACoCAAAThMAABAQAAABAAgAaAUAAPYbAAAAAAAAAQAgAM8wAABeIQAAMDAAAAEAIACoJQAALVIAACAg
3714+ AAABACAAqBAAANV3AAAQEAAAAQAgAGgEAAB9iAAAKAAAACAAAABAAAAAAQAEAAAAAAAAAAAAAAAAAAAA
3715+ AAAAAAAAAAAAAAAAAAAAAIAAAIAAAACAgACAAAAAgACAAICAAACAgIAAwMDAAAAA/wAA/wAAAP//AP8A
3716+ AAD/AP8A//8AAP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4d3AAAAAAAAAAAAAAAACGxsfmcAAAAA
3717+ AAAAAAAAAHbOd+bGcAAAAAAAAAAAAAfmcAAAfscAAAAAAAAAAAAI7AAAAAZnAAAAAAAAAAAADGcAAAAI
3718+ 7HAAAAAAAAAAAHbnAAAAAG5wAAAAAAAAAACMZwAAAADGcAAAAAAAAAAAfmgAAAAAbnAAAAAAAAAAAIxn
3719+ AAAAAOZwAAAAAAAAAAAG5wAAAAhscAAAAAAAAAAAB8YAAAAIbgAAAAAAAAAAAAfncAAAdscAAAAAAAAA
3720+ AAAAx+d3d85wAAAAAAAAAAAAAAbsdsfmAAAAAAAAAAAAAAAAdn5ncAAAAAAAAAAAAAAAAAAAAAAAAAAA
3721+ AAAAAAAAAHhwAACIcAAAAAAAAAAAAACIiAAAiIcAAAAAAAAAAAAI+PgACPj4AAAAAAAAAAAAAI/4AAj4
3722+ +AAAAAAAAAAAAACIgAAAiIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeHAA
3723+ AAAAAAB4dwAAAAAACPj4AAAAAAAIiPhwAAAAAAj/iAAAAAAACI/4gAAAAACIj/gAAAAAAAiPj4AAAAAA
3724+ CP+PAAAAAAAI+P9wAAAAAACIgAAAAAAAAIiIAAAAAAAAAAAAAAAAAAAAAAAAAP//////+D///+AP///A
3725+ B///h8P//4/j//+P4f//D/H//w/x//8P8f//D/H//4/h//+P4///h8P//8AH///gD///8B/////////H
3726+ x///w8P//4OD///Dg///x8f////////////8f/w/+D/4H/g/+B/wP/gf+D/4H/x//D//////KAAAABAA
3727+ AAAgAAAAAQAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAIAAAACAgACAAAAAgACAAICA
3728+ AACAgIAAwMDAAAAA/wAA/wAAAP//AP8AAAD/AP8A//8AAP///wAAAAAAAAAAAAAAB8dmAAAAAAAGAAdw
3729+ AAAAAHYAAGAAAAAAdwAAYAAAAAB2AADgAAAAAH4AB2AAAAAAB2duAAAAAAAAeHAAAAAAAAhwCHAAAAAA
3730+ D4APgAAAAAAAAAAAAAAACAAAAABwAACIgAAACPAAAI+AAAAI8AAACAAAAAgAAP/////4P///+5////Pf
3731+ ///z3///89////Of///4P////H////mf///5n////////+/3///H5///x+f//+/v//8oAAAAMAAAAGAA
3732+ AAABAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHNuZgB+dmkAenVtAHd1cgB8enYAenp5AHx8
3733+ fAC+eRIAv3sUAL58FQC/fRgAvn8dAMF9FQDAfxoAi3FKAIxzTQCafk0AnH9PAIx1UQCLd1cAj3tbAI98
3734+ XACWfFIAkntVAJd+VQCOfWAAi3xkAIB4awCGe2kAh31rAIF5bACAfXgAv4AdAL6BIgC6gSkAvYMpAL2F
3735+ KgCugTwAtYM3ALaFNQC7hDEAsYE5ALaFOAC5iToAvYo5AL6LPgDCgBYAxIEWAMaEFwDBgBoAxIIYAMaF
3736+ GQDBgR0Aw4QeAMWFHQDIhxkAx4kfAMiIGgDIiB0Aw4UjAMKFJADEhyQAxokhAMGHLgDCiCoAx4woAMCI
3737+ MwDDjTUAwo88AMOSPQDGkj0AxZQ+AJaAWwCuhUEAqYRHAK6GRgClhU8AsodDALKIRgC0iEQAuotBAL6O
3738+ QgC7jkYAsYtKALuRTQCsi1UAs49UAJ6IZgCNgnAAioV9AI6IfwCTiHcAnY10AKKLZgCljGUAoYxrAKyS
3739+ aQCokm0AuZpmAL+eZgCyl2wAt5poAK2XcwC2nnYAuaF5AMOTRQDCk0kAx5dIAMGVTwDGnlkAwZxfAMSd
3740+ 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
3782+ AAAAAAAAl5+goKCgn4cAAAAAAAAAAAAAAAAAAACZoKCioaGgnnsAAAAAAAAAAAAAAAAAAAAAnqChoqKg
3783+ n5YAAAAAAAAAAAAAAAAAAACboKGioqGgn30AAAAAAAAAAAAAAAAAAACTnqChoqKhn5kAAAAAAAAAAAAA
3784+ AAAAAACan6CioaGfngAAAAAAAAAAAAAAAAAAAAAAnJ+hoqGhn5cAAAAAAAAAAAAAAAAAAACUn5+goZ+f
3785+ lQAAAAAAAAAAAAAAAAAAAAAAmZ+goKCfn4oAAAAAAAAAAAAAAAAAAAAAmJ6fn56VAAAAAAAAAAAAAAAA
3786+ AAAAAAAAAJmen5+elQAAAAAAAAAAAAAAAAAAAAAAAJSMjJMAAAAAAAAAAAAAAAAAAAAAAAAAAACTjIyS
3787+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//
3788+ /////wAA////////AAD//+AP//8AAP//gAP//wAA//8AAf//AAD//gAA//8AAP/8D+B//wAA//wf8H//
3789+ AAD/+D/wf/8AAP/4P/g//wAA//g/+D//AAD/+H/4P/8AAP/4f/w//wAA//h//D//AAD/+H/8P/8AAP/4
3790+ f/w//wAA//g/+D//AAD/+D/4P/8AAP/4P/g//wAA//gf8H//AAD//A/gf/8AAP/+A4D//wAA//4AAf//
3791+ AAD//wAD//8AAP//wAf//wAA///wH///AAD///////8AAP//D/H//wAA//4H4P//AAD//gfAf/8AAP/8
3792+ B8B//wAA//wHwH//AAD//AfAf/8AAP/+D+D//wAA//+/+///AAD///////8AAP///////wAA/+///+f/
3793+ AAD/g///gf8AAP8B//8A/wAA/gD//wD/AAD+AP//AP8AAP4A//4A/wAA/gH//wD/AAD+Af//AP8AAP8D
3794+ //+B/wAA/4f//8P/AAD///////8AACgAAAAgAAAAQAAAAAEACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
3795+ AAAAAAAAf3VlAHx2awC+eRIAvnoUAL98FQC6fBsAvn0ZALt9HAC4fiQAsn0uAKl/OwDBfhQAwH8YAIpz
3796+ SwCLdFAAjXZVAIl2WACLeFoAjHpcAIR2YACFeGMAhXhkAIV9cgC+gB8Av4EhALmAJAC9giUAtYIuALqE
3797+ KAC/hSsAuIItALuFLQCvgjYAsIA2AL6MOwC7iTwAvIw8AMOAFgDEgRYAxoQXAMKBGgDEgxkAxoUZAMGC
3798+ HQDDhB8AwYUhAMSGIQDChyYAxospAMCMMwDEjjEAwY42AMSONQCag10AnYNcAK6HSwC7j0UAtY1KAL6R
3799+ RQCmiFYArYlRAKGEWAC2kFQAvpdbAIyAbACeh2IAnolnAJSEaQCVhm0AhIB4AI2HfACUincAkol5AJCJ
3800+ fACekHkAt5hkALGWaAC+n24AqpRxAKyWcwCvmXIArJt+ALCdfgDCml0AhISEAIqKigCNjY0AkpKSAJaW
3801+ lgCZmZkAnp6eAKWZhQCpmoEAqJ+PAKCgoACqqqoAra2tALKysgC2t7cAurq6ALu8vAC9vb0AwMDAAMbH
3802+ xwDKysoAzc3NANLS0gDU1NQA2traAN7e3gDh4eEA5eXlAOjo6ABAUAAAWnAAAHSQAACOsAAAqc8AAMLw
3803+ AADR/xEA2P8xAN7/UQDj/3EA6f+RAO//sQD2/9EA////AAAAAAAvJgAAUEEAAHBbAACQdAAAsI4AAM+p
3804+ AADwwwAA/9IRAP/YMQD/3VEA/+RxAP/qkQD/8LEA//bRAP///wAAAAAALxQAAFAiAABwMAAAkD4AALBN
3805+ AADPWwAA8GkAAP95EQD/ijEA/51RAP+vcQD/wZEA/9KxAP/l0QD///8AAAAAAC8DAABQBAAAcAYAAJAJ
3806+ AACwCgAAzwwAAPAOAAD/IBIA/z4xAP9cUQD/enEA/5eRAP+2sQD/1NEA////AAAAAAAvAA4AUAAXAHAA
3807+ IQCQACsAsAA2AM8AQADwAEkA/xFaAP8xcAD/UYYA/3GcAP+RsgD/scgA/9HfAP///wAAAAAALwAgAFAA
3808+ NgBwAEwAkABiALAAeADPAI4A8ACkAP8RswD/Mb4A/1HHAP9x0QD/kdwA/7HlAP/R8AD///8AAAAAACwA
3809+ LwBLAFAAaQBwAIcAkAClALAAxADPAOEA8ADwEf8A8jH/APRR/wD2cf8A95H/APmx/wD70f8A////AAAA
3810+ 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
4062+ sBgARSIGwPzFAMBiABSJ/i+AUUDvkRmAQgAAAABJRU5ErkJggigAAAAwAAAAYAAAAAEAIAAAAAAAAAAA
4063+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
4064+ AAAAAAAAAAAAAAAAAAAAAAAAAAABAAAABAAAAAoAAAAUAAAAIAAAACoAAAAzAAAANwAAADgAAAA4AAAA
4065+ NQAAADEAAAAoAAAAHAAAABEAAAAIAAAAAwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
4066+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
4067+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAGAAAAEAAAACAAAAA2AAAASgAAAFsAAABnAAAA
4068+ awAAAG0AAABtAAAAagAAAGQAAABXAAAARQAAADEAAAAbAAAADQAAAAQAAAABAAAAAAAAAAAAAAAAAAAA
4069+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
4070+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAUAAAATAAAAKQAAAEUHBgRoOjAg
4071+ lWJNLLtvUSTKbk4dy25NG8tvUCDLa1Epx1REK7QYFA6QAAAAdgAAAF8AAAA9AAAAIgAAAA4AAAADAAAA
4072+ AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
4073+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAABQAAABEAAAAvCQgF
4074+ V1NCJ6CsfjbqvoAh/r56E/++eRD/vnkR/755Ef++eRD/vnkR/758F/+6gi36g2Qx1iwkF6AAAABtAAAA
4075+ SQAAACcAAAANAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
4076+ 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
4174+ a5SUlIx5enpmJiYmKgAAAA0AAAAGAAAABAAAAAUAAAAFAAAABAAAAAIAAAABAAAAAAAAAAAAAAAAAAAA
4175+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAYAAAANAAAA
4176+ FAAAABgAAAAXAAAAEQAAAAoAAAAFAAAABAAAAAUAAAAFAAAAAwAAAAIAAAAAAAAAAAAAAAAAAAAAAAAA
4177+ AAAAAAAAAAACAAAABAAAAAUAAAAFAAAABQAAAAUAAAAJAAAAEQAAABcAAAAaAAAAFgAAABAAAAAHAAAA
4178+ AwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAA
4179+ CgAAABgAAAAsAAAAPAAAAEYAAABDAAAANgAAACQAAAARAAAABgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAA
4180+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAABAAAAA4AAAAgAAAANAAAAEMAAABJAAAA
4181+ QgAAADIAAAAcAAAADQAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
4182+ AAAAAAEAAAAJAAAAGwAAADYLCwtdGRkZexwcHIgQEBB+AQEBZgAAAEoAAAAnAAAAEAAAAAQAAAAAAAAA
4183+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAADQAAACICAgJFFBQU
4184+ ax8fH4YcHByLDAwMegAAAF8AAAA9AAAAHwAAAAsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
4185+ AAAAAAAAAAAAAAAAAAAAAAMAAAATAAAAMScnJ22LjIzMtbW16bu7u++enp7hS0xMsgEBAXMAAABEAAAA
4186+ HwAAAAoAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAA
4187+ GgAAADtaWlqbpqen3cHCwvK7u7vwjo6O2igoKJsAAABhAAAAOAAAABcAAAAAAAAAAAAAAAAAAAAAAAAA
4188+ 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
4313+ QYPDrEHDw6xB
4314+</value>
4315+ </data>
4316+</root>
4317\ No newline at end of file
4318
4319=== added file 'client/dotNET/Forms/OptionForm.Designer.cs'
4320--- client/dotNET/Forms/OptionForm.Designer.cs 1970-01-01 00:00:00 +0000
4321+++ client/dotNET/Forms/OptionForm.Designer.cs 2014-09-18 17:08:39 +0000
4322@@ -0,0 +1,469 @@
4323+namespace XiboClient
4324+{
4325+ partial class OptionForm
4326+ {
4327+ /// <summary>
4328+ /// Required designer variable.
4329+ /// </summary>
4330+ private System.ComponentModel.IContainer components = null;
4331+
4332+ /// <summary>
4333+ /// Clean up any resources being used.
4334+ /// </summary>
4335+ /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
4336+ protected override void Dispose(bool disposing)
4337+ {
4338+ if (disposing && (components != null))
4339+ {
4340+ components.Dispose();
4341+ }
4342+ base.Dispose(disposing);
4343+ }
4344+
4345+ #region Windows Form Designer generated code
4346+
4347+ /// <summary>
4348+ /// Required method for Designer support - do not modify
4349+ /// the contents of this method with the code editor.
4350+ /// </summary>
4351+ private void InitializeComponent()
4352+ {
4353+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(OptionForm));
4354+ this.label1 = new System.Windows.Forms.Label();
4355+ this.label2 = new System.Windows.Forms.Label();
4356+ this.label3 = new System.Windows.Forms.Label();
4357+ this.buttonSaveSettings = new System.Windows.Forms.Button();
4358+ this.label9 = new System.Windows.Forms.Label();
4359+ this.buttonLibrary = new System.Windows.Forms.Button();
4360+ this.tbHardwareKey = new System.Windows.Forms.TextBox();
4361+ this.textBoxXmdsUri = new System.Windows.Forms.TextBox();
4362+ this.textBoxServerKey = new System.Windows.Forms.TextBox();
4363+ this.textBoxLibraryPath = new System.Windows.Forms.TextBox();
4364+ this.buttonDisplayAdmin = new System.Windows.Forms.Button();
4365+ this.groupBox2 = new System.Windows.Forms.GroupBox();
4366+ this.textBoxProxyDomain = new System.Windows.Forms.TextBox();
4367+ this.maskedTextBoxProxyPass = new System.Windows.Forms.MaskedTextBox();
4368+ this.textBoxProxyUser = new System.Windows.Forms.TextBox();
4369+ this.labelProxyDomain = new System.Windows.Forms.Label();
4370+ this.labelProxyPass = new System.Windows.Forms.Label();
4371+ this.labelProxyUser = new System.Windows.Forms.Label();
4372+ this.splashButtonBrowse = new System.Windows.Forms.Button();
4373+ this.linkLabel1 = new System.Windows.Forms.LinkLabel();
4374+ this.label17 = new System.Windows.Forms.Label();
4375+ this.label16 = new System.Windows.Forms.Label();
4376+ this.splashOverride = new System.Windows.Forms.TextBox();
4377+ this.menuStrip1 = new System.Windows.Forms.MenuStrip();
4378+ this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
4379+ this.exitToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
4380+ this.aboutToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
4381+ this.aboutToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
4382+ this.onlineHelpToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
4383+ this.folderBrowserLibrary = new System.Windows.Forms.FolderBrowserDialog();
4384+ this.splashScreenOverride = new System.Windows.Forms.OpenFileDialog();
4385+ this.tbStatus = new System.Windows.Forms.TextBox();
4386+ this.xmds1 = new XiboClient.xmds.xmds();
4387+ this.buttonExit = new System.Windows.Forms.Button();
4388+ this.button1 = new System.Windows.Forms.Button();
4389+ this.groupBox2.SuspendLayout();
4390+ this.menuStrip1.SuspendLayout();
4391+ this.SuspendLayout();
4392+ //
4393+ // label1
4394+ //
4395+ this.label1.AutoSize = true;
4396+ this.label1.Font = new System.Drawing.Font("Arial", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
4397+ this.label1.Location = new System.Drawing.Point(11, 46);
4398+ this.label1.Name = "label1";
4399+ this.label1.Size = new System.Drawing.Size(128, 22);
4400+ this.label1.TabIndex = 1;
4401+ this.label1.Text = "CMS Address";
4402+ //
4403+ // label2
4404+ //
4405+ this.label2.AutoSize = true;
4406+ this.label2.Font = new System.Drawing.Font("Arial", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
4407+ this.label2.Location = new System.Drawing.Point(522, 46);
4408+ this.label2.Name = "label2";
4409+ this.label2.Size = new System.Drawing.Size(43, 22);
4410+ this.label2.TabIndex = 3;
4411+ this.label2.Text = "Key";
4412+ //
4413+ // label3
4414+ //
4415+ this.label3.AutoSize = true;
4416+ this.label3.Font = new System.Drawing.Font("Arial", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
4417+ this.label3.Location = new System.Drawing.Point(21, 92);
4418+ this.label3.Name = "label3";
4419+ this.label3.Size = new System.Drawing.Size(118, 22);
4420+ this.label3.TabIndex = 5;
4421+ this.label3.Text = "Local Library";
4422+ //
4423+ // buttonSaveSettings
4424+ //
4425+ this.buttonSaveSettings.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
4426+ this.buttonSaveSettings.Location = new System.Drawing.Point(12, 508);
4427+ this.buttonSaveSettings.Name = "buttonSaveSettings";
4428+ this.buttonSaveSettings.Size = new System.Drawing.Size(387, 41);
4429+ this.buttonSaveSettings.TabIndex = 6;
4430+ this.buttonSaveSettings.Text = "Save";
4431+ this.buttonSaveSettings.UseVisualStyleBackColor = true;
4432+ this.buttonSaveSettings.Click += new System.EventHandler(this.buttonSaveSettings_Click);
4433+ //
4434+ // label9
4435+ //
4436+ this.label9.AutoSize = true;
4437+ this.label9.Font = new System.Drawing.Font("Arial", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
4438+ this.label9.Location = new System.Drawing.Point(468, 92);
4439+ this.label9.Name = "label9";
4440+ this.label9.Size = new System.Drawing.Size(97, 22);
4441+ this.label9.TabIndex = 13;
4442+ this.label9.Text = "Display ID";
4443+ //
4444+ // buttonLibrary
4445+ //
4446+ this.buttonLibrary.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
4447+ this.buttonLibrary.Location = new System.Drawing.Point(353, 87);
4448+ this.buttonLibrary.Name = "buttonLibrary";
4449+ this.buttonLibrary.Size = new System.Drawing.Size(109, 31);
4450+ this.buttonLibrary.TabIndex = 10;
4451+ this.buttonLibrary.Text = "Browse";
4452+ this.buttonLibrary.UseVisualStyleBackColor = true;
4453+ this.buttonLibrary.Click += new System.EventHandler(this.buttonLibrary_Click);
4454+ //
4455+ // tbHardwareKey
4456+ //
4457+ this.tbHardwareKey.Font = new System.Drawing.Font("Arial", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
4458+ this.tbHardwareKey.Location = new System.Drawing.Point(571, 89);
4459+ this.tbHardwareKey.Name = "tbHardwareKey";
4460+ this.tbHardwareKey.Size = new System.Drawing.Size(116, 29);
4461+ this.tbHardwareKey.TabIndex = 14;
4462+ //
4463+ // textBoxXmdsUri
4464+ //
4465+ this.textBoxXmdsUri.Font = new System.Drawing.Font("Arial", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
4466+ this.textBoxXmdsUri.Location = new System.Drawing.Point(145, 43);
4467+ this.textBoxXmdsUri.Name = "textBoxXmdsUri";
4468+ this.textBoxXmdsUri.Size = new System.Drawing.Size(371, 29);
4469+ this.textBoxXmdsUri.TabIndex = 0;
4470+ this.textBoxXmdsUri.Text = "http://localhost/xibo";
4471+ //
4472+ // textBoxServerKey
4473+ //
4474+ this.textBoxServerKey.Font = new System.Drawing.Font("Arial", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
4475+ this.textBoxServerKey.Location = new System.Drawing.Point(571, 43);
4476+ this.textBoxServerKey.Name = "textBoxServerKey";
4477+ this.textBoxServerKey.Size = new System.Drawing.Size(116, 29);
4478+ this.textBoxServerKey.TabIndex = 2;
4479+ //
4480+ // textBoxLibraryPath
4481+ //
4482+ this.textBoxLibraryPath.Font = new System.Drawing.Font("Arial", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
4483+ this.textBoxLibraryPath.Location = new System.Drawing.Point(145, 89);
4484+ this.textBoxLibraryPath.Name = "textBoxLibraryPath";
4485+ this.textBoxLibraryPath.Size = new System.Drawing.Size(202, 29);
4486+ this.textBoxLibraryPath.TabIndex = 4;
4487+ this.textBoxLibraryPath.Text = "DEFAULT";
4488+ //
4489+ // buttonDisplayAdmin
4490+ //
4491+ this.buttonDisplayAdmin.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
4492+ this.buttonDisplayAdmin.Location = new System.Drawing.Point(501, 508);
4493+ this.buttonDisplayAdmin.Name = "buttonDisplayAdmin";
4494+ this.buttonDisplayAdmin.Size = new System.Drawing.Size(90, 41);
4495+ this.buttonDisplayAdmin.TabIndex = 7;
4496+ this.buttonDisplayAdmin.Text = "Display Admin";
4497+ this.buttonDisplayAdmin.UseVisualStyleBackColor = true;
4498+ this.buttonDisplayAdmin.Click += new System.EventHandler(this.buttonDisplayAdmin_Click);
4499+ //
4500+ // groupBox2
4501+ //
4502+ this.groupBox2.Controls.Add(this.textBoxProxyDomain);
4503+ this.groupBox2.Controls.Add(this.maskedTextBoxProxyPass);
4504+ this.groupBox2.Controls.Add(this.textBoxProxyUser);
4505+ this.groupBox2.Controls.Add(this.labelProxyDomain);
4506+ this.groupBox2.Controls.Add(this.labelProxyPass);
4507+ this.groupBox2.Controls.Add(this.labelProxyUser);
4508+ this.groupBox2.Font = new System.Drawing.Font("Arial", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
4509+ this.groupBox2.Location = new System.Drawing.Point(12, 263);
4510+ this.groupBox2.Name = "groupBox2";
4511+ this.groupBox2.Size = new System.Drawing.Size(674, 150);
4512+ this.groupBox2.TabIndex = 7;
4513+ this.groupBox2.TabStop = false;
4514+ this.groupBox2.Text = "Proxy Information";
4515+ //
4516+ // textBoxProxyDomain
4517+ //
4518+ this.textBoxProxyDomain.Font = new System.Drawing.Font("Arial", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
4519+ this.textBoxProxyDomain.Location = new System.Drawing.Point(110, 95);
4520+ this.textBoxProxyDomain.Name = "textBoxProxyDomain";
4521+ this.textBoxProxyDomain.Size = new System.Drawing.Size(558, 29);
4522+ this.textBoxProxyDomain.TabIndex = 7;
4523+ //
4524+ // maskedTextBoxProxyPass
4525+ //
4526+ this.maskedTextBoxProxyPass.Font = new System.Drawing.Font("Arial", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
4527+ this.maskedTextBoxProxyPass.Location = new System.Drawing.Point(441, 37);
4528+ this.maskedTextBoxProxyPass.Name = "maskedTextBoxProxyPass";
4529+ this.maskedTextBoxProxyPass.Size = new System.Drawing.Size(227, 29);
4530+ this.maskedTextBoxProxyPass.TabIndex = 5;
4531+ this.maskedTextBoxProxyPass.UseSystemPasswordChar = true;
4532+ //
4533+ // textBoxProxyUser
4534+ //
4535+ this.textBoxProxyUser.Font = new System.Drawing.Font("Arial", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
4536+ this.textBoxProxyUser.Location = new System.Drawing.Point(110, 37);
4537+ this.textBoxProxyUser.Name = "textBoxProxyUser";
4538+ this.textBoxProxyUser.Size = new System.Drawing.Size(225, 29);
4539+ this.textBoxProxyUser.TabIndex = 3;
4540+ //
4541+ // labelProxyDomain
4542+ //
4543+ this.labelProxyDomain.AutoSize = true;
4544+ this.labelProxyDomain.Font = new System.Drawing.Font("Arial", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
4545+ this.labelProxyDomain.Location = new System.Drawing.Point(29, 95);
4546+ this.labelProxyDomain.Name = "labelProxyDomain";
4547+ this.labelProxyDomain.Size = new System.Drawing.Size(75, 22);
4548+ this.labelProxyDomain.TabIndex = 2;
4549+ this.labelProxyDomain.Text = "Domain";
4550+ //
4551+ // labelProxyPass
4552+ //
4553+ this.labelProxyPass.AutoSize = true;
4554+ this.labelProxyPass.Font = new System.Drawing.Font("Arial", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
4555+ this.labelProxyPass.Location = new System.Drawing.Point(341, 40);
4556+ this.labelProxyPass.Name = "labelProxyPass";
4557+ this.labelProxyPass.Size = new System.Drawing.Size(94, 22);
4558+ this.labelProxyPass.TabIndex = 1;
4559+ this.labelProxyPass.Text = "Password";
4560+ //
4561+ // labelProxyUser
4562+ //
4563+ this.labelProxyUser.AutoSize = true;
4564+ this.labelProxyUser.Font = new System.Drawing.Font("Arial", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
4565+ this.labelProxyUser.Location = new System.Drawing.Point(7, 40);
4566+ this.labelProxyUser.Name = "labelProxyUser";
4567+ this.labelProxyUser.Size = new System.Drawing.Size(97, 22);
4568+ this.labelProxyUser.TabIndex = 0;
4569+ this.labelProxyUser.Text = "Username";
4570+ //
4571+ // splashButtonBrowse
4572+ //
4573+ this.splashButtonBrowse.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
4574+ this.splashButtonBrowse.Location = new System.Drawing.Point(353, 136);
4575+ this.splashButtonBrowse.Name = "splashButtonBrowse";
4576+ this.splashButtonBrowse.Size = new System.Drawing.Size(109, 29);
4577+ this.splashButtonBrowse.TabIndex = 14;
4578+ this.splashButtonBrowse.Text = "Browse";
4579+ this.splashButtonBrowse.UseVisualStyleBackColor = true;
4580+ this.splashButtonBrowse.Click += new System.EventHandler(this.splashButtonBrowse_Click);
4581+ //
4582+ // linkLabel1
4583+ //
4584+ this.linkLabel1.AutoSize = true;
4585+ this.linkLabel1.Font = new System.Drawing.Font("Arial", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
4586+ this.linkLabel1.Location = new System.Drawing.Point(246, 226);
4587+ this.linkLabel1.Name = "linkLabel1";
4588+ this.linkLabel1.Size = new System.Drawing.Size(177, 18);
4589+ this.linkLabel1.TabIndex = 13;
4590+ this.linkLabel1.TabStop = true;
4591+ this.linkLabel1.Text = "http://xibo.org.uk/donate/";
4592+ //
4593+ // label17
4594+ //
4595+ this.label17.AutoSize = true;
4596+ this.label17.Font = new System.Drawing.Font("Arial", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
4597+ this.label17.Location = new System.Drawing.Point(95, 195);
4598+ this.label17.Name = "label17";
4599+ this.label17.Size = new System.Drawing.Size(509, 18);
4600+ this.label17.TabIndex = 12;
4601+ this.label17.Text = "If you override the splash screen please consider donating to the project. ";
4602+ //
4603+ // label16
4604+ //
4605+ this.label16.AutoSize = true;
4606+ this.label16.Font = new System.Drawing.Font("Arial", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
4607+ this.label16.Location = new System.Drawing.Point(3, 139);
4608+ this.label16.Name = "label16";
4609+ this.label16.Size = new System.Drawing.Size(134, 22);
4610+ this.label16.TabIndex = 11;
4611+ this.label16.Text = "Splash Screen";
4612+ //
4613+ // splashOverride
4614+ //
4615+ this.splashOverride.Font = new System.Drawing.Font("Arial", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
4616+ this.splashOverride.Location = new System.Drawing.Point(145, 136);
4617+ this.splashOverride.Name = "splashOverride";
4618+ this.splashOverride.Size = new System.Drawing.Size(202, 29);
4619+ this.splashOverride.TabIndex = 10;
4620+ //
4621+ // menuStrip1
4622+ //
4623+ this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
4624+ this.fileToolStripMenuItem,
4625+ this.aboutToolStripMenuItem});
4626+ this.menuStrip1.Location = new System.Drawing.Point(0, 0);
4627+ this.menuStrip1.Name = "menuStrip1";
4628+ this.menuStrip1.Size = new System.Drawing.Size(698, 24);
4629+ this.menuStrip1.TabIndex = 8;
4630+ this.menuStrip1.Text = "menuStrip1";
4631+ //
4632+ // fileToolStripMenuItem
4633+ //
4634+ this.fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
4635+ this.exitToolStripMenuItem});
4636+ this.fileToolStripMenuItem.Name = "fileToolStripMenuItem";
4637+ this.fileToolStripMenuItem.Size = new System.Drawing.Size(37, 20);
4638+ this.fileToolStripMenuItem.Text = "File";
4639+ //
4640+ // exitToolStripMenuItem
4641+ //
4642+ this.exitToolStripMenuItem.Name = "exitToolStripMenuItem";
4643+ this.exitToolStripMenuItem.Size = new System.Drawing.Size(92, 22);
4644+ this.exitToolStripMenuItem.Text = "Exit";
4645+ this.exitToolStripMenuItem.Click += new System.EventHandler(this.exitToolStripMenuItem_Click);
4646+ //
4647+ // aboutToolStripMenuItem
4648+ //
4649+ this.aboutToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
4650+ this.aboutToolStripMenuItem1,
4651+ this.onlineHelpToolStripMenuItem});
4652+ this.aboutToolStripMenuItem.Name = "aboutToolStripMenuItem";
4653+ this.aboutToolStripMenuItem.Size = new System.Drawing.Size(44, 20);
4654+ this.aboutToolStripMenuItem.Text = "Help";
4655+ //
4656+ // aboutToolStripMenuItem1
4657+ //
4658+ this.aboutToolStripMenuItem1.Name = "aboutToolStripMenuItem1";
4659+ this.aboutToolStripMenuItem1.Size = new System.Drawing.Size(137, 22);
4660+ this.aboutToolStripMenuItem1.Text = "About";
4661+ this.aboutToolStripMenuItem1.Click += new System.EventHandler(this.aboutToolStripMenuItem1_Click);
4662+ //
4663+ // onlineHelpToolStripMenuItem
4664+ //
4665+ this.onlineHelpToolStripMenuItem.Name = "onlineHelpToolStripMenuItem";
4666+ this.onlineHelpToolStripMenuItem.Size = new System.Drawing.Size(137, 22);
4667+ this.onlineHelpToolStripMenuItem.Text = "Online Help";
4668+ this.onlineHelpToolStripMenuItem.Click += new System.EventHandler(this.onlineHelpToolStripMenuItem_Click);
4669+ //
4670+ // splashScreenOverride
4671+ //
4672+ this.splashScreenOverride.FileName = "Splash Screen.jpg";
4673+ //
4674+ // tbStatus
4675+ //
4676+ this.tbStatus.BackColor = System.Drawing.SystemColors.Control;
4677+ this.tbStatus.BorderStyle = System.Windows.Forms.BorderStyle.None;
4678+ this.tbStatus.Cursor = System.Windows.Forms.Cursors.Default;
4679+ this.tbStatus.Font = new System.Drawing.Font("Arial", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
4680+ this.tbStatus.Location = new System.Drawing.Point(12, 431);
4681+ this.tbStatus.Multiline = true;
4682+ this.tbStatus.Name = "tbStatus";
4683+ this.tbStatus.Size = new System.Drawing.Size(674, 60);
4684+ this.tbStatus.TabIndex = 15;
4685+ //
4686+ // xmds1
4687+ //
4688+ this.xmds1.Credentials = null;
4689+ this.xmds1.Url = "http://localhost/Xibo/server/xmds.php";
4690+ this.xmds1.UseDefaultCredentials = false;
4691+ //
4692+ // buttonExit
4693+ //
4694+ this.buttonExit.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
4695+ this.buttonExit.Location = new System.Drawing.Point(597, 508);
4696+ this.buttonExit.Name = "buttonExit";
4697+ this.buttonExit.Size = new System.Drawing.Size(90, 41);
4698+ this.buttonExit.TabIndex = 16;
4699+ this.buttonExit.Text = "Exit";
4700+ this.buttonExit.UseVisualStyleBackColor = true;
4701+ this.buttonExit.Click += new System.EventHandler(this.buttonExit_Click);
4702+ //
4703+ // button1
4704+ //
4705+ this.button1.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
4706+ this.button1.Location = new System.Drawing.Point(405, 508);
4707+ this.button1.Name = "button1";
4708+ this.button1.Size = new System.Drawing.Size(90, 41);
4709+ this.button1.TabIndex = 17;
4710+ this.button1.Text = "Launch Client";
4711+ this.button1.UseVisualStyleBackColor = true;
4712+ this.button1.Click += new System.EventHandler(this.button1_Click);
4713+ //
4714+ // OptionForm
4715+ //
4716+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
4717+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
4718+ this.ClientSize = new System.Drawing.Size(698, 561);
4719+ this.Controls.Add(this.button1);
4720+ this.Controls.Add(this.buttonExit);
4721+ this.Controls.Add(this.tbStatus);
4722+ this.Controls.Add(this.splashButtonBrowse);
4723+ this.Controls.Add(this.buttonDisplayAdmin);
4724+ this.Controls.Add(this.linkLabel1);
4725+ this.Controls.Add(this.groupBox2);
4726+ this.Controls.Add(this.label17);
4727+ this.Controls.Add(this.menuStrip1);
4728+ this.Controls.Add(this.label16);
4729+ this.Controls.Add(this.splashOverride);
4730+ this.Controls.Add(this.label9);
4731+ this.Controls.Add(this.buttonSaveSettings);
4732+ this.Controls.Add(this.tbHardwareKey);
4733+ this.Controls.Add(this.buttonLibrary);
4734+ this.Controls.Add(this.label1);
4735+ this.Controls.Add(this.textBoxXmdsUri);
4736+ this.Controls.Add(this.label2);
4737+ this.Controls.Add(this.label3);
4738+ this.Controls.Add(this.textBoxServerKey);
4739+ this.Controls.Add(this.textBoxLibraryPath);
4740+ this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
4741+ this.MainMenuStrip = this.menuStrip1;
4742+ this.Name = "OptionForm";
4743+ this.Text = "Xibo Client Options";
4744+ this.groupBox2.ResumeLayout(false);
4745+ this.groupBox2.PerformLayout();
4746+ this.menuStrip1.ResumeLayout(false);
4747+ this.menuStrip1.PerformLayout();
4748+ this.ResumeLayout(false);
4749+ this.PerformLayout();
4750+
4751+ }
4752+
4753+ #endregion
4754+
4755+ private XiboClient.xmds.xmds xmds1;
4756+ private System.Windows.Forms.TextBox textBoxXmdsUri;
4757+ private System.Windows.Forms.Label label1;
4758+ private System.Windows.Forms.TextBox textBoxServerKey;
4759+ private System.Windows.Forms.Label label2;
4760+ private System.Windows.Forms.TextBox textBoxLibraryPath;
4761+ private System.Windows.Forms.Label label3;
4762+ private System.Windows.Forms.Button buttonSaveSettings;
4763+ private System.Windows.Forms.MenuStrip menuStrip1;
4764+ private System.Windows.Forms.ToolStripMenuItem fileToolStripMenuItem;
4765+ private System.Windows.Forms.ToolStripMenuItem exitToolStripMenuItem;
4766+ private System.Windows.Forms.ToolStripMenuItem aboutToolStripMenuItem;
4767+ private System.Windows.Forms.ToolStripMenuItem aboutToolStripMenuItem1;
4768+ private System.Windows.Forms.FolderBrowserDialog folderBrowserLibrary;
4769+ private System.Windows.Forms.Button buttonLibrary;
4770+ private System.Windows.Forms.ToolStripMenuItem onlineHelpToolStripMenuItem;
4771+ private System.Windows.Forms.Button buttonDisplayAdmin;
4772+ private System.Windows.Forms.GroupBox groupBox2;
4773+ private System.Windows.Forms.MaskedTextBox maskedTextBoxProxyPass;
4774+ private System.Windows.Forms.TextBox textBoxProxyUser;
4775+ private System.Windows.Forms.Label labelProxyDomain;
4776+ private System.Windows.Forms.Label labelProxyPass;
4777+ private System.Windows.Forms.Label labelProxyUser;
4778+ private System.Windows.Forms.TextBox textBoxProxyDomain;
4779+ private System.Windows.Forms.TextBox tbHardwareKey;
4780+ private System.Windows.Forms.Label label9;
4781+ private System.Windows.Forms.OpenFileDialog splashScreenOverride;
4782+ private System.Windows.Forms.Button splashButtonBrowse;
4783+ private System.Windows.Forms.LinkLabel linkLabel1;
4784+ private System.Windows.Forms.Label label17;
4785+ private System.Windows.Forms.Label label16;
4786+ private System.Windows.Forms.TextBox splashOverride;
4787+ private System.Windows.Forms.TextBox tbStatus;
4788+ private System.Windows.Forms.Button buttonExit;
4789+ private System.Windows.Forms.Button button1;
4790+ }
4791+}
4792\ No newline at end of file
4793
4794=== added file 'client/dotNET/Forms/OptionForm.cs'
4795--- client/dotNET/Forms/OptionForm.cs 1970-01-01 00:00:00 +0000
4796+++ client/dotNET/Forms/OptionForm.cs 2014-09-18 17:08:39 +0000
4797@@ -0,0 +1,286 @@
4798+/*
4799+ * Xibo - Digitial Signage - http://www.xibo.org.uk
4800+ * Copyright (C) 2006-2014 Daniel Garner
4801+ *
4802+ * This file is part of Xibo.
4803+ *
4804+ * Xibo is free software: you can redistribute it and/or modify
4805+ * it under the terms of the GNU Affero General Public License as published by
4806+ * the Free Software Foundation, either version 3 of the License, or
4807+ * any later version.
4808+ *
4809+ * Xibo is distributed in the hope that it will be useful,
4810+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
4811+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
4812+ * GNU Affero General Public License for more details.
4813+ *
4814+ * You should have received a copy of the GNU Affero General Public License
4815+ * along with Xibo. If not, see <http://www.gnu.org/licenses/>.
4816+ */
4817+using System;
4818+using System.Collections.Generic;
4819+using System.ComponentModel;
4820+using System.Security.Cryptography.X509Certificates;
4821+using System.Data;
4822+using System.Drawing;
4823+using System.Text;
4824+using System.Net;
4825+using System.Windows.Forms;
4826+using XiboClient.Properties;
4827+using System.Diagnostics;
4828+using System.Xml;
4829+using XiboClient.XmdsAgents;
4830+
4831+namespace XiboClient
4832+{
4833+ public partial class OptionForm : Form
4834+ {
4835+ private HardwareKey _hardwareKey;
4836+
4837+
4838+ public OptionForm()
4839+ {
4840+ InitializeComponent();
4841+
4842+ Debug.WriteLine("Initialise Option Form Components", "OptionForm");
4843+
4844+ // Get a hardware key here, just in case we havent been able to get one before
4845+ _hardwareKey = new HardwareKey();
4846+
4847+ // XMDS completed event
4848+ xmds1.RegisterDisplayCompleted += new XiboClient.xmds.RegisterDisplayCompletedEventHandler(xmds1_RegisterDisplayCompleted);
4849+
4850+ // Library Path
4851+ if (ApplicationSettings.Default.LibraryPath == "DEFAULT")
4852+ {
4853+ Debug.WriteLine("Getting the Library Path", "OptionForm");
4854+ ApplicationSettings.Default.LibraryPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\Xibo Library";
4855+ ApplicationSettings.Default.Save();
4856+ }
4857+
4858+ // Computer name if the display name hasnt been set yet
4859+ if (ApplicationSettings.Default.DisplayName == "COMPUTERNAME")
4860+ {
4861+ Debug.WriteLine("Getting the display Name", "OptionForm");
4862+ ApplicationSettings.Default.DisplayName = Environment.MachineName;
4863+ ApplicationSettings.Default.Save();
4864+ }
4865+
4866+ // Set global proxy information
4867+ OptionForm.SetGlobalProxy();
4868+
4869+ // Settings Tab
4870+ textBoxXmdsUri.Text = ApplicationSettings.Default.ServerUri;
4871+ textBoxServerKey.Text = ApplicationSettings.Default.ServerKey;
4872+ textBoxLibraryPath.Text = ApplicationSettings.Default.LibraryPath;
4873+ tbHardwareKey.Text = ApplicationSettings.Default.HardwareKey;
4874+
4875+ // Proxy Tab
4876+ textBoxProxyUser.Text = ApplicationSettings.Default.ProxyUser;
4877+ maskedTextBoxProxyPass.Text = ApplicationSettings.Default.ProxyPassword;
4878+ textBoxProxyDomain.Text = ApplicationSettings.Default.ProxyDomain;
4879+
4880+ // Appearance Tab
4881+ splashOverride.Text = ApplicationSettings.Default.SplashOverride;
4882+
4883+ Debug.WriteLine("Loaded Options Form", "OptionForm");
4884+ }
4885+
4886+ /// <summary>
4887+ /// Register display completed
4888+ /// </summary>
4889+ /// <param name="sender"></param>
4890+ /// <param name="e"></param>
4891+ void xmds1_RegisterDisplayCompleted(object sender, XiboClient.xmds.RegisterDisplayCompletedEventArgs e)
4892+ {
4893+ tbStatus.ResetText();
4894+
4895+ if (e.Error != null)
4896+ {
4897+ tbStatus.AppendText("Status" + Environment.NewLine);
4898+ tbStatus.AppendText(e.Error.Message);
4899+
4900+ Debug.WriteLine("Error returned from Call to XMDS Register Display.", "xmds1_RegisterDisplayCompleted");
4901+ Debug.WriteLine(e.Error.Message, "xmds1_RegisterDisplayCompleted");
4902+ Debug.WriteLine(e.Error.StackTrace, "xmds1_RegisterDisplayCompleted");
4903+ }
4904+ else
4905+ {
4906+ tbStatus.AppendText(RegisterAgent.ProcessRegisterXml(e.Result));
4907+ }
4908+ }
4909+
4910+ /// <summary>
4911+ /// Save settings
4912+ /// </summary>
4913+ /// <param name="sender"></param>
4914+ /// <param name="e"></param>
4915+ private void buttonSaveSettings_Click(object sender, EventArgs e)
4916+ {
4917+ tbStatus.ResetText();
4918+ try
4919+ {
4920+ tbStatus.AppendText("Saving with CMS... Please wait...");
4921+
4922+ // Make sure our XMDS location is correct
4923+ ApplicationSettings.Default.XiboClient_xmds_xmds = textBoxXmdsUri.Text.TrimEnd('/') + @"/xmds.php";
4924+
4925+ // Simple settings
4926+ ApplicationSettings.Default.ServerKey = textBoxServerKey.Text;
4927+ ApplicationSettings.Default.LibraryPath = textBoxLibraryPath.Text.TrimEnd('\\');
4928+ ApplicationSettings.Default.ServerUri = textBoxXmdsUri.Text;
4929+ ApplicationSettings.Default.HardwareKey = tbHardwareKey.Text;
4930+
4931+ // Also tweak the address of the xmds1
4932+ xmds1.Url = ApplicationSettings.Default.XiboClient_xmds_xmds;
4933+
4934+ // Proxy Settings
4935+ ApplicationSettings.Default.ProxyUser = textBoxProxyUser.Text;
4936+ ApplicationSettings.Default.ProxyPassword = maskedTextBoxProxyPass.Text;
4937+ ApplicationSettings.Default.ProxyDomain = textBoxProxyDomain.Text;
4938+
4939+ // Change the default Proxy class
4940+ OptionForm.SetGlobalProxy();
4941+
4942+ // Client settings
4943+ ApplicationSettings.Default.SplashOverride = splashOverride.Text;
4944+
4945+ // Commit these changes back to the user settings
4946+ ApplicationSettings.Default.Save();
4947+
4948+ // Call register
4949+ xmds1.RegisterDisplayAsync(ApplicationSettings.Default.ServerKey, ApplicationSettings.Default.HardwareKey, ApplicationSettings.Default.DisplayName, "windows", ApplicationSettings.Default.ClientVersion, ApplicationSettings.Default.ClientCodeVersion, _hardwareKey.MacAddress, ApplicationSettings.Default.Version);
4950+ }
4951+ catch (Exception ex)
4952+ {
4953+ tbStatus.AppendText(ex.Message);
4954+ }
4955+ }
4956+
4957+ private void exitToolStripMenuItem_Click(object sender, EventArgs e)
4958+ {
4959+ this.Close();
4960+ }
4961+
4962+
4963+ private void buttonLibrary_Click(object sender, EventArgs e)
4964+ {
4965+ // Set the dialog
4966+ folderBrowserLibrary.SelectedPath = textBoxLibraryPath.Text;
4967+
4968+ // Open the dialog
4969+ if (folderBrowserLibrary.ShowDialog() == DialogResult.OK)
4970+ {
4971+ textBoxLibraryPath.Text = folderBrowserLibrary.SelectedPath;
4972+ }
4973+ }
4974+
4975+ private void splashButtonBrowse_Click(object sender, EventArgs e)
4976+ {
4977+ // Set the dialog
4978+ splashScreenOverride.FileName = splashOverride.Text;
4979+
4980+ if (splashScreenOverride.ShowDialog() == DialogResult.OK)
4981+ {
4982+ splashOverride.Text = splashScreenOverride.FileName;
4983+ }
4984+ }
4985+
4986+ private void onlineHelpToolStripMenuItem_Click(object sender, EventArgs e)
4987+ {
4988+ // open URL in separate instance of default browser
4989+ try
4990+ {
4991+ Process.Start("http://xibo.org.uk/manual");
4992+ }
4993+ catch
4994+ {
4995+ MessageBox.Show("No web browser installed");
4996+ }
4997+ }
4998+
4999+ private void aboutToolStripMenuItem1_Click(object sender, EventArgs e)
5000+ {
The diff has been truncated for viewing.

Subscribers

People subscribed via source and target branches