From caeb07e0d5dc8ab4d0444464f18c2df20c96af0f Mon Sep 17 00:00:00 2001 From: Lightning303 Date: Wed, 5 Nov 2014 02:50:13 +0100 Subject: [PATCH] Implemented GetChannelLevel method into ISpectrumPlayer --- .../Presentation/Players/ISpectrumPlayer.cs | 8 ++++++++ MediaPortal/Source/UI/Players/BassPlayer/BassPlayer.cs | 18 ++++++++++++++++++ 2 files changed, 26 insertions(+) diff --git a/MediaPortal/Source/Core/MediaPortal.UI/Presentation/Players/ISpectrumPlayer.cs b/MediaPortal/Source/Core/MediaPortal.UI/Presentation/Players/ISpectrumPlayer.cs index e8b0ae6..aa1881e 100644 --- a/MediaPortal/Source/Core/MediaPortal.UI/Presentation/Players/ISpectrumPlayer.cs +++ b/MediaPortal/Source/Core/MediaPortal.UI/Presentation/Players/ISpectrumPlayer.cs @@ -76,5 +76,13 @@ namespace MediaPortal.UI.Presentation.Players /// by method . /// true, if the FFT buffer was already created, else false. bool GetFFTFrequencyIndex(int frequency, out int frequencyIndex); + + /// + /// Gets the channel levels in dB. + /// + /// Field to copy the left channel level to + /// Field to copy the right channel level to + /// True if data was written, otherwise false. + bool GetChannelLevel(out double dbLevelL, out double dbLevelR); } } \ No newline at end of file diff --git a/MediaPortal/Source/UI/Players/BassPlayer/BassPlayer.cs b/MediaPortal/Source/UI/Players/BassPlayer/BassPlayer.cs index eaf5f8d..9d25d99 100644 --- a/MediaPortal/Source/UI/Players/BassPlayer/BassPlayer.cs +++ b/MediaPortal/Source/UI/Players/BassPlayer/BassPlayer.cs @@ -452,6 +452,24 @@ namespace MediaPortal.UI.Players.BassPlayer return true; } + public bool GetChannelLevel(out double dbLevelL, out double dbLevelR) + { + dbLevelL = 0f; + dbLevelR = 0f; + + BassStream vizStream = _controller.PlaybackProcessor.VizStream; + if (vizStream == null) + { + return false; + } + + int level = Bass.BASS_ChannelGetLevel(vizStream.Handle); + dbLevelL = Un4seen.Bass.Utils.LevelToDB(Un4seen.Bass.Utils.LowWord32(level), 65535); // the left level + dbLevelR = Un4seen.Bass.Utils.LevelToDB(Un4seen.Bass.Utils.HighWord32(level), 65535); // the right level + + return true; + } + #endregion } } -- 1.9.0.msysgit.0