/// <summary> /// Start show subtitles of specified AudioClip /// </summary> /// <param name="clip">AudioClip to show it's subtitles (must be exists in Dictionaries)</param> public void Show(AudioClip clip) { if (clip != null) { _Queue.Clear(); Dictionary dictionary = null; AudioClipSubtitle at = GetSubtitle(clip, out dictionary); if (at != null) { if (at.Titles.Length > 0) { if (at.Titles.Length > 1) { Skill.Framework.Utility.QuickSort(at.Titles, SubtitleComparer.Instance); } for (int i = 0; i < at.Titles.Length; i++) { SubTime st = new SubTime(); st.Time = Time.time + at.Titles[i].Time; st.Title = at.Titles[i]; _Queue.Enqueue(st); } } } } }
private AudioField CreateAudioField(AudioClipSubtitle title) { AudioField af = new AudioField(this, title); _Fields.Add(af); _AudioList.Controls.Add(af); return(af); }
private bool IsAudioClipSubtitleExistInSubtitles(AudioClipSubtitle subtitle) { foreach (var k in _Dictionary.Subtitles) { if (k == subtitle) { return(true); } } return(false); }
private bool IsAudioFieldExistWithSubtitle(AudioClipSubtitle subtitle) { foreach (AudioField af in _Fields) { if (af.Subtitle == subtitle) { return(true); } } return(false); }
private void RebuildSubtitles() { if (_Dictionary != null) { AudioClipSubtitle[] subtitles = new AudioClipSubtitle[_Fields.Count]; for (int i = 0; i < _Fields.Count; i++) { subtitles[i] = _Fields[i].Subtitle; } _Dictionary.SetSubtitles(subtitles); SetDirty2(); } }
public AudioField(DictionaryEditorWindow editor, AudioClipSubtitle subtitle) { this.Height = 18; this.Margin = new Skill.Framework.UI.Thickness(1); this._RefreshStyles = true; this.Subtitle = subtitle; this._Editor = editor; this.ColumnDefinitions.Add(1, Skill.Framework.UI.GridUnitType.Star); this.ColumnDefinitions.Add(18, Skill.Framework.UI.GridUnitType.Pixel); this.ColumnDefinitions.Add(18, Skill.Framework.UI.GridUnitType.Pixel); this.ColumnDefinitions.Add(16, Skill.Framework.UI.GridUnitType.Pixel); //this._Bg = new Skill.Framework.UI.Box() { Column = 0, ColumnSpan = 3 }; //this.Controls.Add(_Bg); this._LblClipName = new Skill.Framework.UI.Label() { Column = 0 }; UpdateTitle(); this.Controls.Add(_LblClipName); if (_ButtonStyle == null) { _ButtonStyle = new GUIStyle(); } this._BtnAddNext = new Skill.Framework.UI.Button() { Column = 1, Margin = new Skill.Framework.UI.Thickness(1), Style = _ButtonStyle }; this._BtnAddNext.Content.tooltip = "Add next"; this.Controls.Add(_BtnAddNext); this._BtnRemove = new Skill.Framework.UI.Button() { Column = 2, Margin = new Skill.Framework.UI.Thickness(1), Style = _ButtonStyle }; this._BtnRemove.Content.tooltip = "Remove"; this.Controls.Add(_BtnRemove); this._BtnAddNext.Click += _BtnAddNext_Click; this._BtnRemove.Click += _BtnRemove_Click; }
private void AddNext(AudioField audioField) { int index = _AudioList.Controls.IndexOf(audioField) + 1; if (index < 0) { index = 0; } AudioClipSubtitle newSub = new AudioClipSubtitle(); AudioField af = new AudioField(this, newSub); _Fields.Insert(index, af); _AudioList.Controls.Insert(index, af); _AudioList.SelectedItem = af; SetDirty2(); UpdateBtnNewVisibility(); RebuildSubtitles(); }
private AudioClipSubtitle GetSubtitle(AudioClip clip, out Dictionary dictionary) { if (Dictionaries != null && Dictionaries.Length > 0) { int instanceID = clip.GetInstanceID(); foreach (var d in Dictionaries) { if (d != null) { AudioClipSubtitle subtitle = d.GetSubtitle(instanceID); if (subtitle != null) { dictionary = d; return(subtitle); } } } } dictionary = null; return(null); }