- /*
+/*
* Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved
*
* Licensed under the Apache License, Version 2.0 (the License);
namespace Tizen.Multimedia
{
- internal static class MaxVolumeLog
- {
- internal const string Tag = "Tizen.Multimedia.MaxVolume";
- }
-
/// <summary>
- /// This is a indexer class which is used to get the maximum volume level
- /// supported for a particular sound type.
+ /// Provides a means to get max volume levels.
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public class MaxVolumeLevel
{
- public int this [AudioVolumeType type] {
- get {
- if(type == AudioVolumeType.None)
- throw new ArgumentException("Wrong Audio volume type. Cannot get max volume level for AudioVolumeType.None");
- int maxVolume;
- int ret = Interop.AudioVolume.GetMaxVolume(type, out maxVolume);
- if(ret != 0) {
- Tizen.Log.Info(MaxVolumeLog.Tag, "Max Level Error: " + (AudioManagerError)ret);
- return -1;
+ internal MaxVolumeLevel()
+ {
+ }
+
+ /// <summary>
+ /// Gets the max volume level of the specified <see cref="AudioVolumeType"/>.
+ /// </summary>
+ /// <param name="type">The <see cref="AudioVolumeType"/> to query.</param>
+ /// <value>The maximum volume level.</value>
+ /// <exception cref="ArgumentException"><paramref name="type"/> is invalid.</exception>
+ /// <exception cref="ArgumentOutOfRangeException"><paramref name="type"/> is <see cref="AudioVolumeType.None"/>.</exception>
+ /// <since_tizen> 3 </since_tizen>
+ public int this[AudioVolumeType type]
+ {
+ get
+ {
+ ValidationUtil.ValidateEnum(typeof(AudioVolumeType), type, nameof(type));
+
+ if (type == AudioVolumeType.None)
+ {
+ throw new ArgumentOutOfRangeException(nameof(type),
+ "Cannot get max volume level for AudioVolumeType.None");
}
+
+ Interop.AudioVolume.GetMaxVolume(type, out var maxVolume).
+ Validate("Failed to get the max volume level");
+
return maxVolume;
}
}
}
-}
\ No newline at end of file
+}