Merge remote-tracking branch 'origin/master' into tizen
[platform/core/csapi/tizenfx.git] / src / Tizen.Multimedia / AudioManager / AudioStreamPolicyFocusStateChangedEventArgs.cs
1 /*
2  * Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved
3  *
4  * Licensed under the Apache License, Version 2.0 (the License);
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an AS IS BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17 using System;
18
19 namespace Tizen.Multimedia
20 {
21     /// <summary>
22     /// Provides data for the <see cref="AudioStreamPolicy.FocusStateChanged"/> event.
23     /// </summary>
24     /// <since_tizen> 4 </since_tizen>
25     public class AudioStreamPolicyFocusStateChangedEventArgs : EventArgs
26     {
27         internal AudioStreamPolicyFocusStateChangedEventArgs(AudioStreamFocusOptions options,
28             AudioStreamFocusState state, AudioStreamFocusChangedReason reason,
29             AudioStreamBehaviors behaviors, string extraInfo)
30         {
31             FocusOptions = options;
32             FocusState = state;
33             Reason = reason;
34             Behaviors = behaviors;
35             ExtraInfo = extraInfo;
36         }
37
38         /// <summary>
39         /// Gets the focus options.
40         /// </summary>
41         /// <value>The focus options.</value>
42         /// <since_tizen> 4 </since_tizen>
43         public AudioStreamFocusOptions FocusOptions { get; }
44
45         /// <summary>
46         /// Gets the focus state.
47         /// </summary>
48         /// <value>The focus state.</value>
49         /// <since_tizen> 4 </since_tizen>
50         public AudioStreamFocusState FocusState { get; }
51
52         /// <summary>
53         /// Gets the reason for state change of the focus.
54         /// </summary>
55         /// <value>The reason for state change of the focus.</value>
56         /// <since_tizen> 4 </since_tizen>
57         public AudioStreamFocusChangedReason Reason { get; }
58
59         /// <summary>
60         /// Gets the requested behaviors that should be followed.
61         /// </summary>
62         /// <value>The requested behaviors that should be followed.</value>
63         /// <since_tizen> 4 </since_tizen>
64         public AudioStreamBehaviors Behaviors { get; }
65
66         /// <summary>
67         /// Gets the extra information.
68         /// </summary>
69         /// <value>
70         /// The extra information specified in <see cref="AudioStreamPolicy.AcquireFocus(AudioStreamFocusOptions, AudioStreamBehaviors, string)"/> or
71         /// <see cref="AudioStreamPolicy.ReleaseFocus(AudioStreamFocusOptions, AudioStreamBehaviors, string)"/>.
72         /// </value>
73         /// <seealso cref="AudioStreamPolicy.AcquireFocus(AudioStreamFocusOptions, AudioStreamBehaviors, string)"/>
74         /// <seealso cref="AudioStreamPolicy.ReleaseFocus(AudioStreamFocusOptions, AudioStreamBehaviors, string)"/>
75         /// <since_tizen> 4 </since_tizen>
76         public string ExtraInfo { get; }
77     }
78 }