コード例 #1
0
 public void SetTimeInfo(double start, double length)
 {
     if (start != this.m_Start || length != this.m_Length)
     {
         this.m_Start  = start;
         this.m_Length = length;
         this.m_Dirty  = true;
         this.m_Flags |= (WaveformPreview.MessageFlags.Length | WaveformPreview.MessageFlags.Start);
     }
 }
コード例 #2
0
 public void OptimizeForSize(Vector2 newSize)
 {
     newSize = new Vector2(Mathf.Ceil(newSize.x), Mathf.Ceil(newSize.y));
     if (newSize.x != this.m_Size.x)
     {
         this.m_Size   = newSize;
         this.m_Flags |= WaveformPreview.MessageFlags.Size;
         this.m_Dirty  = true;
     }
 }
コード例 #3
0
        protected override void OnModifications(WaveformPreview.MessageFlags cFlags)
        {
            bool flag = false;

            if (WaveformPreview.HasFlag(cFlags, WaveformPreview.MessageFlags.TextureChanged) || WaveformPreview.HasFlag(cFlags, WaveformPreview.MessageFlags.Size) || WaveformPreview.HasFlag(cFlags, WaveformPreview.MessageFlags.Length) || WaveformPreview.HasFlag(cFlags, WaveformPreview.MessageFlags.Looping))
            {
                this.KillAndClearStreamers();
                if (base.length <= 0.0)
                {
                    return;
                }
                StreamedAudioClipPreview.ClipPreviewDetails details = new StreamedAudioClipPreview.ClipPreviewDetails(this.m_Clip, base.looping, (int)base.Size.x, base.start, base.length);
                this.UploadPreview(details);
                if (details.IsCandidateForStreaming())
                {
                    flag = true;
                }
            }
            if (!base.optimized)
            {
                this.KillAndClearStreamers();
                flag = false;
            }
            else if (WaveformPreview.HasFlag(cFlags, WaveformPreview.MessageFlags.Optimization) && !flag)
            {
                StreamedAudioClipPreview.ClipPreviewDetails clipPreviewDetails = new StreamedAudioClipPreview.ClipPreviewDetails(this.m_Clip, base.looping, (int)base.Size.x, base.start, base.length);
                if (clipPreviewDetails.IsCandidateForStreaming())
                {
                    flag = true;
                }
            }
            if (flag)
            {
                this.m_StreamedSegments = this.CalculateAndStartStreamers(base.start, base.length);
                if (this.m_StreamedSegments != null && this.m_StreamedSegments.Length > 0)
                {
                    StreamedAudioClipPreview.Segment[] streamedSegments = this.m_StreamedSegments;
                    for (int i = 0; i < streamedSegments.Length; i++)
                    {
                        StreamedAudioClipPreview.Segment segment = streamedSegments[i];
                        if (!this.m_Contexts.ContainsKey(segment.streamer))
                        {
                            this.m_Contexts.Add(segment.streamer, new StreamedAudioClipPreview.StreamingContext());
                        }
                    }
                }
            }
            base.OnModifications(cFlags);
        }
コード例 #4
0
 public virtual void SetMMWaveData(int interleavedOffset, float[] data)
 {
     for (int i = 0; i < data.Length; i += 2)
     {
         int x = interleavedOffset % WaveformPreview.s_BaseTextureWidth;
         int y = interleavedOffset / WaveformPreview.s_BaseTextureWidth;
         this.m_Texture.SetPixel(x, y, new Color(data[i], data[i + 1], 0f, 0f));
         interleavedOffset++;
     }
     this.m_Dirty  = true;
     this.m_Flags |= WaveformPreview.MessageFlags.ContentsChanged;
     if (this.updated != null)
     {
         this.updated();
     }
 }
コード例 #5
0
        public bool ApplyModifications()
        {
            bool result;

            if (this.m_Dirty || this.m_Texture == null)
            {
                this.m_Flags |= ((!this.UpdateTexture((int)this.m_Size.x, this.m_Channels)) ? WaveformPreview.MessageFlags.None : WaveformPreview.MessageFlags.TextureChanged);
                this.OnModifications(this.m_Flags);
                this.m_Flags = WaveformPreview.MessageFlags.None;
                this.m_Texture.Apply();
                this.m_Dirty = false;
                result       = true;
            }
            else
            {
                result = false;
            }
            return(result);
        }
コード例 #6
0
 protected virtual void OnModifications(WaveformPreview.MessageFlags changedFlags)
 {
 }
コード例 #7
0
 protected static bool HasFlag(WaveformPreview.MessageFlags flags, WaveformPreview.MessageFlags test)
 {
     return((flags & test) != WaveformPreview.MessageFlags.None);
 }