internal psai.net.Soundtrack CreatePsaiDotNetVersion(PsaiProject parentProject) { psai.net.Soundtrack netSoundtrack = new psai.net.Soundtrack(); foreach (Theme theme in Themes) netSoundtrack.m_themes.Add(theme.Id, theme.CreatePsaiDotNetVersion()); foreach (Segment segment in Segments) netSoundtrack.m_snippets.Add(segment.Id, segment.CreatePsaiDotNetVersion(parentProject)); return netSoundtrack; }
internal psai.net.Soundtrack CreatePsaiDotNetVersion(PsaiProject parentProject) { psai.net.Soundtrack netSoundtrack = new psai.net.Soundtrack(); foreach (Theme theme in Themes) { netSoundtrack.m_themes.Add(theme.Id, theme.CreatePsaiDotNetVersion()); } foreach (Segment segment in Segments) { netSoundtrack.m_snippets.Add(segment.Id, segment.CreatePsaiDotNetVersion(parentProject)); } return(netSoundtrack); }
// Needs to be called before each audit, in case..: // 1. a segment suitability has changed // 2. a theme type has changed // 3. a compatibility has changed // 4. a segment has been deleted public psai.net.Soundtrack BuildPsaiDotNetSoundtrackFromProject() { psai.net.Soundtrack soundtrack = new psai.net.Soundtrack(); foreach (Theme theme in Themes) { // special treatment for Highlights: We set each Segment Suitabilities for Start, Middle and End. // Otherwise the compatibiliy algorithms would mark some Segment transitions as logically_impossible. if (theme.ThemeTypeInt == (int)psai.net.ThemeType.highlightLayer) { HashSet <Segment> allSegmentsOfHighlightTheme = theme.GetSegmentsOfAllGroups(); foreach (Segment segment in allSegmentsOfHighlightTheme) { segment.IsUsableAtEnd = true; segment.IsUsableInMiddle = true; segment.IsUsableAtEnd = true; } } soundtrack.m_themes.Add(theme.Id, theme.CreatePsaiDotNetVersion()); } HashSet <Segment> segmentSet = GetSegmentsOfAllThemes(); foreach (Segment segment in segmentSet) { segment.BuildCompatibleSegmentsSet(this); psai.net.Segment netSegment = segment.CreatePsaiDotNetVersion(this); soundtrack.m_snippets.Add(netSegment.Id, netSegment); psai.net.Theme theme = soundtrack.getThemeById(netSegment.ThemeId); theme.m_segments.Add(netSegment); } //ProtoBuf_PsaiCoreSoundtrack pbSoundtrack = psaiBinarySoundtrack.CreateProtoBuf(); //result = new psai.net.Soundtrack(pbSoundtrack); //result = psaiBinarySoundtrack.CreatePsaiDotNetVersion(this); soundtrack.BuildAllIndirectionSequences(); return(soundtrack); }
// Needs to be called before each audit, in case..: // 1. a segment suitability has changed // 2. a theme type has changed // 3. a compatibility has changed // 4. a segment has been deleted public psai.net.Soundtrack BuildPsaiDotNetSoundtrackFromProject() { psai.net.Soundtrack soundtrack = new psai.net.Soundtrack(); foreach (Theme theme in Themes) { // special treatment for Highlights: We set each Segment Suitabilities for Start, Middle and End. // Otherwise the compatibiliy algorithms would mark some Segment transitions as logically_impossible. if (theme.ThemeTypeInt == (int)psai.net.ThemeType.highlightLayer) { HashSet<Segment> allSegmentsOfHighlightTheme = theme.GetSegmentsOfAllGroups(); foreach (Segment segment in allSegmentsOfHighlightTheme) { segment.IsUsableAtEnd = true; segment.IsUsableInMiddle = true; segment.IsUsableAtEnd = true; } } soundtrack.m_themes.Add(theme.Id, theme.CreatePsaiDotNetVersion()); } HashSet<Segment> segmentSet = GetSegmentsOfAllThemes(); foreach (Segment segment in segmentSet) { segment.BuildCompatibleSegmentsSet(this); psai.net.Segment netSegment = segment.CreatePsaiDotNetVersion(this); soundtrack.m_snippets.Add(netSegment.Id, netSegment); psai.net.Theme theme = soundtrack.getThemeById(netSegment.ThemeId); theme.m_segments.Add(netSegment); } //ProtoBuf_PsaiCoreSoundtrack pbSoundtrack = psaiBinarySoundtrack.CreateProtoBuf(); //result = new psai.net.Soundtrack(pbSoundtrack); //result = psaiBinarySoundtrack.CreatePsaiDotNetVersion(this); soundtrack.BuildAllIndirectionSequences(); return soundtrack; }