| /* |
| * Copyright (C) 2016 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 "BufferingSettings" |
| //#define LOG_NDEBUG 0 |
| |
| #include <binder/Parcel.h> |
| |
| #include <media/BufferingSettings.h> |
| |
| namespace android { |
| |
| // static |
| bool BufferingSettings::IsValidBufferingMode(int mode) { |
| return (mode >= BUFFERING_MODE_NONE && mode < BUFFERING_MODE_COUNT); |
| } |
| |
| // static |
| bool BufferingSettings::IsTimeBasedBufferingMode(int mode) { |
| return (mode == BUFFERING_MODE_TIME_ONLY || mode == BUFFERING_MODE_TIME_THEN_SIZE); |
| } |
| |
| // static |
| bool BufferingSettings::IsSizeBasedBufferingMode(int mode) { |
| return (mode == BUFFERING_MODE_SIZE_ONLY || mode == BUFFERING_MODE_TIME_THEN_SIZE); |
| } |
| |
| BufferingSettings::BufferingSettings() |
| : mInitialBufferingMode(BUFFERING_MODE_NONE), |
| mRebufferingMode(BUFFERING_MODE_NONE), |
| mInitialWatermarkMs(kNoWatermark), |
| mInitialWatermarkKB(kNoWatermark), |
| mRebufferingWatermarkLowMs(kNoWatermark), |
| mRebufferingWatermarkHighMs(kNoWatermark), |
| mRebufferingWatermarkLowKB(kNoWatermark), |
| mRebufferingWatermarkHighKB(kNoWatermark) { } |
| |
| status_t BufferingSettings::readFromParcel(const Parcel* parcel) { |
| if (parcel == nullptr) { |
| return BAD_VALUE; |
| } |
| mInitialBufferingMode = (BufferingMode)parcel->readInt32(); |
| mRebufferingMode = (BufferingMode)parcel->readInt32(); |
| mInitialWatermarkMs = parcel->readInt32(); |
| mInitialWatermarkKB = parcel->readInt32(); |
| mRebufferingWatermarkLowMs = parcel->readInt32(); |
| mRebufferingWatermarkHighMs = parcel->readInt32(); |
| mRebufferingWatermarkLowKB = parcel->readInt32(); |
| mRebufferingWatermarkHighKB = parcel->readInt32(); |
| |
| return OK; |
| } |
| |
| status_t BufferingSettings::writeToParcel(Parcel* parcel) const { |
| if (parcel == nullptr) { |
| return BAD_VALUE; |
| } |
| parcel->writeInt32(mInitialBufferingMode); |
| parcel->writeInt32(mRebufferingMode); |
| parcel->writeInt32(mInitialWatermarkMs); |
| parcel->writeInt32(mInitialWatermarkKB); |
| parcel->writeInt32(mRebufferingWatermarkLowMs); |
| parcel->writeInt32(mRebufferingWatermarkHighMs); |
| parcel->writeInt32(mRebufferingWatermarkLowKB); |
| parcel->writeInt32(mRebufferingWatermarkHighKB); |
| |
| return OK; |
| } |
| |
| } // namespace android |