示例#1
0
        public Soundtrack(psai.ProtoBuf_PsaiCoreSoundtrack pbSoundtrack) : this()
        {
            for (int i = 0; i < pbSoundtrack.themes.Count; i++)
            {
                psai.ProtoBuf_Theme pbTheme = pbSoundtrack.themes[i];
                Theme tempTheme             = new Theme(pbTheme);
                m_themes[tempTheme.id] = tempTheme;
            }

            for (int i = 0; i < pbSoundtrack.snippets.Count; i++)
            {
                psai.ProtoBuf_Snippet pbSnippet = pbSoundtrack.snippets[i];
                Segment tempSnippet             = new Segment(pbSnippet);

                m_snippets[tempSnippet.Id] = tempSnippet;

                Theme tmpTheme = m_themes[tempSnippet.ThemeId];
                if (tmpTheme != null)
                {
                    tmpTheme.m_segments.Add(tempSnippet);
                }
                else
                {
                    #if !(PSAI_NOLOG)
                    {
                        if (LogLevel.errors <= Logger.Instance.LogLevel)
                        {
                            string s = "INTERNAL ERROR! could not find Theme for Theme id " + tempSnippet.ThemeId + " of snippet" + tempSnippet.Id;
                            Logger.Instance.Log(s, LogLevel.errors);
                        }
                    }
                    #endif
                }
            }
        }
示例#2
0
        public Segment(psai.ProtoBuf_Snippet pbSnippet) : this()
        {
            this.Id                  = pbSnippet.id;
            this.ThemeId             = pbSnippet.theme_id;
            this.Intensity           = pbSnippet.intensity;
            this.SnippetTypeBitfield = pbSnippet.snippet_type;
            this.Name                = pbSnippet.name;
            this.audioData           = new AudioData(pbSnippet.audio_data);

            for (int i = 0; i < pbSnippet.follower_id.Count; i++)
            {
                Follower follower = new Follower(pbSnippet.follower_id[i], pbSnippet.follower_compatibility[i]);
                this.Followers.Add(follower);
            }
        }