public override void OnPreviewSettings() { if (AudioClipInspector.s_DefaultIcon == null) { AudioClipInspector.Init(); } AudioClip audioClip = this.target as AudioClip; using (new EditorGUI.DisabledScope(AudioUtil.IsMovieAudio(audioClip))) { bool flag = base.targets.Length > 1; using (new EditorGUI.DisabledScope(flag)) { AudioClipInspector.m_bAutoPlay = (!flag && AudioClipInspector.m_bAutoPlay); AudioClipInspector.m_bAutoPlay = (PreviewGUI.CycleButton((!AudioClipInspector.m_bAutoPlay) ? 0 : 1, AudioClipInspector.s_AutoPlayIcons) != 0); } bool bLoop = AudioClipInspector.m_bLoop; AudioClipInspector.m_bLoop = (PreviewGUI.CycleButton((!AudioClipInspector.m_bLoop) ? 0 : 1, AudioClipInspector.s_LoopIcons) != 0); if (bLoop != AudioClipInspector.m_bLoop && this.playing) { AudioUtil.LoopClip(audioClip, AudioClipInspector.m_bLoop); } using (new EditorGUI.DisabledScope(flag && !this.playing)) { bool flag2 = PreviewGUI.CycleButton((!this.playing) ? 0 : 1, AudioClipInspector.s_PlayIcons) != 0; if (flag2 != this.playing) { if (flag2) { AudioUtil.PlayClip(audioClip, 0, AudioClipInspector.m_bLoop); this.m_PlayingClip = audioClip; } else { AudioUtil.StopAllClips(); this.m_PlayingClip = null; } } } } }
public override void OnPreviewSettings() { if ((UnityEngine.Object)AudioClipInspector.s_DefaultIcon == (UnityEngine.Object)null) { AudioClipInspector.Init(); } AudioClip target = this.target as AudioClip; EditorGUI.BeginDisabledGroup(AudioUtil.IsMovieAudio(target)); bool disabled = this.targets.Length > 1; EditorGUI.BeginDisabledGroup(disabled); AudioClipInspector.m_bAutoPlay = !disabled && AudioClipInspector.m_bAutoPlay; AudioClipInspector.m_bAutoPlay = PreviewGUI.CycleButton(!AudioClipInspector.m_bAutoPlay ? 0 : 1, AudioClipInspector.s_AutoPlayIcons) != 0; EditorGUI.EndDisabledGroup(); bool bLoop = AudioClipInspector.m_bLoop; AudioClipInspector.m_bLoop = PreviewGUI.CycleButton(!AudioClipInspector.m_bLoop ? 0 : 1, AudioClipInspector.s_LoopIcons) != 0; if (bLoop != AudioClipInspector.m_bLoop && this.playing) { AudioUtil.LoopClip(target, AudioClipInspector.m_bLoop); } EditorGUI.BeginDisabledGroup(disabled && !this.playing); bool flag = PreviewGUI.CycleButton(!this.playing ? 0 : 1, AudioClipInspector.s_PlayIcons) != 0; if (flag != this.playing) { if (flag) { AudioUtil.PlayClip(target, 0, AudioClipInspector.m_bLoop); this.m_PlayingClip = target; } else { AudioUtil.StopAllClips(); this.m_PlayingClip = (AudioClip)null; } } EditorGUI.EndDisabledGroup(); EditorGUI.EndDisabledGroup(); }
public override void OnPreviewGUI(Rect r, GUIStyle background) { if (AudioClipInspector.s_DefaultIcon == null) { AudioClipInspector.Init(); } AudioClip audioClip = base.target as AudioClip; Event current = Event.current; if (current.type != EventType.Repaint && current.type != EventType.Layout && current.type != EventType.Used) { int num = AudioUtil.GetSampleCount(audioClip) / (int)r.width; EventType type = current.type; if (type == EventType.MouseDrag || type == EventType.MouseDown) { if (r.Contains(current.mousePosition) && !AudioUtil.IsMovieAudio(audioClip)) { if (this.m_PlayingClip != audioClip) { AudioUtil.StopAllClips(); AudioUtil.PlayClip(audioClip, 0, AudioClipInspector.m_bLoop); this.m_PlayingClip = audioClip; } AudioUtil.SetClipSamplePosition(audioClip, num * (int)current.mousePosition.x); current.Use(); } } } else { if (Event.current.type == EventType.Repaint) { background.Draw(r, false, false, false, false); } int channelCount = AudioUtil.GetChannelCount(audioClip); AudioClipInspector.m_wantedRect = new Rect(r.x, r.y, r.width, r.height); float num2 = AudioClipInspector.m_wantedRect.width / audioClip.length; if (!AudioUtil.HasPreview(audioClip) && (AudioUtil.IsTrackerFile(audioClip) || AudioUtil.IsMovieAudio(audioClip))) { float num3 = (r.height <= 150f) ? (r.y + r.height / 2f - 25f) : (r.y + r.height / 2f - 10f); if (r.width > 64f) { if (AudioUtil.IsTrackerFile(audioClip)) { EditorGUI.DropShadowLabel(new Rect(r.x, num3, r.width, 20f), string.Format("Module file with " + AudioUtil.GetMusicChannelCount(audioClip) + " channels.", new object[0])); } else if (AudioUtil.IsMovieAudio(audioClip)) { if (r.width > 450f) { EditorGUI.DropShadowLabel(new Rect(r.x, num3, r.width, 20f), "Audio is attached to a movie. To audition the sound, play the movie."); } else { EditorGUI.DropShadowLabel(new Rect(r.x, num3, r.width, 20f), "Audio is attached to a movie."); EditorGUI.DropShadowLabel(new Rect(r.x, num3 + 10f, r.width, 20f), "To audition the sound, play the movie."); } } else { EditorGUI.DropShadowLabel(new Rect(r.x, num3, r.width, 20f), "Can not show PCM data for this file"); } } if (this.m_PlayingClip == audioClip) { float clipPosition = AudioUtil.GetClipPosition(audioClip); TimeSpan timeSpan = new TimeSpan(0, 0, 0, 0, (int)(clipPosition * 1000f)); EditorGUI.DropShadowLabel(new Rect(AudioClipInspector.m_wantedRect.x, AudioClipInspector.m_wantedRect.y, AudioClipInspector.m_wantedRect.width, 20f), string.Format("Playing - {0:00}:{1:00}.{2:000}", timeSpan.Minutes, timeSpan.Seconds, timeSpan.Milliseconds)); } } else { PreviewGUI.BeginScrollView(AudioClipInspector.m_wantedRect, this.m_Position, AudioClipInspector.m_wantedRect, "PreHorizontalScrollbar", "PreHorizontalScrollbarThumb"); if (Event.current.type == EventType.Repaint) { this.DoRenderPreview(audioClip, AudioUtil.GetImporterFromClip(audioClip), AudioClipInspector.m_wantedRect, 1f); } for (int i = 0; i < channelCount; i++) { if (channelCount > 1 && r.width > 64f) { Rect position = new Rect(AudioClipInspector.m_wantedRect.x + 5f, AudioClipInspector.m_wantedRect.y + AudioClipInspector.m_wantedRect.height / (float)channelCount * (float)i, 30f, 20f); EditorGUI.DropShadowLabel(position, "ch " + (i + 1).ToString()); } } if (this.m_PlayingClip == audioClip) { float clipPosition2 = AudioUtil.GetClipPosition(audioClip); TimeSpan timeSpan2 = new TimeSpan(0, 0, 0, 0, (int)(clipPosition2 * 1000f)); GUI.DrawTexture(new Rect(AudioClipInspector.m_wantedRect.x + (float)((int)(num2 * clipPosition2)), AudioClipInspector.m_wantedRect.y, 2f, AudioClipInspector.m_wantedRect.height), EditorGUIUtility.whiteTexture); if (r.width > 64f) { EditorGUI.DropShadowLabel(new Rect(AudioClipInspector.m_wantedRect.x, AudioClipInspector.m_wantedRect.y, AudioClipInspector.m_wantedRect.width, 20f), string.Format("{0:00}:{1:00}.{2:000}", timeSpan2.Minutes, timeSpan2.Seconds, timeSpan2.Milliseconds)); } else { EditorGUI.DropShadowLabel(new Rect(AudioClipInspector.m_wantedRect.x, AudioClipInspector.m_wantedRect.y, AudioClipInspector.m_wantedRect.width, 20f), string.Format("{0:00}:{1:00}", timeSpan2.Minutes, timeSpan2.Seconds)); } if (!AudioUtil.IsClipPlaying(audioClip)) { this.m_PlayingClip = null; } } PreviewGUI.EndScrollView(); } if (AudioClipInspector.m_bPlayFirst) { AudioUtil.PlayClip(audioClip, 0, AudioClipInspector.m_bLoop); this.m_PlayingClip = audioClip; AudioClipInspector.m_bPlayFirst = false; } if (this.playing) { GUIView.current.Repaint(); } } }
public override void OnPreviewGUI(Rect r, GUIStyle background) { if ((UnityEngine.Object)AudioClipInspector.s_DefaultIcon == (UnityEngine.Object)null) { AudioClipInspector.Init(); } AudioClip target = this.target as AudioClip; Event current = Event.current; if (current.type != EventType.Repaint && current.type != EventType.Layout && current.type != EventType.Used) { int num = AudioUtil.GetSampleCount(target) / (int)r.width; switch (current.type) { case EventType.MouseDown: case EventType.MouseDrag: if (!r.Contains(current.mousePosition) || AudioUtil.IsMovieAudio(target)) { break; } if ((UnityEngine.Object) this.m_PlayingClip != (UnityEngine.Object)target) { AudioUtil.StopAllClips(); AudioUtil.PlayClip(target, 0, AudioClipInspector.m_bLoop); this.m_PlayingClip = target; } AudioUtil.SetClipSamplePosition(target, num * (int)current.mousePosition.x); current.Use(); break; } } else { if (Event.current.type == EventType.Repaint) { background.Draw(r, false, false, false, false); } int channelCount = AudioUtil.GetChannelCount(target); AudioClipInspector.m_wantedRect = new Rect(r.x, r.y, r.width, r.height); float num = AudioClipInspector.m_wantedRect.width / target.length; if (!AudioUtil.HasPreview(target) && (AudioUtil.IsTrackerFile(target) ? 1 : (AudioUtil.IsMovieAudio(target) ? 1 : 0)) != 0) { float y = (double)r.height <= 150.0 ? (float)((double)r.y + (double)r.height / 2.0 - 25.0) : (float)((double)r.y + (double)r.height / 2.0 - 10.0); if ((double)r.width > 64.0) { if (AudioUtil.IsTrackerFile(target)) { EditorGUI.DropShadowLabel(new Rect(r.x, y, r.width, 20f), string.Format("Module file with " + (object)AudioUtil.GetMusicChannelCount(target) + " channels.")); } else if (AudioUtil.IsMovieAudio(target)) { if ((double)r.width > 450.0) { EditorGUI.DropShadowLabel(new Rect(r.x, y, r.width, 20f), "Audio is attached to a movie. To audition the sound, play the movie."); } else { EditorGUI.DropShadowLabel(new Rect(r.x, y, r.width, 20f), "Audio is attached to a movie."); EditorGUI.DropShadowLabel(new Rect(r.x, y + 10f, r.width, 20f), "To audition the sound, play the movie."); } } else { EditorGUI.DropShadowLabel(new Rect(r.x, y, r.width, 20f), "Can not show PCM data for this file"); } } if ((UnityEngine.Object) this.m_PlayingClip == (UnityEngine.Object)target) { TimeSpan timeSpan = new TimeSpan(0, 0, 0, 0, (int)((double)AudioUtil.GetClipPosition(target) * 1000.0)); EditorGUI.DropShadowLabel(new Rect(AudioClipInspector.m_wantedRect.x, AudioClipInspector.m_wantedRect.y, AudioClipInspector.m_wantedRect.width, 20f), string.Format("Playing - {0:00}:{1:00}.{2:000}", (object)timeSpan.Minutes, (object)timeSpan.Seconds, (object)timeSpan.Milliseconds)); } } else { PreviewGUI.BeginScrollView(AudioClipInspector.m_wantedRect, this.m_Position, AudioClipInspector.m_wantedRect, (GUIStyle)"PreHorizontalScrollbar", (GUIStyle)"PreHorizontalScrollbarThumb"); if (Event.current.type == EventType.Repaint) { this.DoRenderPreview(target, AudioUtil.GetImporterFromClip(target), AudioClipInspector.m_wantedRect, 1f); } for (int index = 0; index < channelCount; ++index) { if (channelCount > 1 && (double)r.width > 64.0) { EditorGUI.DropShadowLabel(new Rect(AudioClipInspector.m_wantedRect.x + 5f, AudioClipInspector.m_wantedRect.y + AudioClipInspector.m_wantedRect.height / (float)channelCount * (float)index, 30f, 20f), "ch " + (index + 1).ToString()); } } if ((UnityEngine.Object) this.m_PlayingClip == (UnityEngine.Object)target) { float clipPosition = AudioUtil.GetClipPosition(target); TimeSpan timeSpan = new TimeSpan(0, 0, 0, 0, (int)((double)clipPosition * 1000.0)); GUI.DrawTexture(new Rect(AudioClipInspector.m_wantedRect.x + (float)(int)((double)num * (double)clipPosition), AudioClipInspector.m_wantedRect.y, 2f, AudioClipInspector.m_wantedRect.height), (Texture)EditorGUIUtility.whiteTexture); if ((double)r.width > 64.0) { EditorGUI.DropShadowLabel(new Rect(AudioClipInspector.m_wantedRect.x, AudioClipInspector.m_wantedRect.y, AudioClipInspector.m_wantedRect.width, 20f), string.Format("{0:00}:{1:00}.{2:000}", (object)timeSpan.Minutes, (object)timeSpan.Seconds, (object)timeSpan.Milliseconds)); } else { EditorGUI.DropShadowLabel(new Rect(AudioClipInspector.m_wantedRect.x, AudioClipInspector.m_wantedRect.y, AudioClipInspector.m_wantedRect.width, 20f), string.Format("{0:00}:{1:00}", (object)timeSpan.Minutes, (object)timeSpan.Seconds)); } if (!AudioUtil.IsClipPlaying(target)) { this.m_PlayingClip = (AudioClip)null; } } PreviewGUI.EndScrollView(); } if (AudioClipInspector.m_bPlayFirst) { AudioUtil.PlayClip(target, 0, AudioClipInspector.m_bLoop); this.m_PlayingClip = target; AudioClipInspector.m_bPlayFirst = false; } if (!this.playing) { return; } GUIView.current.Repaint(); } }