Ejemplo n.º 1
0
		void SetParameter ()
			{
			VideoFileName = WMB.Basics.GetCommandLineContent(m_Arguments,
						WPMediaManagement.ManagedProgrammData.Param_VideoFileName);
			String VideoControlFileName = WMB.Basics.GetCommandLineContent (m_Arguments,
						WPMediaManagement.ManagedProgrammData.Param_VideoControlFileName);
			if (File.Exists (VideoControlFileName))
				{
				m_HostCVM.LoadAndProcessAutoFile (VideoControlFileName);
				m_VideoPlayingData = m_HostCVM.DeSerializedDesriptionObject as CVM.WPMediaVideoPlayingData;
				m_VideoPlayingData.SetData ();
				}
			String OverlayControlFileName = WMB.Basics.GetCommandLineContent (m_Arguments,
						WPMediaManagement.ManagedProgrammData.Param_StandBildControlFileName);
			if (File.Exists (OverlayControlFileName))
				{
				CVM.CommonValues HelpCVM = new CVM.CommonValues ();
				HelpCVM.LoadAndProcessAutoFile (OverlayControlFileName);
				m_StandbildPlayingData = HelpCVM.DeSerializedDesriptionObject as CVM.WPMediaStandbildPlayingData;
				}
			PlayingIndex = 0;
			}
Ejemplo n.º 2
0
		private bool SetParameter ()
			{
			FinalStopTime = m_HostCVM.TimeToStop;
			m_StandBildPlayingData = m_HostCVM.DeSerializedDesriptionObject
					as CVM.WPMediaStandbildPlayingData;
			if (SetParameterForActuallProgrammUnit (m_StandBildPlayingData) == 0)
				return false;
			if (!StartPowerPoint ())
				return false;

//			m_PowerPointApplication.SlideShowEnd += new EApplication_SlideShowEndEventHandler (m_PowerPointApplication_SlideShowEnd);
			m_CloseTimer.Tick += new EventHandler (m_CloseTimer_Tick);

			m_PowerPoint.Activate ();
			m_PowerPoint.WindowState = PpWindowState.ppWindowMinimized;
			
			return true;
			}
Ejemplo n.º 3
0
		private int SetParameterForActuallProgrammUnit (WPMediaStandbildPlayingData StandBildPlayingData)
			{
			WPMediaRandomController RandomController = CommonDataBase.CommonBasics.GetWPMediaObject
									(StandBildPlayingData.TableName + "_Randomizer") as
													   WPMediaRandomController;
			if (RandomController == null)
				{
				RandomController = new WPMediaRandomController ();
				CommonDataBase.CommonBasics.SetWPMediaObject (StandBildPlayingData.TableName + "_Randomizer", RandomController);
				}
//			RandomController.FillIndexIndizess (StandBildPlayingData);
			PresentationsToPlayFromNow = StandBildPlayingData.GetNumberOfPagesOfIndexedEntries ();
			StandBildPlayingData.IndexToFileIndexToPlay = 0;
			m_SetupThePlayablePresentationsReturn = SetUpThePlayableFile ();
			if (!m_SetupThePlayablePresentationsReturn)
				{
				StandBildPlayingData.OutputDiagnostics ("SetParameterForActuallProgrammUnit (PowerPoint)");
				}
			return PresentationsToPlayFromNow;
			}
