diff options
author | Lajos Molnar <lajos@google.com> | 2015-02-10 15:57:08 -0800 |
---|---|---|
committer | Lajos Molnar <lajos@google.com> | 2015-02-10 15:57:08 -0800 |
commit | 49c9a53d098091791b0e6e2d97ce6bf0d562d17e (patch) | |
tree | 54d465b8b2e933cda923baa0d7e8e1e857b67878 /include | |
parent | c9f122d8f32ba6928ac9087448025fa3bed1553d (diff) | |
parent | 157defdde7013062bbd04f7e873b6856adce14ca (diff) | |
download | frameworks_av-49c9a53d098091791b0e6e2d97ce6bf0d562d17e.zip frameworks_av-49c9a53d098091791b0e6e2d97ce6bf0d562d17e.tar.gz frameworks_av-49c9a53d098091791b0e6e2d97ce6bf0d562d17e.tar.bz2 |
resolved conflicts for merge of 157defdd to master
Change-Id: I14fd8063fa052f16868b8053a211190092131317
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_ |