1cb30d8477cbd16dcef6acee1e07dedfa246e9456Marco Nelissen/* 2cb30d8477cbd16dcef6acee1e07dedfa246e9456Marco Nelissen * Copyright (C) 2009 The Android Open Source Project 3cb30d8477cbd16dcef6acee1e07dedfa246e9456Marco Nelissen * 4cb30d8477cbd16dcef6acee1e07dedfa246e9456Marco Nelissen * Licensed under the Apache License, Version 2.0 (the "License"); 5cb30d8477cbd16dcef6acee1e07dedfa246e9456Marco Nelissen * you may not use this file except in compliance with the License. 6cb30d8477cbd16dcef6acee1e07dedfa246e9456Marco Nelissen * You may obtain a copy of the License at 7cb30d8477cbd16dcef6acee1e07dedfa246e9456Marco Nelissen * 8cb30d8477cbd16dcef6acee1e07dedfa246e9456Marco Nelissen * http://www.apache.org/licenses/LICENSE-2.0 9cb30d8477cbd16dcef6acee1e07dedfa246e9456Marco Nelissen * 10cb30d8477cbd16dcef6acee1e07dedfa246e9456Marco Nelissen * Unless required by applicable law or agreed to in writing, software 11cb30d8477cbd16dcef6acee1e07dedfa246e9456Marco Nelissen * distributed under the License is distributed on an "AS IS" BASIS, 12cb30d8477cbd16dcef6acee1e07dedfa246e9456Marco Nelissen * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13cb30d8477cbd16dcef6acee1e07dedfa246e9456Marco Nelissen * See the License for the specific language governing permissions and 14cb30d8477cbd16dcef6acee1e07dedfa246e9456Marco Nelissen * limitations under the License. 15cb30d8477cbd16dcef6acee1e07dedfa246e9456Marco Nelissen */ 16cb30d8477cbd16dcef6acee1e07dedfa246e9456Marco Nelissen 173d21ae3fad5a894cf15f2e7e7a1d54d0f3d19db0Marco Nelissen#include <media/MediaTrack.h> 18cb30d8477cbd16dcef6acee1e07dedfa246e9456Marco Nelissen 19cb30d8477cbd16dcef6acee1e07dedfa246e9456Marco Nelissennamespace android { 20cb30d8477cbd16dcef6acee1e07dedfa246e9456Marco Nelissen 213d21ae3fad5a894cf15f2e7e7a1d54d0f3d19db0Marco NelissenMediaTrack::MediaTrack() {} 22cb30d8477cbd16dcef6acee1e07dedfa246e9456Marco Nelissen 233d21ae3fad5a894cf15f2e7e7a1d54d0f3d19db0Marco NelissenMediaTrack::~MediaTrack() {} 24cb30d8477cbd16dcef6acee1e07dedfa246e9456Marco Nelissen 25cb30d8477cbd16dcef6acee1e07dedfa246e9456Marco Nelissen//////////////////////////////////////////////////////////////////////////////// 26cb30d8477cbd16dcef6acee1e07dedfa246e9456Marco Nelissen 273d21ae3fad5a894cf15f2e7e7a1d54d0f3d19db0Marco NelissenMediaTrack::ReadOptions::ReadOptions() { 28cb30d8477cbd16dcef6acee1e07dedfa246e9456Marco Nelissen reset(); 29cb30d8477cbd16dcef6acee1e07dedfa246e9456Marco Nelissen} 30cb30d8477cbd16dcef6acee1e07dedfa246e9456Marco Nelissen 313d21ae3fad5a894cf15f2e7e7a1d54d0f3d19db0Marco Nelissenvoid MediaTrack::ReadOptions::reset() { 32cb30d8477cbd16dcef6acee1e07dedfa246e9456Marco Nelissen mOptions = 0; 33cb30d8477cbd16dcef6acee1e07dedfa246e9456Marco Nelissen mSeekTimeUs = 0; 34cb30d8477cbd16dcef6acee1e07dedfa246e9456Marco Nelissen mNonBlocking = false; 35cb30d8477cbd16dcef6acee1e07dedfa246e9456Marco Nelissen} 36cb30d8477cbd16dcef6acee1e07dedfa246e9456Marco Nelissen 373d21ae3fad5a894cf15f2e7e7a1d54d0f3d19db0Marco Nelissenvoid MediaTrack::ReadOptions::setNonBlocking() { 38cb30d8477cbd16dcef6acee1e07dedfa246e9456Marco Nelissen mNonBlocking = true; 39cb30d8477cbd16dcef6acee1e07dedfa246e9456Marco Nelissen} 40cb30d8477cbd16dcef6acee1e07dedfa246e9456Marco Nelissen 413d21ae3fad5a894cf15f2e7e7a1d54d0f3d19db0Marco Nelissenvoid MediaTrack::ReadOptions::clearNonBlocking() { 42cb30d8477cbd16dcef6acee1e07dedfa246e9456Marco Nelissen mNonBlocking = false; 43cb30d8477cbd16dcef6acee1e07dedfa246e9456Marco Nelissen} 44cb30d8477cbd16dcef6acee1e07dedfa246e9456Marco Nelissen 453d21ae3fad5a894cf15f2e7e7a1d54d0f3d19db0Marco Nelissenbool MediaTrack::ReadOptions::getNonBlocking() const { 46cb30d8477cbd16dcef6acee1e07dedfa246e9456Marco Nelissen return mNonBlocking; 47cb30d8477cbd16dcef6acee1e07dedfa246e9456Marco Nelissen} 48cb30d8477cbd16dcef6acee1e07dedfa246e9456Marco Nelissen 493d21ae3fad5a894cf15f2e7e7a1d54d0f3d19db0Marco Nelissenvoid MediaTrack::ReadOptions::setSeekTo(int64_t time_us, SeekMode mode) { 50cb30d8477cbd16dcef6acee1e07dedfa246e9456Marco Nelissen mOptions |= kSeekTo_Option; 51cb30d8477cbd16dcef6acee1e07dedfa246e9456Marco Nelissen mSeekTimeUs = time_us; 52cb30d8477cbd16dcef6acee1e07dedfa246e9456Marco Nelissen mSeekMode = mode; 53cb30d8477cbd16dcef6acee1e07dedfa246e9456Marco Nelissen} 54cb30d8477cbd16dcef6acee1e07dedfa246e9456Marco Nelissen 553d21ae3fad5a894cf15f2e7e7a1d54d0f3d19db0Marco Nelissenvoid MediaTrack::ReadOptions::clearSeekTo() { 56cb30d8477cbd16dcef6acee1e07dedfa246e9456Marco Nelissen mOptions &= ~kSeekTo_Option; 57cb30d8477cbd16dcef6acee1e07dedfa246e9456Marco Nelissen mSeekTimeUs = 0; 58cb30d8477cbd16dcef6acee1e07dedfa246e9456Marco Nelissen mSeekMode = SEEK_CLOSEST_SYNC; 59cb30d8477cbd16dcef6acee1e07dedfa246e9456Marco Nelissen} 60cb30d8477cbd16dcef6acee1e07dedfa246e9456Marco Nelissen 613d21ae3fad5a894cf15f2e7e7a1d54d0f3d19db0Marco Nelissenbool MediaTrack::ReadOptions::getSeekTo( 62cb30d8477cbd16dcef6acee1e07dedfa246e9456Marco Nelissen int64_t *time_us, SeekMode *mode) const { 63cb30d8477cbd16dcef6acee1e07dedfa246e9456Marco Nelissen *time_us = mSeekTimeUs; 64cb30d8477cbd16dcef6acee1e07dedfa246e9456Marco Nelissen *mode = mSeekMode; 65cb30d8477cbd16dcef6acee1e07dedfa246e9456Marco Nelissen return (mOptions & kSeekTo_Option) != 0; 66cb30d8477cbd16dcef6acee1e07dedfa246e9456Marco Nelissen} 67cb30d8477cbd16dcef6acee1e07dedfa246e9456Marco Nelissen 68cb30d8477cbd16dcef6acee1e07dedfa246e9456Marco Nelissen} // namespace android 69