Ejemplo n.º 4
0
		private void SetParameterForFirstPlayableFile (WPMediaStandbildPlayingData StandBildPlayingData)
			{
			if (StandBildPlayingData.TableName != WMB.Basics.Type_MultipleTable)
				{
				if (m_StandBildPlayingData.TableDefinitionTable != null)
					{
					LoadFadingParameter (m_StandBildPlayingData.TableDefinitionTable.Rows [0] ["SerienWechselFadings"].ToString (),
										 m_StandBildPlayingData.TableDefinitionTable.Rows [0] ["BildWechselFadings"].ToString ());
					TimingTypeForAllEntries = m_StandBildPlayingData.TableDefinitionTable.Rows[0]["EntryTimingType"].ToString();
					PlayingOrderForAllEntries = m_StandBildPlayingData.TableDefinitionTable.Rows[0]["PlayingOrder"].ToString();
					}
				WPMediaRandomController RandomController = CommonDataBase.CommonBasics.GetWPMediaObject
															   (StandBildPlayingData.TableName + "_Randomizer") as
														   WPMediaRandomController;
				if (RandomController == null)
					{
					RandomController = new WPMediaRandomController ();
					CommonDataBase.CommonBasics.SetWPMediaObject (StandBildPlayingData.TableName + "_Randomizer", RandomController);
					}
//				RandomController.FillIndexIndizess (StandBildPlayingData);
				RandomController.ShowNamesOfSortedActiveDescriptions(StandBildPlayingData, "SetParameterForFirstPlayableFile");
				}
			else
				{
				StandBildPlayingData.CorrectPagePlayingDurations (SchedulingDefinedOverallTimeSpan);
				}
			PicturesToPlayFromNow = StandBildPlayingData.GetNumberOfPagesOfIndexedEntries ();
			StandBildPlayingData.IndexToFileIndexToPlay = 0;
			if (GetLastProgressInfoCall != null)
				{
				List<String> Rememberables = GetLastProgressInfoCall (this);
				if (StandBildPlayingData.TableDefinitionTable != null)
					{
					if (StandBildPlayingData.TableDefinitionTable == null)
						{
						WMB.Basics.ReportErrorToEventViewer ("StandBildPlayingData.TableDefinitionTable == null");
						throw new Exception ("StandBildPlayingData.TableDefinitionTable == null");
						}
					if ((StandBildPlayingData.TableDefinitionTable.Rows [0] ["EntryTimingType"].ToString () != "Fix")
					    &&
					    (StandBildPlayingData.TableDefinitionTable.Rows [0] ["EntryTimingType"].ToString () !=
					     "MeaningOfOutsideSetDuration"))
						{
						if (!String.IsNullOrEmpty (Rememberables [0]))
							StandBildPlayingData.IndexToFileIndexToPlay = Convert.ToInt32 (Rememberables [0]);
						if ((Rememberables.Count > 1)
						    && (!String.IsNullOrEmpty (Rememberables [1])))
							PageIndexToProcessAfterRestart = Convert.ToInt32 (Rememberables [1]);
						else
							PageIndexToProcessAfterRestart = -1;
						}
					}
				}

			List<String> NewStartupEntries = new List<string>();
			NewStartupEntries.Add("-1");
			NewStartupEntries.Add("-1");
			NewStartupEntries.Add("-1");
			if (SetProgressInfoCall != null)
				SetProgressInfoCall(this, NewStartupEntries);

			
			m_ReturnOfTheLastSetUpThePlayablePackage = SetUpOnePlayablePackageFile ();
			while (!m_ReturnOfTheLastSetUpThePlayablePackage)
				{
				ActuallyNotAvailableFiles.Add(StandBildPlayingData.IndexToFileIndexToPlay);
				StandBildPlayingData.OutputDiagnostics ("SetParameterForFirstPlayableFile");
				ShowErrornousCallingParameter ("SetParameterForFirstPlayableFile");
				StandBildPlayingData.IndexToFileIndexToPlay++;
				PageIndexToProcessAfterRestart = -1;
				if (StandBildPlayingData.IsFileIndexToPlayCorrect(SchedulingDefinedStopDateTime))
					m_ReturnOfTheLastSetUpThePlayablePackage = SetUpOnePlayablePackageFile ();
				else
					break;
				}
			}
Ejemplo n.º 5
0
		List<String> GetStandBildIndizessFiles (DataHandling Dh, WPMediaStandbildPlayingData StandBildPlayingData)
			{
			List<String> Names = WMB.Basics.GetFilesFromDirectory 
				(WMB.Basics.GetRemoteWPMediaRoot () + "\\WPMediaFinalInternetSource\\" + StandBildPlayingData.TableName,
				new string[ ] {"*StandBildArchiv*.xml"}, 1);
			Names.Sort ();
			return Names;
			}
