From 60ea41c5384a596f3e22990a3557f070a96314f8 Mon Sep 17 00:00:00 2001 From: Sangchul Lee Date: Wed, 25 Jan 2017 14:20:37 +0900 Subject: [PATCH] [AudioManager] Add a property to get current playback volume type, revise descriptions Change-Id: I567a846354c4191dfce0656a6e1b917cf0cde429 Signed-off-by: Sangchul Lee --- .../AudioManager/AudioManagerEnumerations.cs | 25 ++++++++++++---------- src/Tizen.Multimedia/AudioManager/AudioVolume.cs | 20 +++++++++++++++-- src/Tizen.Multimedia/Interop/Interop.Volume.cs | 3 +++ 3 files changed, 35 insertions(+), 13 deletions(-) diff --git a/src/Tizen.Multimedia/AudioManager/AudioManagerEnumerations.cs b/src/Tizen.Multimedia/AudioManager/AudioManagerEnumerations.cs index 5a08957..6b50ee2 100755 --- a/src/Tizen.Multimedia/AudioManager/AudioManagerEnumerations.cs +++ b/src/Tizen.Multimedia/AudioManager/AudioManagerEnumerations.cs @@ -134,41 +134,44 @@ namespace Tizen.Multimedia } /// - /// Enumeration for audio type. + /// Enumeration for audio volume type. /// public enum AudioVolumeType { /// - /// Audio type for system + /// Volume type for system /// System, /// - /// Audio type for notifications + /// Volume type for notification /// Notification, /// - /// Audio type for alarm + /// Volume type for alarm /// Alarm, /// - /// Audio type for ringtones + /// Volume type for ringtone /// Ringtone, /// - /// Audio type for media + /// Volume type for media /// Media, + /// + /// Volume type for call + /// Call, /// - /// Audio type for voip + /// Volume type for voip /// Voip, /// - /// Audio type for voice + /// Volume type for voice /// Voice, /// - /// Audio type None + /// Volume type None /// None } @@ -299,8 +302,8 @@ namespace Tizen.Multimedia ///Focus state for acquisition /// Acquired - } - + } + /// /// Enumeration for audio stream behavior /// diff --git a/src/Tizen.Multimedia/AudioManager/AudioVolume.cs b/src/Tizen.Multimedia/AudioManager/AudioVolume.cs index c4a0921..7f01942 100755 --- a/src/Tizen.Multimedia/AudioManager/AudioVolume.cs +++ b/src/Tizen.Multimedia/AudioManager/AudioVolume.cs @@ -59,6 +59,22 @@ namespace Tizen.Multimedia } /// + /// The Audio Manager has predefined volume types.(system, notification, alarm, ringtone, media, call, voip, voice). + /// The volume type of the sound being currently played. + /// + public AudioVolumeType CurrentPlaybackType { + get { + AudioVolumeType currentType; + int ret = Interop.AudioVolume.GetCurrentSoundType(out currentType); + if(ret != 0) { + Tizen.Log.Info(AudioVolumeLog.Tag, "Unable to get current playback sound type" + (AudioManagerError)ret); + return AudioVolumeType.None; + } + return currentType; + } + } + + /// /// The indexer class which is used to get/set volume level specified for a particular sound type. /// public VolumeLevel Level; @@ -75,7 +91,7 @@ namespace Tizen.Multimedia _volumeChanged.Invoke(this, eventArgs); }; int error = Interop.AudioVolume.AddVolumeChangedCallback(_volumeChangedCallback, IntPtr.Zero, out _volumeChangedCallbackId); - Tizen.Log.Info(AudioVolumeLog.Tag, "VolumeController Changed Event return:" + error); + Tizen.Log.Info(AudioVolumeLog.Tag, "VolumeController Add Changed Event return id:" + _volumeChangedCallbackId + "error:" + error); AudioManagerErrorFactory.CheckAndThrowException(error, "unable to add level changed callback"); } @@ -83,7 +99,7 @@ namespace Tizen.Multimedia { if (_volumeChangedCallbackId > 0) { int error = Interop.AudioVolume.RemoveVolumeChangedCallback(_volumeChangedCallbackId); - Tizen.Log.Info(AudioVolumeLog.Tag, "VolumeController Changed remove Event return: " + error); + Tizen.Log.Info(AudioVolumeLog.Tag, "VolumeController Remove Changed Event(id:" + _volumeChangedCallbackId + ") return error: " + error); AudioManagerErrorFactory.CheckAndThrowException(error, "unable to remove level changed callback"); } } diff --git a/src/Tizen.Multimedia/Interop/Interop.Volume.cs b/src/Tizen.Multimedia/Interop/Interop.Volume.cs index 43975f9..b40fdf0 100755 --- a/src/Tizen.Multimedia/Interop/Interop.Volume.cs +++ b/src/Tizen.Multimedia/Interop/Interop.Volume.cs @@ -18,6 +18,9 @@ internal static partial class Interop [DllImportAttribute(Libraries.SoundManager, EntryPoint = "sound_manager_get_volume")] internal static extern int GetVolume(AudioVolumeType type, out int volume); + [DllImportAttribute(Libraries.SoundManager, EntryPoint = "sound_manager_get_current_sound_type")] + internal static extern int GetCurrentSoundType(out AudioVolumeType type); + [DllImportAttribute(Libraries.SoundManager, EntryPoint = "sound_manager_add_volume_changed_cb")] internal static extern int AddVolumeChangedCallback(SoundManagerVolumeChangedCallback callback, IntPtr userData, out int id); -- 2.7.4