• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2021 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 #include "screen_saver_feature.h"
17 
18 #include <feature.h>
19 #include <ohos_init.h>
20 #include <samgr_lite.h>
21 
22 #include "hilog_wrapper.h"
23 #include "power_mgr.h"
24 #include "screen_saver_intf_define.h"
25 #include "screen_saver_mgr.h"
26 
GetScreenSaverFeatureName(Feature * feature)27 const char *GetScreenSaverFeatureName(Feature *feature)
28 {
29     (void)feature;
30     return POWER_SCREEN_SAVER_FEATURE;
31 }
32 
OnScreenSaverFeatureInitialize(Feature * feature,Service * parent,Identity identity)33 void OnScreenSaverFeatureInitialize(Feature *feature, Service *parent, Identity identity)
34 {
35     if (feature == NULL) {
36         POWER_HILOGE("Invalid feature");
37         return;
38     }
39 
40     ScreenSaverFeature *f = (ScreenSaverFeature *)feature;
41     f->identity = identity;
42     ScreenSaverMgrInit();
43     POWER_HILOGI("Init screen saver feature done");
44 }
45 
OnScreenSaverFeatureStop(Feature * feature,Identity identity)46 void OnScreenSaverFeatureStop(Feature *feature, Identity identity)
47 {
48     (void)feature;
49     (void)identity;
50     ScreenSaverFeature *f = GetScreenSaverFeatureImpl();
51     if (f != NULL) {
52         f->identity.queueId = NULL;
53         f->identity.featureId = -1;
54         f->identity.serviceId = -1;
55     }
56 }
57 
OnScreenSaverFeatureMessage(Feature * feature,Request * request)58 BOOL OnScreenSaverFeatureMessage(Feature *feature, Request *request)
59 {
60     return ((feature != NULL) && (request != NULL)) ? TRUE : FALSE;
61 }
62 
OnSetScreenSaverState(IUnknown * iUnknown,BOOL enable)63 int32_t OnSetScreenSaverState(IUnknown *iUnknown, BOOL enable)
64 {
65     (void)iUnknown;
66     return ScreenSaverMgrSetState(enable);
67 }
68 
Init(void)69 static void Init(void)
70 {
71     SamgrLite *sam = SAMGR_GetInstance();
72     if (sam == NULL) {
73         POWER_HILOGE("Failed to get samgr");
74         return;
75     }
76 
77     ScreenSaverFeature *feature = GetScreenSaverFeatureImpl();
78     if (feature == NULL) {
79         POWER_HILOGE("Failed to get screen saver feature");
80         return;
81     }
82     BOOL result = sam->RegisterFeature(POWER_MANAGE_SERVICE, (Feature *)feature);
83     if (result == FALSE) {
84         POWER_HILOGE("Failed to register screen saver feature");
85         return;
86     }
87     result = sam->RegisterFeatureApi(POWER_MANAGE_SERVICE, POWER_SCREEN_SAVER_FEATURE, GET_IUNKNOWN(*feature));
88     if (result == FALSE) {
89         POWER_HILOGE("Failed to register screen saver feature api");
90         return;
91     }
92     POWER_HILOGI("Succeed to register screen saver feature");
93 }
94 SYS_FEATURE_INIT(Init);
95