Ejemplo n.º 6
0
		public void SetParameter ()
			{
			PageIndexToProcessAfterRestart = -1;
			if (WMB.Basics.IsTestRun)
				WMB.Basics.ReportInformationToEventViewer ("StandBildTV.SetParameter",
							  "Mit folgenden Parametern:\r\n" + GetParameterString ());
			SchedulingDefinedOverallTimeSpan = TimeSpan.MinValue;
			OutsideDefinedPictureDuration = TimeSpan.MinValue;

			if (!String.IsNullOrEmpty (WMB.Basics.GetCommandLineContent (m_Arguments, CVM.CommonValues.WPMEDIA_PICTURE_DURATION)))
				OutsideDefinedPictureDuration = TimeSpan.FromSeconds (Convert.ToDouble
					(WMB.Basics.GetCommandLineContent (m_Arguments, CVM.CommonValues.WPMEDIA_PICTURE_DURATION)));
			if (!String.IsNullOrEmpty (WMB.Basics.GetCommandLineContent (m_Arguments, CVM.CommonValues.WPMEDIA_DURATION_PARAMETER)))
				{
				SchedulingDefinedOverallTimeSpan = TimeSpan.FromSeconds (Convert.ToDouble
						  (WMB.Basics.GetCommandLineContent (m_Arguments, CVM.CommonValues.WPMEDIA_DURATION_PARAMETER)));
				SchedulingDefinedStopDateTime = DateTime.Now + SchedulingDefinedOverallTimeSpan;
				}
			if (SchedulingDefinedOverallTimeSpan == TimeSpan.MinValue)
				if (!String.IsNullOrEmpty (WMB.Basics.GetCommandLineContent (m_Arguments, CVM.CommonValues.WPMEDIA_STOP_TIME_PARAMETER)))
					{
					SchedulingDefinedStopDateTime =
						DateTime.Parse (WMB.Basics.GetCommandLineContent (m_Arguments, CVM.CommonValues.WPMEDIA_STOP_TIME_PARAMETER));
					SchedulingDefinedOverallTimeSpan = SchedulingDefinedStopDateTime - DateTime.Now;
					}

			if (WMB.Basics.IsTestRun)
				{
				WMB.Basics.ReportInformationToEventViewer (m_MessageDescriptionID + ".SetParameter",
					"Aufruf mit:\r\n" + GetParameterString ());
				}

			TypeOfBeitrag = WMB.Basics.GetCommandLineContent (m_Arguments, CVM.CommonValues.WPMEDIA_TYPE_OF_BEITRAG);
			if (TypeOfBeitrag == WPMediaManagement.ManagedProgrammData.Type_UtilityDisplay)
				{
				ExtensionOfPrimaryControlFile = Path.GetExtension (m_Arguments [1]).ToUpper ();
				if (ExtensionOfPrimaryControlFile == ".EXT")
					{
					if (m_StandBildPlayingData == null)
						{
						m_StandBildPlayingData = m_HostCVM.DeSerializedDesriptionObject as CVM.WPMediaStandbildPlayingData;
						}
					if (m_StandBildPlayingData == null)
						{
						WMB.Basics.ReportErrorToEventViewer (m_MessageDescriptionID + ".SetParameter",
															 "m_StandBildPlayingData == null-Deserialization hat nicht funktioniert");
						return;
						}
					ProcessExtFileDisplay (m_Arguments [1], m_StandBildPlayingData);
					m_HostCVM.TimeToStop = DateTime.Now.AddSeconds (m_StandBildPlayingData.GetFullDuration ());
//					return;
					}

				if (ExtensionOfPrimaryControlFile == ".SER")
					{
					ProcessSerFileDisplay (m_Arguments [1]);
					return;
					}

				if (ExtensionOfPrimaryControlFile == ".PKG")
					{
					m_StandBildPlayingData = new WPMediaStandbildPlayingData();
					m_StandBildPlayingData.StandBildTVVersion = "PKG_Version";
					m_StandBildPlayingData.FillDefaultsForSimpleUsages (m_Arguments[1]);
					m_StandBildPlayingData.TableName = WPMediaManagement.ManagedProgrammData.Type_MultipleTable;
					}
				else
					{
					if ((m_StandBildPlayingData == null)
						&& (m_HostCVM.DeSerializedDesriptionObject != null))
						{
						m_StandBildPlayingData = m_HostCVM.DeSerializedDesriptionObject as CVM.WPMediaStandbildPlayingData;
						}
					if (m_StandBildPlayingData == null)
						{
						WMB.Basics.ReportErrorToEventViewer(m_MessageDescriptionID + ".SetParameter",
															 "m_StandBildPlayingData == null-Deserialization hat nicht funktioniert");
						return;
						}
					}
				}
			else
				if (TypeOfBeitrag == WPMediaManagement.ManagedProgrammData.Type_MultipleTable)
					{
					if (m_StandBildPlayingData == null)
						{
						m_StandBildPlayingData = m_HostCVM.DeSerializedDesriptionObject as CVM.WPMediaStandbildPlayingData;
						}
					if (m_StandBildPlayingData == null)
						{
						WMB.Basics.ReportErrorToEventViewer (m_MessageDescriptionID + ".SetParameter",
									"m_StandBildPlayingData == null-Deserialization bei Type_MultipleTable hat nicht funktioniert");
						return;
						}
					}
				else
					{
					if (m_StandBildPlayingData == null)
						{
						m_StandBildPlayingData = m_HostCVM.DeSerializedDesriptionObject as CVM.WPMediaStandbildPlayingData;
						}
					if (m_StandBildPlayingData == null)
						{
						WMB.Basics.ReportErrorToEventViewer (m_MessageDescriptionID + ".SetParameter",
									"m_StandBildPlayingData == null-Deserialization  bei Type_UtilityDisplay hat nicht funktioniert");
						return;
						}
					if ((SchedulingDefinedOverallTimeSpan != TimeSpan.MinValue)
						&& (TimingTypeForAllEntries == CVM.CommonValues.WPMEDIA_ENTRY_TIMING_TYPE_APPROXIMATELY))
						{
						if (((m_StandBildPlayingData.OverallPlayLength * (1 - (PercentageOfAllowedDefinedToAvailableDuration / 100)))
							< SchedulingDefinedOverallTimeSpan.TotalSeconds)
							&& ((m_StandBildPlayingData.OverallPlayLength * (1 + (PercentageOfAllowedDefinedToAvailableDuration / 100)))
							> SchedulingDefinedOverallTimeSpan.TotalSeconds))
						
							m_StandBildPlayingData.CorrectPagePlayingDurations (SchedulingDefinedOverallTimeSpan);
						}
					}


			StopHasBeenSet = false;
			m_MessageDescriptionID = "StandBildTV_" + m_StandBildPlayingData.TableName;
			if (m_XAML == null)
				m_XAML = new XAMLHandling (m_HostCVM);
			m_XAML.ShowGridLines = false;
			m_DirectoryToProcessIndex = m_HostCVM.DirectoryToProcessIndex;
			if (m_DirectoryToProcessIndex != 0)
				throw new Exception ("Mehr als ein Directory ist dzt. nicht implementiert");
			FinalStopTime = m_HostCVM.TimeToStop;
			PageIndexToProcessAfterRestart = 0;
			
			SetParameterForFirstPlayableFile (m_StandBildPlayingData);
			}
