• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright 2019 The Android Open Source Project
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 #pragma once
18 
19 #include <gmock/gmock.h>
20 
21 #include "Scheduler/PhaseOffsets.h"
22 
23 namespace android {
24 namespace scheduler {
25 
26 class FakePhaseOffsets : public android::scheduler::PhaseOffsets {
27     nsecs_t FAKE_PHASE_OFFSET_NS = 0;
28 
29 public:
30     FakePhaseOffsets() = default;
31     ~FakePhaseOffsets() = default;
32 
getCurrentAppOffset()33     nsecs_t getCurrentAppOffset() override { return FAKE_PHASE_OFFSET_NS; }
getCurrentSfOffset()34     nsecs_t getCurrentSfOffset() override { return FAKE_PHASE_OFFSET_NS; }
35 
getOffsetsForRefreshRate(RefreshRateConfigs::RefreshRateType)36     PhaseOffsets::Offsets getOffsetsForRefreshRate(
37             RefreshRateConfigs::RefreshRateType /*refreshRateType*/) const override {
38         return getCurrentOffsets();
39     }
40 
41     // Returns early, early GL, and late offsets for Apps and SF.
getCurrentOffsets()42     PhaseOffsets::Offsets getCurrentOffsets() const override {
43         return Offsets{{FAKE_PHASE_OFFSET_NS, FAKE_PHASE_OFFSET_NS},
44                        {FAKE_PHASE_OFFSET_NS, FAKE_PHASE_OFFSET_NS},
45                        {FAKE_PHASE_OFFSET_NS, FAKE_PHASE_OFFSET_NS}};
46     }
47 
48     // This function should be called when the device is switching between different
49     // refresh rates, to properly update the offsets.
setRefreshRateType(RefreshRateConfigs::RefreshRateType)50     void setRefreshRateType(RefreshRateConfigs::RefreshRateType /*refreshRateType*/) override {}
51 
getOffsetThresholdForNextVsync()52     nsecs_t getOffsetThresholdForNextVsync() const override { return FAKE_PHASE_OFFSET_NS; }
53 
54     // Returns current offsets in human friendly format.
dump(std::string &)55     void dump(std::string& /*result*/) const override {}
56 };
57 
58 } // namespace scheduler
59 } // namespace android