diff options
| author | 2021-10-06 22:53:36 +0000 | |
|---|---|---|
| committer | 2021-10-06 22:53:36 +0000 | |
| commit | 097d2a50873100486d65a69cb1cbabf37fb3b188 (patch) | |
| tree | c2f19f92e4503b2de0afeebdd9bf7aeb1bb2e9c1 /libs/gui/FrameTimelineInfo.cpp | |
| parent | cbfb18e134845deeace954bbba818acda48cb80f (diff) | |
| parent | adcb6a2733c1baf66e5ad72365965ab504f5f959 (diff) | |
Merge Android 12
Bug: 202323961
Merged-In: Ifb27b3eb12454fa96f07e6797745c697b4f831c4
Change-Id: I2a7f5931477fddb51564c2eabcdc96ce58888ce8
Diffstat (limited to 'libs/gui/FrameTimelineInfo.cpp')
| -rw-r--r-- | libs/gui/FrameTimelineInfo.cpp | 63 | 
1 files changed, 63 insertions, 0 deletions
diff --git a/libs/gui/FrameTimelineInfo.cpp b/libs/gui/FrameTimelineInfo.cpp new file mode 100644 index 0000000000..9231a570fc --- /dev/null +++ b/libs/gui/FrameTimelineInfo.cpp @@ -0,0 +1,63 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + *      http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#define LOG_TAG "FrameTimelineInfo" + +#include <inttypes.h> + +#include <android/os/IInputConstants.h> +#include <gui/FrameTimelineInfo.h> +#include <gui/LayerState.h> +#include <private/gui/ParcelUtils.h> +#include <utils/Errors.h> + +#include <cmath> + +using android::os::IInputConstants; + +namespace android { + +status_t FrameTimelineInfo::write(Parcel& output) const { +    SAFE_PARCEL(output.writeInt64, vsyncId); +    SAFE_PARCEL(output.writeInt32, inputEventId); +    return NO_ERROR; +} + +status_t FrameTimelineInfo::read(const Parcel& input) { +    SAFE_PARCEL(input.readInt64, &vsyncId); +    SAFE_PARCEL(input.readInt32, &inputEventId); +    return NO_ERROR; +} + +void FrameTimelineInfo::merge(const FrameTimelineInfo& other) { +    // When merging vsync Ids we take the oldest valid one +    if (vsyncId != INVALID_VSYNC_ID && other.vsyncId != INVALID_VSYNC_ID) { +        if (other.vsyncId > vsyncId) { +            vsyncId = other.vsyncId; +            inputEventId = other.inputEventId; +        } +    } else if (vsyncId == INVALID_VSYNC_ID) { +        vsyncId = other.vsyncId; +        inputEventId = other.inputEventId; +    } +} + +void FrameTimelineInfo::clear() { +    vsyncId = INVALID_VSYNC_ID; +    inputEventId = IInputConstants::INVALID_INPUT_EVENT_ID; +} + +}; // namespace android  |