Example #1
0
        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;
        }
Example #2
0
        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);
        }
Example #3
0
        // 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);
        }
Example #4
0
        // 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;
        }