diff options
author | Lajos Molnar <lajos@google.com> | 2015-02-10 04:33:08 +0000 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2015-02-10 04:33:08 +0000 |
commit | 157defdde7013062bbd04f7e873b6856adce14ca (patch) | |
tree | bf6503e41529df950c27f694e256519add85752b /include | |
parent | 6d5a1afac2a7bca6b171261ca9b237c3a516e567 (diff) | |
parent | 4fc5d758d6722bedf341e5d93a0ba5698c658c29 (diff) | |
download | frameworks_av-157defdde7013062bbd04f7e873b6856adce14ca.zip frameworks_av-157defdde7013062bbd04f7e873b6856adce14ca.tar.gz frameworks_av-157defdde7013062bbd04f7e873b6856adce14ca.tar.bz2 |
am 4fc5d758: am 0c11f31b: Merge "nuplayer: acquire wakelock during offload pause timeout" into lmp-mr1-dev
* commit '4fc5d758d6722bedf341e5d93a0ba5698c658c29':
nuplayer: acquire wakelock during offload pause timeout
Diffstat (limited to 'include')
-rw-r--r-- | include/media/stagefright/foundation/AWakeLock.h | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/include/media/stagefright/foundation/AWakeLock.h b/include/media/stagefright/foundation/AWakeLock.h new file mode 100644 index 0000000..57716c1 --- /dev/null +++ b/include/media/stagefright/foundation/AWakeLock.h @@ -0,0 +1,68 @@ +/* + * Copyright (C) 2015 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. + */ + +#ifndef A_WAKELOCK_H_ +#define A_WAKELOCK_H_ + +#include <media/stagefright/foundation/ABase.h> +#include <powermanager/IPowerManager.h> +#include <utils/RefBase.h> + +namespace android { + +class AWakeLock : public RefBase { + +public: + AWakeLock(); + + // NOTE: acquire and release are not thread safe + + // returns true if wakelock was acquired + bool acquire(); + void release(bool force = false); + + virtual ~AWakeLock(); + +private: + sp<IPowerManager> mPowerManager; + sp<IBinder> mWakeLockToken; + uint32_t mWakeLockCount; + + class PMDeathRecipient : public IBinder::DeathRecipient { + public: + PMDeathRecipient(AWakeLock *wakeLock) : mWakeLock(wakeLock) {} + virtual ~PMDeathRecipient() {} + + // IBinder::DeathRecipient + virtual void binderDied(const wp<IBinder> &who); + + private: + PMDeathRecipient(const PMDeathRecipient&); + PMDeathRecipient& operator= (const PMDeathRecipient&); + + AWakeLock *mWakeLock; + }; + + const sp<PMDeathRecipient> mDeathRecipient; + + void clearPowerManager(); + + DISALLOW_EVIL_CONSTRUCTORS(AWakeLock); +}; + +} // namespace android + +#endif // A_WAKELOCK_H_ |