Exemplo n.º 1
0
 /// <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);
                 }
             }
         }
     }
 }
Exemplo n.º 2
0
        private AudioField CreateAudioField(AudioClipSubtitle title)
        {
            AudioField af = new AudioField(this, title);

            _Fields.Add(af);
            _AudioList.Controls.Add(af);
            return(af);
        }
Exemplo n.º 3
0
 private bool IsAudioClipSubtitleExistInSubtitles(AudioClipSubtitle subtitle)
 {
     foreach (var k in _Dictionary.Subtitles)
     {
         if (k == subtitle)
         {
             return(true);
         }
     }
     return(false);
 }
Exemplo n.º 4
0
 private bool IsAudioFieldExistWithSubtitle(AudioClipSubtitle subtitle)
 {
     foreach (AudioField af in _Fields)
     {
         if (af.Subtitle == subtitle)
         {
             return(true);
         }
     }
     return(false);
 }
Exemplo n.º 5
0
 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();
     }
 }
Exemplo n.º 6
0
            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;
            }
Exemplo n.º 7
0
        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();
        }
Exemplo n.º 8
0
 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);
 }