Ejemplo n.º 7
0
		Window ProcessExtFileDisplay (String FileName, WPMediaStandbildPlayingData PlayingData)
			{
			List<String> DisplayableInfos = PlayingData.CreateReadableContentDescription (FileName);
			Window HelperWindow = new Window ();
			HelperWindow.Title = "Inhalt von \"" + FileName + "\"";
			ListBox DisplayBox = new ListBox ();
			HelperWindow.Content = DisplayBox;
			DisplayBox.ItemsSource = DisplayableInfos;
			HelperWindow.Show ();
			return HelperWindow;
			}
Ejemplo n.º 8
0
		private bool PlayingDataObjectsAreEqual (WPMediaStandbildPlayingData Old,
		                                         WPMediaStandbildPlayingData New)
			{
			if (!WMB.Basics.CheckIfPublicPropertiesEqual (New, Old))
				return false;
			if (!WMB.Basics.CheckIfStringListEqual(New.NamesOfLocalToDownloadDescriptions, Old.NamesOfLocalToDownloadDescriptions))
				return false;
			if (!WMB.Basics.CheckIfStringListEqual(New.NamesOfTodayActiveDescriptions, Old.NamesOfTodayActiveDescriptions))
				return false;
			if (!WMB.Basics.CheckIfIntListEqual(New.NumberOfPagesOfEachDescription, Old.NumberOfPagesOfEachDescription))
				return false;
			if (!WMB.Basics.CheckIfTimeSpanListEqual(New.PlayLengthOfEachDescription, Old.PlayLengthOfEachDescription))
				return false;
			if (!WMB.Basics.CheckIfDateTimeListEqual(New.LastWriteTimesOfNamesOfActiveDescriptions, Old.LastWriteTimesOfNamesOfActiveDescriptions))
				return false;
			return true;
			}
