1 /*
2 * Copyright (c) 2021-2022, Intel Corporation
3 *
4 * Permission is hereby granted, free of charge, to any person obtaining a
5 * copy of this software and associated documentation files (the "Software"),
6 * to deal in the Software without restriction, including without limitation
7 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
8 * and/or sell copies of the Software, and to permit persons to whom the
9 * Software is furnished to do so, subject to the following conditions:
10 *
11 * The above copyright notice and this permission notice shall be included
12 * in all copies or substantial portions of the Software.
13 *
14 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
15 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
17 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
18 * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
19 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
20 * OTHER DEALINGS IN THE SOFTWARE.
21 */
22 //!
23 //! \file     media_user_setting.cpp
24 //! \brief    The interface of media user setting
25 //!
26 
27 #include <algorithm>
28 #include "media_user_setting.h"
29 
30 namespace MediaUserSetting {
31 
MediaUserSetting()32 MediaUserSetting::MediaUserSetting()
33 {
34 }
MediaUserSetting(MOS_USER_FEATURE_KEY_PATH_INFO * keyPathInfo)35 MediaUserSetting::MediaUserSetting(MOS_USER_FEATURE_KEY_PATH_INFO *keyPathInfo) : m_configure(keyPathInfo)
36 {
37 
38 }
39 
~MediaUserSetting()40 MediaUserSetting::~MediaUserSetting()
41 {
42 }
43 
Register(const std::string & valueName,const Group & group,const Value & defaultValue,bool isReportKey,bool debugOnly,bool useCustomPath,const std::string & customPath,bool statePath)44 MOS_STATUS MediaUserSetting::Register(
45     const std::string &valueName,
46     const Group &group,
47     const Value &defaultValue,
48     bool isReportKey,
49     bool debugOnly,
50     bool useCustomPath,
51     const std::string &customPath,
52     bool statePath)
53 {
54     return m_configure.Register(
55                     valueName,
56                     group,
57                     defaultValue,
58                     isReportKey,
59                     debugOnly,
60                     useCustomPath,
61                     customPath,
62                     statePath);
63 }
64 
Read(Value & value,const std::string & valueName,const Group & group,const Value & customValue,bool useCustomValue,uint32_t option)65 MOS_STATUS MediaUserSetting::Read(Value &value,
66     const std::string &valueName,
67     const Group &group,
68     const Value &customValue,
69     bool useCustomValue,
70     uint32_t option)
71 {
72     auto status = m_configure.Read(value, valueName, group, customValue, useCustomValue, option);
73     if(status != MOS_STATUS_SUCCESS)
74     {
75         MOS_OS_NORMALMESSAGE("User setting %s read error", valueName.c_str());
76     }
77     return status;
78 }
79 
Write(const std::string & valueName,const Value & value,const Group & group,bool isForReport,uint32_t option)80 MOS_STATUS MediaUserSetting::Write(
81     const std::string &valueName,
82     const Value &value,
83     const Group &group,
84     bool isForReport,
85     uint32_t option)
86 {
87     return m_configure.Write(valueName, value, group, isForReport, option);
88 }
89 
IsDeclaredUserSetting(const std::string & valueName)90 bool MediaUserSetting::IsDeclaredUserSetting(const std::string &valueName)
91 {
92     return m_configure.IsDefinitionExist(valueName);
93 }
94 
UserFeatureReadValue(PMOS_USER_FEATURE_INTERFACE pOsUserFeatureInterface,uint32_t valueID,PMOS_USER_FEATURE_VALUE_DATA pValueData,MOS_CONTEXT_HANDLE mosCtx)95 MOS_STATUS MediaUserSetting::UserFeatureReadValue(
96     PMOS_USER_FEATURE_INTERFACE     pOsUserFeatureInterface,
97     uint32_t                        valueID,
98     PMOS_USER_FEATURE_VALUE_DATA    pValueData,
99     MOS_CONTEXT_HANDLE              mosCtx)
100 {
101     return MosUtilities::MosUserFeatureReadValueID(pOsUserFeatureInterface, valueID, pValueData, mosCtx);
102 }
103 
UserFeatureWriteValue(PMOS_USER_FEATURE_INTERFACE pOsUserFeatureInterface,PMOS_USER_FEATURE_VALUE_WRITE_DATA pWriteValues,uint32_t uiNumOfValues,MOS_CONTEXT_HANDLE mosCtx)104 MOS_STATUS MediaUserSetting::UserFeatureWriteValue(
105     PMOS_USER_FEATURE_INTERFACE        pOsUserFeatureInterface,
106     PMOS_USER_FEATURE_VALUE_WRITE_DATA pWriteValues,
107     uint32_t                           uiNumOfValues,
108     MOS_CONTEXT_HANDLE                 mosCtx)
109 {
110     return MosUtilities::MosUserFeatureWriteValuesID(pOsUserFeatureInterface, pWriteValues, uiNumOfValues, mosCtx);
111 }
112 
113 }
114 
115