//Assuming Master is ready //Assuming Slaves are in a heuristic loadable state public void ResetHeuristics() { if (ResettingHeuristics != null) { ResettingHeuristics(this, null); } HeuristicManager.StopMonitoring(); HeuristicManager.Clear(); if (HeuristicMasterMedia != null) { HeuristicManager.AddSmoothStreamingMediaElement(HeuristicMasterMedia, HeuristicSettings.PrimaryMinBitRate, HeuristicSettings.PrimaryMinFrameRate); // TODO: determin min values depending on size of master foreach (SlaveMediaElement slave in SubMediaElements) { if (slave.MediaElement != HeuristicMasterMedia) { // reset current heuristic enabled flag slave.IsPhysicalSyncEnabled = false; //if (slave.IsLogicalSyncEnabled) // does it logically needed to be playing, if so, add it to HM //{ if (slave.MediaElement != null) { HeuristicManager.AddSmoothStreamingMediaElement(slave.MediaElement, HeuristicSettings.SecondaryMinBitRate, HeuristicSettings.SecondaryMinFrameRate); } } } HeuristicManager.StartMonitoring(); } }