[Recorder] refactoring
[platform/core/csapi/tizenfx.git] / src / Tizen.Multimedia / MediaVision / BarcodeDetectorEngineConfiguration.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     /// This class represents concrete EngineConfig for BarcodeDetector
23     /// </summary>
24     public class BarcodeDetectorEngineConfiguration : EngineConfiguration
25     {
26         private const string _targetAttributeKey = "MV_BARCODE_DETECT_ATTR_TARGET";
27         private TargetAttribute _targetAttr = TargetAttribute.All;
28
29         /// <summary>
30         /// The default constructor of BarcodeDetectorEngineConfig class
31         /// </summary>
32         /// <code>
33         /// 
34         /// </code>
35         public BarcodeDetectorEngineConfiguration()
36             : base()
37         {
38             TargetAttribute = _targetAttr;
39         }
40
41         /// <summary>
42         /// Sets and gets target attribute of the engine configuration
43         /// </summary>
44         public TargetAttribute TargetAttribute
45         {
46             get
47             {
48                 return _targetAttr;
49             }
50
51             set
52             {
53                 if (!IsValid(value))
54                 {
55                     throw new ArgumentException("TargetAttribute value is invalid");
56                 }
57
58                 Add<int>(_targetAttributeKey, (int)value);
59                 _targetAttr = value;
60             }
61         }
62
63         private bool IsValid(TargetAttribute value)
64         {
65             if (value == TargetAttribute.Unavailable)
66             {
67                 Log.Error(MediaVisionLog.Tag, "Invalid TargetAttribute");
68                 return false;
69             }
70
71             return true;
72         }
73     }
74 }