Ejemplo n.º 9
0
/*
	public void CreateGalleriePlayingData (String PictureElementsFileRootDirectory,
					String TableName, DataRow TableTableRow)
		{
		CVM.CommonValues m_CVM = new CVM.CommonValues ();
		XAMLHandling m_XAMLHandling = new XAMLHandling (m_CVM);
		LocalWPMediaRoot = CommonDataBase.DataBase.GetLocalWPMediaRoot ();
		String TableDirectory = Path.Combine (PictureElementsFileRootDirectory, TableName);
		List<FileInfo> ExistingFiles = WMB.Basics.GetFileInfoEntriesFromDirectory
			(TableDirectory, new string [] { ControlFileExtension }, 1);
		return;
		}		
*/		
		
	public void CreateStandbildPlayingData (String WPMediaServerRootDirectory, 
			String PackageFilesRootDirectory, String TableName, DataRow tableDefinitionRow)
		{
		if (WMB.Basics.IsTestRun)
			{
			int NumberOfFiles = WMB.Basics.GetFilesFromDirectory
				(Path.Combine(PackageFilesRootDirectory, TableName), new string[] { "*.pkg" }, 1).Count; 

			WMB.Basics.ReportInformationToEventViewer("WPMediaCentralServices.CreateStandbildPlayingData",
				"PackageFilesRootDirectory =\r\n\"" + PackageFilesRootDirectory + "\" Tabelle =\r\n\""
				+ TableName + "\" " + Convert.ToString(NumberOfFiles) + " Files");
			}
		DateTime DateTimeToHandle = DateTime.Now;
		CVM.CommonValues m_CVM = new CVM.CommonValues();
		XAMLHandling m_XAMLHandling = new XAMLHandling (m_CVM);
		LocalWPMediaRoot = CommonDataBase.DataBase.GetLocalWPMediaRoot ();
		String TableDirectory = Path.Combine (PackageFilesRootDirectory, TableName);
		List<FileInfo> ExistingFiles = WMB.Basics.GetFileInfoEntriesFromDirectory
			(TableDirectory, new string [] { ControlFileExtension }, 1);
		if (ExistingFiles == null)
			return;
		WPMediaStandbildPlayingData Description = new WPMediaStandbildPlayingData();

//ToDo	Checking for IsActive on this day - new Implementation	
		List<MMUnitUsageData> PossibleDataFromDataBase
			= Data.DbServer3.WPMediaAddOnData.GetWPMediaAddOnDataStandBildUsagePerTabelle
				(TableName, Data.DbServer3.WPMediaAddOnData.Timings
					.GetPossiblyInvolvedConnectedIds(DateTimeToHandle)[TableName]);


		Dictionary<DateTime, List<MMUnitUsageData>> AvtiveThisDayParameter 
				= new Dictionary<DateTime, List<MMUnitUsageData>>()
					{
						{ DateTimeToHandle,
						GetDayMMUnitUsageData
							(PossibleDataFromDataBase, DateTimeToHandle)
						}
					};

			//TODO
			//MMUnitUsageTreeEntry Root = MMUnitUsageTreeEntry.GetUsageTree (null, null, null, null);

			//int WeekDay = (int) DateTime.Now.DayOfWeek;
			//List<MMUnitUsageData> DownloadEntriesStandBildUsageData = Root.Childs[MMUnitUsageTreeEntry.ALL_ACTIVE_ENTRIES].ContentList;
			//	MMUnitUsageTreeEntry RootsChilds = Root.Childs [MMUnitUsageTreeEntry.ALL_ACTIVE_ENTRIES];
			//List<MMUnitUsageData> AllDayUsageData = RootsChilds.Childs[MMUnitUsageTreeEntry.ALL_DAY_ENTRIES].ContentList;
			//List<MMUnitUsageData> ThisWeekDayUsageData = RootsChilds.Childs[WMB.Basics.ShortWeekDayNames[WeekDay]].ContentList;

			//Description.NamesOfLocalToDownloadDescriptions = new List<string> ();
			//foreach (MMUnitUsageData UsageData in DownloadEntriesStandBildUsageData)
			//	{
			//	Description.NamesOfLocalToDownloadDescriptions.Add(UsageData.PackageFileNamePart);
			//	}
			//foreach (MMUnitUsageData UsageData in AllDayUsageData)
			//	{
			//	Description.NamesOfTodayActiveDescriptions.Add(UsageData.PackageFileNamePart);
			//	}
			//foreach (MMUnitUsageData UsageData in ThisWeekDayUsageData)
			//	{
			//	Description.NamesOfTodayActiveDescriptions.Add(UsageData.PackageFileNamePart);
			//	}

			Description.NamesOfTodayActiveDescriptions = new List<string>();
			foreach (MMUnitUsageData UsageData in AvtiveThisDayParameter[DateTimeToHandle])
				{
				Description.NamesOfTodayActiveDescriptions.Add(UsageData.PackageFileNamePart);
				}

			foreach (String PackageFileName in Description.NamesOfTodayActiveDescriptions)
			{
			bool Found = false;
			foreach (FileInfo FInfo in ExistingFiles)
				{
				if (FInfo.Name.ToLower () == Path.GetFileName (PackageFileName).ToLower ())
					Found = true;
				}
			if (!Found)
				{
				WMB.Basics.ReportErrorToEventViewer("WPMediaCentralService.CreateStandbildPlayingData",
					"Der PackageFile \"" + PackageFileName + "\" fehlt");
				}
			}
		int SkipLength = PackageFilesRootDirectory.Length + 1 - "Source\\".Length;

		if (WMB.Basics.IsTestRun)
			WMB.Basics.ReportInformationToEventViewer ("WPMediaCentralServices.CreateStandbildPlayingData",
			    "NamesOfLocalToDownloadDescriptions = " + Convert.ToString (Description.NamesOfLocalToDownloadDescriptions.Count)
			    + "\r\nNamesOfTodayActiveDescriptions = " + Convert.ToString (Description.NamesOfTodayActiveDescriptions.Count));
	
		String EntryTimingType = tableDefinitionRow[CVM.CommonValues.WPMEDIA_ENTRY_TIMING_TYPE].ToString();
		String PlayingOrder = tableDefinitionRow [CVM.CommonValues.WPMEDIA_ENTRY_PLAYING_ORDER].ToString ();
		double EntryDuration = 8;
		if (tableDefinitionRow [CVM.CommonValues.WPMEDIA_ENTRY_ENTRY_DURATION] != null)
			{
			if (!String.IsNullOrEmpty (tableDefinitionRow [CVM.CommonValues.WPMEDIA_ENTRY_ENTRY_DURATION].ToString ()))
				EntryDuration = Convert.ToDouble (tableDefinitionRow [CVM.CommonValues.WPMEDIA_ENTRY_ENTRY_DURATION]);
			}
		double OutsideSetDuration = -1;
		if (tableDefinitionRow [CVM.CommonValues.WPMEDIA_OUTSIDE_SET_DURATION] != null)
			{
			if (!String.IsNullOrEmpty (tableDefinitionRow [CVM.CommonValues.WPMEDIA_OUTSIDE_SET_DURATION].ToString ()))
				OutsideSetDuration = Convert.ToDouble (tableDefinitionRow [CVM.CommonValues.WPMEDIA_OUTSIDE_SET_DURATION]);
			}
		String MeaningOfOutsideSetDuration = tableDefinitionRow [CVM.CommonValues.WPMEDIA_MEANING_OF_OUTSIDE_SET_DURATION].ToString ();
		Description.TableName = TableName;
		Description.TableDefinitionTable = tableDefinitionRow.Table.Clone ();
		DataRow TableDefinitionRow = Description.TableDefinitionTable.NewRow ();
		TableDefinitionRow.ItemArray = tableDefinitionRow.ItemArray;
		Description.TableDefinitionTable.Rows.Add (TableDefinitionRow);
		Description.NameOfProcessingModule = tableDefinitionRow ["Type"].ToString ();

		Description.NamesOfActiveDescriptions = new List<string> ();
		Description.SortFields = new List<string> ();
		Description.LastWriteTimesOfNamesOfActiveDescriptions = new List<DateTime> ();
		Description.PlayLengthOfEachDescription = new List<TimeSpan> ();
		Description.NumberOfPagesOfEachDescription = new List<int> ();
		Description.NameOfPlayingDataDescription = TableName;
		Description.OverallPlayLength = 0;
		int OverallNumberOfPictures = 0;
		String TableType = tableDefinitionRow [CVM.CommonValues.WPMEDIA_ENTRY_TYPE_OF_TABLE].ToString ();
		ManagedTimingsControl TimingsCheckerClass = new ManagedTimingsControl ();
		CVM.ITimingsInterface TimingsCheckerInterface = TimingsCheckerClass as ITimingsInterface;
		TimingsCheckerInterface.m_TimingsTypenDataSet = m_DataBase.GetCommonDataSet ("Select * from TimingTypen");
		foreach (String PackageFileName in Description.NamesOfTodayActiveDescriptions)
			{
			FileInfo Entry = new FileInfo(Path.Combine(PackageFilesRootDirectory, PackageFileName));
			String ID = Path.GetFileNameWithoutExtension (Entry.FullName);
			DataTable UsedTimings;
			if (TimingsCheckerInterface.IsActive (ID, out UsedTimings) == false)
				continue;
			int NumberOfPages = 0;
			String SortField = PlayingOrder;
			TimeSpan PlayLengthForThisEntry = TimeSpan.Zero;
			List <double> PageDurations = new List<double> ();

			GraphicsHandling GraphicsHandler = new GraphicsHandling (LocalWPMediaRoot);
			if (GraphicsHandler.GetInstatiatedPackage (Entry.FullName) == null)
				{
				WMB.Basics.ReportErrorToEventViewer("WPMediaCentralServices.CreateStandbildPlayingData",
					"Der File\r\n\"" + Entry.FullName + "\"\r\nkonnte nicht als gültiges Package aufgelöst werden.\r\n"
					+ "In der Folge werden damit Fehler auftreten");
				continue;
				}
			List<TimeSpan> DurationForEachPage = new List<TimeSpan> ();
			foreach (double PageDuration in GraphicsHandler.PageDurations)
				{
				PlayLengthForThisEntry += TimeSpan.FromSeconds(PageDuration);
				DurationForEachPage.Add(TimeSpan.FromSeconds(PageDuration));
				}
			SortField = GraphicsHandler.GetFilledSortField (SortField);
			NumberOfPages = GraphicsHandler.PageDurations.Count;
			GraphicsHandler.Close ();
			Description.StandBildTVVersion = "PKG_Version";
			Description.DurationOfEachPageInEachDescription.Add (DurationForEachPage);
			Description.FillTimingsForEachDescription (ID, UsedTimings);

			if ((NumberOfPages == 0)
				|| (PlayLengthForThisEntry == TimeSpan.Zero))
				{
				WMB.Basics.ReportErrorToEventViewer ("WPMediaCentralServices.CreateStandbildPlayingData",
					Entry.FullName + " in der Table \"" + TableName + "\" hat eine PlayLength von 0");
				continue;
				}
			Description.NamesOfActiveDescriptions.Add (Entry.FullName.Substring (SkipLength));
			if (String.IsNullOrEmpty(Description.SubDirectoryWhereTheDescriptionsAreLocated))
				{
				Description.SubDirectoryWhereTheDescriptionsAreLocated = Path.GetDirectoryName
					(Entry.FullName.Substring (SkipLength));
				}
			
			Description.LastWriteTimesOfNamesOfActiveDescriptions.Add (Entry.LastWriteTime);
			Description.SortFields.Add (SortField);
			Description.NumberOfPagesOfEachDescription.Add (NumberOfPages);
			OverallNumberOfPictures += NumberOfPages;
			Description.OverallPlayLength += PlayLengthForThisEntry.TotalSeconds;
			Description.PlayLengthOfEachDescription.Add (PlayLengthForThisEntry);
			}
		if (OutsideSetDuration > 0)
			{
			if (MeaningOfOutsideSetDuration == CVM.CommonValues.WPMEDIA_MEANING_OF_OUTSIDE_SET_DURATION_MAX)
				if (OutsideSetDuration < Description.OverallPlayLength)
					Description.OverallPlayLength = OutsideSetDuration;
			if (MeaningOfOutsideSetDuration == CVM.CommonValues.WPMEDIA_MEANING_OF_OUTSIDE_SET_DURATION_FIX)
				Description.OverallPlayLength = OutsideSetDuration;
			}
		Description.OverallNumberOfPicturesToShow = OverallNumberOfPictures;
		String ControlFileName = Description.TableName;
		if (tableDefinitionRow ["DefinitionNameToCreate"] != Convert.DBNull)
			if (!String.IsNullOrEmpty (tableDefinitionRow ["DefinitionNameToCreate"].ToString ()))
				ControlFileName = tableDefinitionRow ["DefinitionNameToCreate"].ToString ();
//TODO	String PlayingDataDirectory = Path.Combine(LocalWPMediaRoot, XML_SENDER_AUTO_CONTROL_DIRECTORY);
		String PlayingDataDirectory = Path.Combine(WPMediaServerRootDirectory, XML_SENDER_AUTO_CONTROL_DIRECTORY);
		if (!Directory.Exists (PlayingDataDirectory))
			Directory.CreateDirectory (PlayingDataDirectory);
		String FileName = Path.Combine (PlayingDataDirectory, ControlFileName + AUTO_CONTROL_FILE_EXT_EXTENSION_SHORT);
		Description.FillIndexIndizess ();
		WPMediaStandbildPlayingData EarlierDescription
			= GetWPMediaStandbildPlayingDataFromAssembledFile (FileName);
//		EarlierDescription.ClearAllRandomElements();
		if (PlayingDataObjectsAreEqual(EarlierDescription, Description))
			return;

		MemoryStream ContentOfPlayingData = AssembleContentOfPlayingData(Description,
			Convert.ToString(Description.OverallPlayLength), Description.TableName, "StandbildTV");
		bool CorrectDeleted = true;
		if (File.Exists (FileName))
			{
			CorrectDeleted = CommonDataBase.CommonBasics.SecureFileDelete (FileName, null);
			}
		if (CorrectDeleted)
			{
			FileStream TargetFile = File.Open (FileName, FileMode.Create, FileAccess.Write);
			ContentOfPlayingData.WriteTo(TargetFile);
			TargetFile.Close ();
			}
		ContentOfPlayingData.Close ();
		}
		object CreateMultiTableEnvironmentCall (Object ActiveCVM, string [] Argumente)
			{
			WPMediaManagement.SingletonManagedProgrammManagement.Instance.CheckForLoad ();
			SingletonManagedProgrammManagement.Instance.SetInUse = true;
			CVM.WPMediaStandbildPlayingData PlayingData = new WPMediaStandbildPlayingData ();
			PlayingData.SubDirectoryWhereTheDescriptionsAreLocated = Path.Combine (WMB.Basics.GetLocalWPMediaRoot (),
			                                                                       WMB.Basics.XML_AUTO_CONTENT_SOURCE);
			PlayingData.TableName = ManagedProgrammData.Type_MultipleTable;
			PlayingData.TableDefinitionTable = WPMediaManagement.SingletonManagedProgrammManagement
			                                                    .Instance.ActuallManagedProgrammManagement.ActuallProgrammData
			                                                    .ProgrammDataSet.Tables ["TableDefinitions"];
			String BeitragsID = (ActiveCVM as CVM.CommonValues).m_Arguments ["VideoBeitragsID"];
			DataSet BeitragsDataSet = WPMediaManagement.SingletonManagedProgrammManagement
			                                           .Instance.ActuallManagedProgrammManagement.ActuallProgrammData
			                                           .FullBeitragList [BeitragsID];
			DataTable StructuredMaterial = BeitragsDataSet.Tables ["StructuredMaterial"];
			PlayingData.StandBildTVVersion = "PKG_Version";
			PlayingData.NamesOfActiveDescriptions = new List<string> ();
			PlayingData.LastWriteTimesOfNamesOfActiveDescriptions = new List<DateTime> ();
			PlayingData.PlayLengthOfEachDescription = new List<TimeSpan> ();
			PlayingData.SortFields = new List<string> ();
			PlayingData.NumberOfPagesOfEachDescription = new List<int> ();
			int RunningIndex = 0;
			List<int> FileIndizessesToPlay = new List<int> ();
			foreach (String EntryToPlay in Argumente [0].Split (';'))
				{
				PlayingData.NamesOfActiveDescriptions.Add (EntryToPlay);
				String ID = Path.GetFileNameWithoutExtension (EntryToPlay);
				String TableName = Path.GetFileName (Path.GetDirectoryName (EntryToPlay));
				DataRow [] MaterialRows = StructuredMaterial.Select ("ID = '" + ID + "'");
				if (MaterialRows.Length != 1)
					continue;
				if (MaterialRows [0] ["NumberOfPages"] != Convert.DBNull)
					PlayingData.NumberOfPagesOfEachDescription.Add (Convert.ToInt32 (MaterialRows [0] ["NumberOfPages"]));
				else
					PlayingData.NumberOfPagesOfEachDescription.Add (1);
				if (MaterialRows [0] ["PlayingDurationInSeconds"] != Convert.DBNull)
					PlayingData.PlayLengthOfEachDescription.Add (TimeSpan.FromSeconds(Convert.ToDouble
						(MaterialRows [0] ["PlayingDurationInSeconds"].ToString ().Replace (".", ","))));
				else
					PlayingData.PlayLengthOfEachDescription.Add(TimeSpan.FromSeconds( 12));
				FileIndizessesToPlay.Add (RunningIndex++);
				}
			PlayingData.SetFileIndizessesToPlay (FileIndizessesToPlay);

			SingletonManagedProgrammManagement.Instance.SetInUse = false;

			return PlayingData;
			}