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 } } }
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); } }