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); } }
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; } }
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); }
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(); } }
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); }
protected virtual void OnModifications(WaveformPreview.MessageFlags changedFlags) { }
protected static bool HasFlag(WaveformPreview.MessageFlags flags, WaveformPreview.MessageFlags test) { return((flags & test) != WaveformPreview.MessageFlags.None); }