diff --git a/.clang-format b/.clang-format new file mode 100644 index 0000000..027e3e3 --- /dev/null +++ b/.clang-format @@ -0,0 +1,114 @@ +# Copyright (C) 2016 Olivier Goffart +# +# You may use this file under the terms of the 3-clause BSD license. +# See the file LICENSE from this package for details. + +# This is the clang-format configuration style to be used by Qt, +# based on the rules from https://wiki.qt.io/Qt_Coding_Style and +# https://wiki.qt.io/Coding_Conventions + +--- +# Webkit style was loosely based on the Qt style +BasedOnStyle: WebKit + +Standard: c++17 + +# Column width is limited to 100 in accordance with Qt Coding Style. +# https://wiki.qt.io/Qt_Coding_Style +# Note that this may be changed at some point in the future. +ColumnLimit: 100 +# How much weight do extra characters after the line length limit have. +# PenaltyExcessCharacter: 4 + +# Disable reflow of some specific comments +# qdoc comments: indentation rules are different. +# Translation comments and SPDX license identifiers are also excluded. +CommentPragmas: "^!|^:|^ SPDX-License-Identifier:" + +# We want a space between the type and the star for pointer types. +PointerBindsToType: false + +# We generally use "template <" with space. +SpaceAfterTemplateKeyword: true + +# We want to break before the operators, but not before a '='. +BreakBeforeBinaryOperators: NonAssignment + +# Braces are usually attached, but not after functions or class declarations. +BreakBeforeBraces: Custom +BraceWrapping: + AfterClass: true + AfterControlStatement: false + AfterEnum: false + AfterFunction: true + AfterNamespace: false + AfterObjCDeclaration: false + AfterStruct: true + AfterUnion: false + BeforeCatch: false + BeforeElse: false + IndentBraces: false + +# When constructor initializers do not fit on one line, put them each on a new line. +ConstructorInitializerAllOnOneLineOrOnePerLine: true +# Indent initializers by 4 spaces +ConstructorInitializerIndentWidth: 4 + +# Indent width for line continuations. +ContinuationIndentWidth: 8 + +# No indentation for namespaces. +NamespaceIndentation: None + +# Allow indentation for preprocessing directives (if/ifdef/endif). https://reviews.llvm.org/rL312125 +IndentPPDirectives: AfterHash +# We only indent with 2 spaces for preprocessor directives +#PPIndentWidth: 2 + +# Horizontally align arguments after an open bracket. +# The coding style does not specify the following, but this is what gives +# results closest to the existing code. +AlignAfterOpenBracket: true +AlwaysBreakTemplateDeclarations: true + +# Ideally we should also allow less short function in a single line, but +# clang-format does not handle that. +AllowShortFunctionsOnASingleLine: Inline + +# The coding style specifies some include order categories, but also tells to +# separate categories with an empty line. It does not specify the order within +# the categories. Since the SortInclude feature of clang-format does not +# re-order includes separated by empty lines, the feature is not used. +SortIncludes: false + +# macros for which the opening brace stays attached. +ForEachMacros: [ foreach, Q_FOREACH, BOOST_FOREACH, forever, Q_FOREVER, QBENCHMARK, QBENCHMARK_ONCE ] + +# Break constructor initializers before the colon and after the commas. +BreakConstructorInitializers: BeforeColon + +# Add "// namespace " comments on closing brace for a namespace +# Ignored for namespaces that qualify as a short namespace, +# see 'ShortNamespaceLines' +FixNamespaceComments: true + +# Definition of how short a short namespace is, default 1 +#ShortNamespaceLines: 1 + +# When escaping newlines in a macro attach the '\' as far left as possible, e.g. +##define a \ +# something; \ +# other; \ +# thelastlineislong; +AlignEscapedNewlines: Left + +# Avoids the addition of a space between an identifier and the +# initializer list in list-initialization. +SpaceBeforeCpp11BracedList: false + +--- +# Use the Google-based style for .proto files. +Language: Proto +BasedOnStyle: Google +IndentWidth: 4 +ColumnLimit: 100 diff --git a/.git-blame-ignore-revs b/.git-blame-ignore-revs new file mode 100644 index 0000000..dc2274f --- /dev/null +++ b/.git-blame-ignore-revs @@ -0,0 +1,3 @@ +#clang format +9bbce68d8305bc0a1971cf472ce8482c88fe5d80 + diff --git a/.github/workflows/pre-commit.yml b/.github/workflows/pre-commit.yml new file mode 100644 index 0000000..3817d47 --- /dev/null +++ b/.github/workflows/pre-commit.yml @@ -0,0 +1,15 @@ +name: pre-commit + +on: + pull_request: + push: + branches: [main] + +jobs: + pre-commit: + runs-on: ubuntu-20.04 + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-python@v3 + - uses: pre-commit/action@v3.0.1 + diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 0000000..a9dabef --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,25 @@ +# To use: +# +# pre-commit run -a +# +# Or: +# +# pre-commit install # (runs every time you commit in git) +# +# To update this file: +# +# pre-commit autoupdate +# +# See https://github.com/pre-commit/pre-commit + +repos: + - repo: local + hooks: + - id: clang-format + name: clang-format + description: Format files with ClangFormat. + entry: clang-format-12 + language: system + files: \.(c|cc|cxx|cpp|frag|glsl|h|hpp|hxx|ih|ispc|ipp|java|js|m|proto|vert)$ + args: ["-fallback-style=none", "-i"] + diff --git a/AsyncCodecSource.cpp b/AsyncCodecSource.cpp index 2860d2e..f4c9616 100644 --- a/AsyncCodecSource.cpp +++ b/AsyncCodecSource.cpp @@ -20,9 +20,9 @@ #include #include #if ANDROID_MAJOR >= 11 -#include +# include #else -#include +# include #endif #include #include @@ -38,21 +38,16 @@ using namespace android; #if ANDROID_MAJOR > 7 -#include +# include #else -#include +# include typedef ABuffer MediaCodecBuffer; #endif #define LOG_TAG "AsyncCodecSource" - -AsyncCodecSource::SourceReader::SourceReader(AsyncCodecSource *codec, - const sp source) - : Thread(false) - , mRunning(true) - , mCodec(codec) - , mSource(source) +AsyncCodecSource::SourceReader::SourceReader(AsyncCodecSource *codec, const sp source) + : Thread(false), mRunning(true), mCodec(codec), mSource(source) { } @@ -112,12 +107,14 @@ void AsyncCodecSource::SourceReader::inputBufferAvailable(size_t index) mInputIndices.cond.signal(); } -//static -sp AsyncCodecSource::Create( - const sp &source, const sp &srcFormat, - bool isEncoder, uint32_t flags, const sp &nativeWindow, - const sp &looper, const char *desiredCodec, OMX_COLOR_FORMATTYPE colorFormat) { - sp surface = static_cast(nativeWindow.get()); +// static +sp AsyncCodecSource::Create(const sp &source, + const sp &srcFormat, bool isEncoder, + uint32_t flags, const sp &nativeWindow, + const sp &looper, const char *desiredCodec, + OMX_COLOR_FORMATTYPE colorFormat) +{ + sp surface = static_cast(nativeWindow.get()); const char *mime = nullptr; sp meta = source->getFormat(); CHECK(meta->findCString(kKeyMIMEType, &mime)); @@ -144,12 +141,11 @@ sp AsyncCodecSource::Create( } if (colorFormat != OMX_COLOR_FormatUnused) { - format->setInt32("color-format", colorFormat); + format->setInt32("color-format", colorFormat); } Vector matchingCodecs; - MediaCodecList::findMatchingCodecs( - mime, isEncoder, flags, &matchingCodecs); + MediaCodecList::findMatchingCodecs(mime, isEncoder, flags, &matchingCodecs); for (const AString &componentName : matchingCodecs) { if (desiredCodec != nullptr && componentName.compare(desiredCodec)) { @@ -157,26 +153,25 @@ sp AsyncCodecSource::Create( } ALOGV("Attempting to allocate codec '%s'", componentName.c_str()); - sp res = new AsyncCodecSource(componentName, source, looper, - strcmp(mime, MEDIA_MIMETYPE_AUDIO_VORBIS) == 0); + sp res = new AsyncCodecSource( + componentName, source, looper, strcmp(mime, MEDIA_MIMETYPE_AUDIO_VORBIS) == 0); if (res->mCodec != NULL) { ALOGI("Successfully allocated codec '%s'", componentName.c_str()); - if (res->configure(format, surface, isEncoder ? MediaCodec::CONFIGURE_FLAG_ENCODE : 0)) { + if (res->configure(format, surface, + isEncoder ? MediaCodec::CONFIGURE_FLAG_ENCODE : 0)) { if (surface != nullptr) { #if ANDROID_MAJOR > 7 nativeWindowConnect(nativeWindow.get(), "AsyncCodecSource"); #else - native_window_api_connect(nativeWindow.get(), - NATIVE_WINDOW_API_MEDIA); + native_window_api_connect(nativeWindow.get(), NATIVE_WINDOW_API_MEDIA); #endif } return res; } else { ALOGE("Failed to configure codec '%s'", componentName.c_str()); } - } - else { + } else { ALOGE("Failed to allocate codec '%s'", componentName.c_str()); } } @@ -185,16 +180,16 @@ sp AsyncCodecSource::Create( return nullptr; } -AsyncCodecSource::AsyncCodecSource( - const AString &codecName, const sp &source, const sp &looper, - bool isVorbis) +AsyncCodecSource::AsyncCodecSource(const AString &codecName, const sp &source, + const sp &looper, bool isVorbis) : mComponentName(codecName), mSource(source), mLooper(looper), mCodecLooper(new ALooper), mMeta(new MetaData), mUsingSurface(false), - mIsVorbis(isVorbis) { + mIsVorbis(isVorbis) +{ mCodecLooper->setName("codec_looper"); mCodecLooper->start(false, false, ANDROID_PRIORITY_AUDIO); @@ -206,13 +201,16 @@ AsyncCodecSource::AsyncCodecSource( mSourceReader = new SourceReader(this, source); } -AsyncCodecSource::~AsyncCodecSource() { +AsyncCodecSource::~AsyncCodecSource() +{ mCodec->release(); mCodecLooper->stop(); mLooper->unregisterHandler(mReflector->id()); } -bool AsyncCodecSource::configure(const sp format, const sp surface, uint32_t flags) { +bool AsyncCodecSource::configure(const sp format, const sp surface, + uint32_t flags) +{ mCodec->setCallback(mNotify); status_t err = mCodec->configure(format, surface, nullptr /* crypto */, flags); if (err != OK) { @@ -233,7 +231,8 @@ bool AsyncCodecSource::configure(const sp format, const sp su return true; } -status_t AsyncCodecSource::start(MetaData *params) { +status_t AsyncCodecSource::start(MetaData *params) +{ (void)params; Mutexed::Locked me(mOutput); @@ -259,7 +258,8 @@ status_t AsyncCodecSource::start(MetaData *params) { return res; } -status_t AsyncCodecSource::stop() { +status_t AsyncCodecSource::stop() +{ Mutexed::Locked me(mOutput); if (mState != STARTED && mState != ERROR) { return -EINVAL; @@ -285,19 +285,16 @@ status_t AsyncCodecSource::stop() { return res1 != OK ? res1 : res2; } -sp AsyncCodecSource::getFormat() { +sp AsyncCodecSource::getFormat() +{ Mutexed>::Locked meta(mMeta); return *meta; } -AsyncCodecSource::Output::Output() - : mReachedEOS(false), - mReading(false) { -} +AsyncCodecSource::Output::Output() : mReachedEOS(false), mReading(false) { } -status_t AsyncCodecSource::read( - DroidMediaBuffer **buffer, - const ReadOptions *options) { +status_t AsyncCodecSource::read(DroidMediaBuffer **buffer, const ReadOptions *options) +{ *buffer = nullptr; Mutexed::Locked me(mOutput); me->mReading = true; @@ -316,24 +313,21 @@ status_t AsyncCodecSource::read( } *buffer = nullptr; - while (me->mBufferQueue.size() == 0 && !me->mReachedEOS - && mState == STARTED) { + while (me->mBufferQueue.size() == 0 && !me->mReachedEOS && mState == STARTED) { ALOGV("[%s] Waiting for output.", mComponentName.c_str()); me.waitForCondition(me->mAvailable); } if (mState == ERROR) { res = ERROR; - } - else if (!me->mBufferQueue.empty()) { + } else if (!me->mBufferQueue.empty()) { *buffer = *me->mBufferQueue.begin(); me->mBufferQueue.erase(me->mBufferQueue.begin()); if (mOutputChanged && (*buffer)->size() == 0) { mOutputChanged = false; res = INFO_FORMAT_CHANGED; } - } - else if (me->mReachedEOS || mState != STARTED) { + } else if (me->mReachedEOS || mState != STARTED) { res = ERROR_END_OF_STREAM; } @@ -370,19 +364,19 @@ bool AsyncCodecSource::queueInputBuffer(DroidMediaBuffer *buffer, size_t index) int32_t numPageSamples; if (! #if ANDROID_MAJOR >= 9 - buffer->meta_data().findInt32(kKeyValidSamples, &numPageSamples) + buffer->meta_data().findInt32(kKeyValidSamples, &numPageSamples) #else - buffer->meta_data()->findInt32(kKeyValidSamples, &numPageSamples) + buffer->meta_data()->findInt32(kKeyValidSamples, &numPageSamples) #endif - ) { + ) { numPageSamples = -1; } memcpy(inbuf->base() + cpLen, &numPageSamples, sizeof(numPageSamples)); } - status_t res = mCodec->queueInputBuffer( - index, 0 /* offset */, buffer->range_length() + (mIsVorbis ? 4 : 0), - timeUs, 0 /* flags */); + status_t res = mCodec->queueInputBuffer(index, 0 /* offset */, + buffer->range_length() + (mIsVorbis ? 4 : 0), timeUs, + 0 /* flags */); if (res != OK) { ALOGE("[%s] failed to queue input buffer #%zu", mComponentName.c_str(), index); mState = ERROR; @@ -402,7 +396,8 @@ void AsyncCodecSource::flush() mCodec->flush(); } -void AsyncCodecSource::onMessageReceived(const sp &msg) { +void AsyncCodecSource::onMessageReceived(const sp &msg) +{ if (mCodec == nullptr) { return; @@ -413,10 +408,12 @@ void AsyncCodecSource::onMessageReceived(const sp &msg) { if (cbID == MediaCodec::CB_INPUT_AVAILABLE) { int32_t index; CHECK(msg->findInt32("index", &index)); - ALOGV("[%s] Got input buffer #%d %d", mComponentName.c_str(), index, MediaCodec::CB_INPUT_AVAILABLE); + ALOGV("[%s] Got input buffer #%d %d", mComponentName.c_str(), index, + MediaCodec::CB_INPUT_AVAILABLE); mSourceReader->inputBufferAvailable(index); } else if (cbID == MediaCodec::CB_OUTPUT_FORMAT_CHANGED) { - ALOGD("[%s] Output format changed! Buffers remaining: %zu", mComponentName.c_str(), mOutput.lock()->mBufferQueue.size()); + ALOGD("[%s] Output format changed! Buffers remaining: %zu", mComponentName.c_str(), + mOutput.lock()->mBufferQueue.size()); sp outputFormat; status_t err = mCodec->getOutputFormat(&outputFormat); if (err != OK) { @@ -427,7 +424,7 @@ void AsyncCodecSource::onMessageReceived(const sp &msg) { sp meta = new MetaData; convertMessageToMetaData(outputFormat, meta); mMeta.lock().set(meta); - MediaBuffer *buffer = new MediaBuffer(0); + MediaBuffer *buffer = new MediaBuffer(0); Mutexed::Locked me(mOutput); me->mBufferQueue.push_back(buffer); mOutputChanged = true; @@ -454,21 +451,20 @@ void AsyncCodecSource::onMessageReceived(const sp &msg) { sp out_buffer; status_t res = mCodec->getOutputBuffer(index, &out_buffer); if (res != OK) { - ALOGE("[%s] could not get output buffer #%d", - mComponentName.c_str(), index); + ALOGE("[%s] could not get output buffer #%d", mComponentName.c_str(), index); mState = ERROR; mCodec->releaseOutputBuffer(index); return; } if (mUsingSurface && size > 0) { - MediaBuffer *buffer = new MediaBuffer(0); + MediaBuffer *buffer = new MediaBuffer(0); Mutexed::Locked me(mOutput); me->mBufferQueue.push_back(buffer); mCodec->renderOutputBufferAndRelease(index); me->mAvailable.signal(); } else { - MediaBuffer *buffer = new MediaBuffer(size); + MediaBuffer *buffer = new MediaBuffer(size); CHECK_LE(out_buffer->size(), buffer->size()); memcpy(buffer->data(), out_buffer->data(), out_buffer->size()); #if ANDROID_MAJOR >= 9 @@ -484,11 +480,10 @@ void AsyncCodecSource::onMessageReceived(const sp &msg) { } else if (cbID == MediaCodec::CB_ERROR) { status_t err; CHECK(msg->findInt32("err", &err)); - ALOGE("Codec (%s) reported error : 0x%d", - mComponentName.c_str(), err); + ALOGE("Codec (%s) reported error : 0x%d", mComponentName.c_str(), err); mState = ERROR; } else { - ALOGE("Codec (%s) unhandled callback id : 0x%d", mComponentName.c_str(), cbID); + ALOGE("Codec (%s) unhandled callback id : 0x%d", mComponentName.c_str(), cbID); } } diff --git a/AsyncCodecSource.h b/AsyncCodecSource.h index a6778bf..0a9039e 100644 --- a/AsyncCodecSource.h +++ b/AsyncCodecSource.h @@ -23,9 +23,9 @@ #include #include #if ANDROID_MAJOR >= 9 && ANDROID_MAJOR <= 10 -#include +# include #else -#include +# include #endif #include #include @@ -50,17 +50,16 @@ struct MediaCodec; class MetaData; class Surface; -class AsyncCodecSource : public MediaSource { +class AsyncCodecSource : public MediaSource +{ public: - static sp Create(const sp &source, - const sp &format, bool isEncoder, uint32_t flags, - const sp &nativeWindow, const sp &looper, - const char *desiredCodec = NULL, - OMX_COLOR_FORMATTYPE colorFormat = OMX_COLOR_FormatUnused); + static sp Create(const sp &source, const sp &format, + bool isEncoder, uint32_t flags, + const sp &nativeWindow, const sp &looper, + const char *desiredCodec = NULL, + OMX_COLOR_FORMATTYPE colorFormat = OMX_COLOR_FormatUnused); - bool configure(const sp format, - const sp surface, - uint32_t flags = 0); + bool configure(const sp format, const sp surface, uint32_t flags = 0); virtual ~AsyncCodecSource(); @@ -74,9 +73,7 @@ class AsyncCodecSource : public MediaSource { virtual sp getFormat(); // reads from the source. This call always blocks. - virtual status_t read( - android::DroidMediaBuffer **buffer, - const ReadOptions *options); + virtual status_t read(android::DroidMediaBuffer **buffer, const ReadOptions *options); // for AHandlerReflector void onMessageReceived(const sp &msg); @@ -89,7 +86,8 @@ class AsyncCodecSource : public MediaSource { void flush(); private: - class SourceReader : public Thread { + class SourceReader : public Thread + { public: explicit SourceReader(AsyncCodecSource *codec, const sp source); void inputBufferAvailable(size_t index); @@ -106,9 +104,8 @@ class AsyncCodecSource : public MediaSource { }; // Construct this using a codec, source and looper. - AsyncCodecSource( - const AString &codecName, const sp &source, const sp &looper, - bool isVorbis); + AsyncCodecSource(const AString &codecName, const sp &source, + const sp &looper, bool isVorbis); bool queueInputBuffer(DroidMediaBuffer *buffer, size_t inputBufferIndex); void queueEOS(size_t index); @@ -119,7 +116,7 @@ class AsyncCodecSource : public MediaSource { sp mLooper; sp mCodecLooper; sp mNotify = 0; - sp > mReflector; + sp> mReflector; Mutexed> mMeta; bool mUsingSurface; @@ -134,10 +131,11 @@ class AsyncCodecSource : public MediaSource { }; State mState = INIT; - struct Output { + struct Output + { Output(); - List mBufferQueue; + List mBufferQueue; bool mReachedEOS; bool mReading = false; Condition mAvailable; @@ -149,4 +147,4 @@ class AsyncCodecSource : public MediaSource { } // namespace android -#endif //ASYNC_DECODING_SOURCE_H_ +#endif // ASYNC_DECODING_SOURCE_H_ diff --git a/allocator.cpp b/allocator.cpp index 0a45d67..5e04e81 100644 --- a/allocator.cpp +++ b/allocator.cpp @@ -17,41 +17,32 @@ */ #if ANDROID_MAJOR < 8 -#include "allocator.h" -#include +# include "allocator.h" +# include -#define LOG_TAG "DroidMediaAllocator" +# define LOG_TAG "DroidMediaAllocator" -DroidMediaAllocator::DroidMediaAllocator() : - m_size(0) -{ - -} - -DroidMediaAllocator::~DroidMediaAllocator() -{ +DroidMediaAllocator::DroidMediaAllocator() : m_size(0) { } -} +DroidMediaAllocator::~DroidMediaAllocator() { } android::sp -DroidMediaAllocator::createGraphicBuffer(uint32_t w, uint32_t h, - android::PixelFormat format, uint32_t usage, -#if ANDROID_MAJOR >= 7 && ANDROID_MINOR >= 1 - std::string requestorName, -#endif - android::status_t* error) +DroidMediaAllocator::createGraphicBuffer(uint32_t w, uint32_t h, android::PixelFormat format, + uint32_t usage, +# if ANDROID_MAJOR >= 7 && ANDROID_MINOR >= 1 + std::string requestorName, +# endif + android::status_t *error) { usage |= android::GraphicBuffer::USAGE_HW_TEXTURE; // Copied from SurfaceFlinger.cpp android::sp -#if (ANDROID_MAJOR == 4 && ANDROID_MINOR < 2) - graphicBuffer(new android::GraphicBuffer(w, h, format, - usage, m_size)); -#else - graphicBuffer(new android::GraphicBuffer(w, h, format, - usage)); -#endif +# if (ANDROID_MAJOR == 4 && ANDROID_MINOR < 2) + graphicBuffer(new android::GraphicBuffer(w, h, format, usage, m_size)); +# else + graphicBuffer(new android::GraphicBuffer(w, h, format, usage)); +# endif android::status_t err = graphicBuffer->initCheck(); *error = err; diff --git a/allocator.h b/allocator.h index e8dc95d..f0113f4 100644 --- a/allocator.h +++ b/allocator.h @@ -24,21 +24,21 @@ class DroidMediaAllocator : public android::BnGraphicBufferAlloc { public: - DroidMediaAllocator(); - ~DroidMediaAllocator(); + DroidMediaAllocator(); + ~DroidMediaAllocator(); - android::sp createGraphicBuffer(uint32_t w, uint32_t h, - android::PixelFormat format, uint32_t usage, + android::sp createGraphicBuffer(uint32_t w, uint32_t h, + android::PixelFormat format, + uint32_t usage, #if ANDROID_MAJOR >= 7 && ANDROID_MINOR >= 1 - std::string requestorName, + std::string requestorName, #endif - android::status_t* error); + android::status_t *error); - void setGraphicBufferSize(int size); - + void setGraphicBufferSize(int size); private: - int m_size; + int m_size; }; #endif /* DROID_MEDIA_ALLOCATOR_H */ diff --git a/droidmedia.cpp b/droidmedia.cpp index 47272a6..5fa12d9 100644 --- a/droidmedia.cpp +++ b/droidmedia.cpp @@ -20,7 +20,6 @@ #include #include - extern "C" { void _droid_media_init() @@ -33,5 +32,4 @@ void droid_media_deinit() android::IPCThreadState::self()->stopProcess(false); android::IPCThreadState::self()->joinThreadPool(); } - }; diff --git a/droidmedia.h b/droidmedia.h index a8ba3ba..75f8f4a 100644 --- a/droidmedia.h +++ b/droidmedia.h @@ -38,49 +38,55 @@ typedef void *EGLSyncKHR; typedef void (*DroidMediaCallback)(void *data); -typedef struct { - void *data; - ssize_t size; +typedef struct +{ + void *data; + ssize_t size; } DroidMediaData; -typedef struct { - DroidMediaCallback ref; - DroidMediaCallback unref; - void *data; +typedef struct +{ + DroidMediaCallback ref; + DroidMediaCallback unref; + void *data; } DroidMediaBufferCallbacks; -typedef struct { - int32_t left; - int32_t top; - int32_t right; - int32_t bottom; +typedef struct +{ + int32_t left; + int32_t top; + int32_t right; + int32_t bottom; } DroidMediaRect; -typedef struct { - bool (* buffer_created)(void *data, DroidMediaBuffer *buffer); - bool (* frame_available)(void *data, DroidMediaBuffer *buffer); - void (* buffers_released)(void *data); +typedef struct +{ + bool (*buffer_created)(void *data, DroidMediaBuffer *buffer); + bool (*frame_available)(void *data, DroidMediaBuffer *buffer); + void (*buffers_released)(void *data); } DroidMediaBufferQueueCallbacks; -typedef struct { - uint32_t transform; - uint32_t scaling_mode; - int64_t timestamp; - uint64_t frame_number; - DroidMediaRect crop_rect; - uint32_t width; - uint32_t height; - int32_t format; - int32_t stride; +typedef struct +{ + uint32_t transform; + uint32_t scaling_mode; + int64_t timestamp; + uint64_t frame_number; + DroidMediaRect crop_rect; + uint32_t width; + uint32_t height; + int32_t format; + int32_t stride; } DroidMediaBufferInfo; -typedef struct { - void *y; - void *cb; - void *cr; - size_t ystride; - size_t cstride; - size_t chroma_step; +typedef struct +{ + void *y; + void *cb; + void *cr; + size_t ystride; + size_t cstride; + size_t chroma_step; } DroidMediaBufferYCbCr; typedef enum { @@ -94,33 +100,29 @@ bool droid_media_init(); void droid_media_deinit(); /* droidmediabuffer.cpp */ -DroidMediaBuffer *droid_media_buffer_create(uint32_t w, uint32_t h, - uint32_t format); +DroidMediaBuffer *droid_media_buffer_create(uint32_t w, uint32_t h, uint32_t format); void *droid_media_buffer_lock(DroidMediaBuffer *buffer, uint32_t flags); -bool droid_media_buffer_lock_ycbcr(DroidMediaBuffer *buffer, - uint32_t flags, DroidMediaBufferYCbCr *ycbcr); +bool droid_media_buffer_lock_ycbcr(DroidMediaBuffer *buffer, uint32_t flags, + DroidMediaBufferYCbCr *ycbcr); void droid_media_buffer_unlock(DroidMediaBuffer *buffer); void droid_media_buffer_get_info(DroidMediaBuffer *buffer, DroidMediaBufferInfo *info); -uint32_t droid_media_buffer_get_transform(DroidMediaBuffer * buffer); -uint32_t droid_media_buffer_get_scaling_mode(DroidMediaBuffer * buffer); -int64_t droid_media_buffer_get_timestamp(DroidMediaBuffer * buffer); -uint64_t droid_media_buffer_get_frame_number(DroidMediaBuffer * buffer); -DroidMediaRect droid_media_buffer_get_crop_rect(DroidMediaBuffer * buffer); -uint32_t droid_media_buffer_get_width(DroidMediaBuffer * buffer); -uint32_t droid_media_buffer_get_height(DroidMediaBuffer * buffer); +uint32_t droid_media_buffer_get_transform(DroidMediaBuffer *buffer); +uint32_t droid_media_buffer_get_scaling_mode(DroidMediaBuffer *buffer); +int64_t droid_media_buffer_get_timestamp(DroidMediaBuffer *buffer); +uint64_t droid_media_buffer_get_frame_number(DroidMediaBuffer *buffer); +DroidMediaRect droid_media_buffer_get_crop_rect(DroidMediaBuffer *buffer); +uint32_t droid_media_buffer_get_width(DroidMediaBuffer *buffer); +uint32_t droid_media_buffer_get_height(DroidMediaBuffer *buffer); const void *droid_media_buffer_get_handle(DroidMediaBuffer *buffer); -void droid_media_buffer_release(DroidMediaBuffer *buffer, - EGLDisplay display, EGLSyncKHR fence); +void droid_media_buffer_release(DroidMediaBuffer *buffer, EGLDisplay display, EGLSyncKHR fence); void droid_media_buffer_destroy(DroidMediaBuffer *buffer); void droid_media_buffer_set_user_data(DroidMediaBuffer *buffer, void *data); void *droid_media_buffer_get_user_data(DroidMediaBuffer *buffer); - - /* private.h */ void droid_media_buffer_queue_set_callbacks(DroidMediaBufferQueue *queue, - DroidMediaBufferQueueCallbacks *cb, void *data); + DroidMediaBufferQueueCallbacks *cb, void *data); int droid_media_buffer_queue_length(); #ifdef __cplusplus diff --git a/droidmediabuffer.cpp b/droidmediabuffer.cpp index 64a94eb..70a9ef1 100644 --- a/droidmediabuffer.cpp +++ b/droidmediabuffer.cpp @@ -25,126 +25,121 @@ #undef LOG_TAG #define LOG_TAG "DroidMediaBuffer" -_DroidMediaBuffer::_DroidMediaBuffer(DroidMediaBufferItem& buffer, - android::sp queue) : - m_buffer(buffer.mGraphicBuffer), - m_queue(queue), - m_refCount(0), - m_transform(buffer.mTransform), - m_scalingMode(buffer.mScalingMode), - m_timestamp(buffer.mTimestamp), - m_frameNumber(buffer.mFrameNumber), - m_crop(buffer.mCrop), +_DroidMediaBuffer::_DroidMediaBuffer(DroidMediaBufferItem &buffer, + android::sp queue) + : m_buffer(buffer.mGraphicBuffer), + m_queue(queue), + m_refCount(0), + m_transform(buffer.mTransform), + m_scalingMode(buffer.mScalingMode), + m_timestamp(buffer.mTimestamp), + m_frameNumber(buffer.mFrameNumber), + m_crop(buffer.mCrop), #if ANDROID_MAJOR >= 6 - m_slot(buffer.mSlot), + m_slot(buffer.mSlot), #else - m_slot(buffer.mBuf), + m_slot(buffer.mBuf), #endif - m_userData(0) + m_userData(0) { - width = buffer.mGraphicBuffer->width; + width = buffer.mGraphicBuffer->width; height = buffer.mGraphicBuffer->height; stride = buffer.mGraphicBuffer->stride; format = buffer.mGraphicBuffer->format; - usage = buffer.mGraphicBuffer->usage; + usage = buffer.mGraphicBuffer->usage; handle = buffer.mGraphicBuffer->handle; common.incRef = incRef; common.decRef = decRef; } -_DroidMediaBuffer::_DroidMediaBuffer(android::sp& buffer) : - m_buffer(buffer), - m_refCount(0), - m_transform(-1), - m_scalingMode(-1), - m_timestamp(-1), - m_frameNumber(-1), - m_slot(-1), - m_userData(0) +_DroidMediaBuffer::_DroidMediaBuffer(android::sp &buffer) + : m_buffer(buffer), + m_refCount(0), + m_transform(-1), + m_scalingMode(-1), + m_timestamp(-1), + m_frameNumber(-1), + m_slot(-1), + m_userData(0) { - width = m_buffer->width; + width = m_buffer->width; height = m_buffer->height; stride = m_buffer->stride; format = m_buffer->format; - usage = m_buffer->usage; + usage = m_buffer->usage; handle = m_buffer->handle; common.incRef = incRef; common.decRef = decRef; } -_DroidMediaBuffer::~_DroidMediaBuffer() -{ -} +_DroidMediaBuffer::~_DroidMediaBuffer() { } -void _DroidMediaBuffer::incRef(struct android_native_base_t* base) +void _DroidMediaBuffer::incRef(struct android_native_base_t *base) { - DroidMediaBuffer * const buffer = reinterpret_cast(base); + DroidMediaBuffer *const buffer = reinterpret_cast(base); - android_atomic_inc(&buffer->m_refCount); + android_atomic_inc(&buffer->m_refCount); } -void _DroidMediaBuffer::decRef(struct android_native_base_t* base) +void _DroidMediaBuffer::decRef(struct android_native_base_t *base) { - DroidMediaBuffer * const buffer = reinterpret_cast(base); + DroidMediaBuffer *const buffer = reinterpret_cast(base); - if (android_atomic_dec(&buffer->m_refCount) == 1) { - delete buffer; - } + if (android_atomic_dec(&buffer->m_refCount) == 1) { + delete buffer; + } } -void _DroidMediaBuffer::update(const DroidMediaBufferItem& buffer) +void _DroidMediaBuffer::update(const DroidMediaBufferItem &buffer) { - m_transform = buffer.mTransform; - m_scalingMode = buffer.mScalingMode; - m_timestamp = buffer.mTimestamp; - m_frameNumber = buffer.mFrameNumber; - m_crop = buffer.mCrop; + m_transform = buffer.mTransform; + m_scalingMode = buffer.mScalingMode; + m_timestamp = buffer.mTimestamp; + m_frameNumber = buffer.mFrameNumber; + m_crop = buffer.mCrop; } extern "C" { -DroidMediaBuffer *droid_media_buffer_create(uint32_t w, uint32_t h, - uint32_t format) +DroidMediaBuffer *droid_media_buffer_create(uint32_t w, uint32_t h, uint32_t format) { - android::sp - buffer(new android::GraphicBuffer(w, h, format, - android::GraphicBuffer::USAGE_HW_TEXTURE)); + android::sp buffer( + new android::GraphicBuffer(w, h, format, android::GraphicBuffer::USAGE_HW_TEXTURE)); - android::status_t err = buffer->initCheck(); + android::status_t err = buffer->initCheck(); - if (err != android::NO_ERROR) { - ALOGE("Error 0x%x allocating buffer", -err); - buffer.clear(); - return NULL; - } + if (err != android::NO_ERROR) { + ALOGE("Error 0x%x allocating buffer", -err); + buffer.clear(); + return NULL; + } - DroidMediaBuffer *droidBuffer = new DroidMediaBuffer(buffer); - droidBuffer->incStrong(0); - return droidBuffer; + DroidMediaBuffer *droidBuffer = new DroidMediaBuffer(buffer); + droidBuffer->incStrong(0); + return droidBuffer; } void droid_media_buffer_destroy(DroidMediaBuffer *buffer) { - buffer->decStrong(0); + buffer->decStrong(0); } void droid_media_buffer_set_user_data(DroidMediaBuffer *buffer, void *data) { - buffer->m_userData = data; + buffer->m_userData = data; } void *droid_media_buffer_get_user_data(DroidMediaBuffer *buffer) { - return buffer->m_userData; + return buffer->m_userData; } -void droid_media_buffer_release(DroidMediaBuffer *buffer, - EGLDisplay display, EGLSyncKHR fence) +void droid_media_buffer_release(DroidMediaBuffer *buffer, EGLDisplay display, EGLSyncKHR fence) { if (buffer->m_queue == NULL) { - return; + return; } buffer->m_queue->releaseMediaBuffer(buffer, display, fence); @@ -152,93 +147,92 @@ void droid_media_buffer_release(DroidMediaBuffer *buffer, void *droid_media_buffer_lock(DroidMediaBuffer *buffer, uint32_t flags) { - int usage = 0; - void *addr = NULL; - android::status_t err; - - if (flags & DROID_MEDIA_BUFFER_LOCK_READ) { - usage |= android::GraphicBuffer::USAGE_SW_READ_RARELY; - } - if (flags & DROID_MEDIA_BUFFER_LOCK_WRITE) { - usage |= android::GraphicBuffer::USAGE_SW_WRITE_RARELY; - } - - err = buffer->m_buffer->lock(usage, &addr); - - if (err != android::NO_ERROR) { - ALOGE("Error 0x%x locking buffer", -err); - return NULL; - } else { - return addr; - } + int usage = 0; + void *addr = NULL; + android::status_t err; + + if (flags & DROID_MEDIA_BUFFER_LOCK_READ) { + usage |= android::GraphicBuffer::USAGE_SW_READ_RARELY; + } + if (flags & DROID_MEDIA_BUFFER_LOCK_WRITE) { + usage |= android::GraphicBuffer::USAGE_SW_WRITE_RARELY; + } + + err = buffer->m_buffer->lock(usage, &addr); + + if (err != android::NO_ERROR) { + ALOGE("Error 0x%x locking buffer", -err); + return NULL; + } else { + return addr; + } } -bool droid_media_buffer_lock_ycbcr(DroidMediaBuffer *buffer, - uint32_t flags, +bool droid_media_buffer_lock_ycbcr(DroidMediaBuffer *buffer, uint32_t flags, DroidMediaBufferYCbCr *ycbcr) { - int usage = 0; - android_ycbcr droid_ycbcr; - android::status_t err; - - if (!ycbcr) { - ALOGE("No buffer for ycbcr data provided"); - return false; - } - - if (flags & DROID_MEDIA_BUFFER_LOCK_READ) { - usage |= android::GraphicBuffer::USAGE_SW_READ_RARELY; - } - if (flags & DROID_MEDIA_BUFFER_LOCK_WRITE) { - usage |= android::GraphicBuffer::USAGE_SW_WRITE_RARELY; - } - - err = buffer->m_buffer->lockYCbCr(usage, &droid_ycbcr); - - if (err != android::NO_ERROR) { - ALOGE("Error 0x%x locking buffer", -err); - return false; - } else { - ycbcr->y = droid_ycbcr.y; - ycbcr->cb = droid_ycbcr.cb; - ycbcr->cr = droid_ycbcr.cr; - ycbcr->ystride = droid_ycbcr.ystride; - ycbcr->cstride = droid_ycbcr.cstride; - ycbcr->chroma_step = droid_ycbcr.chroma_step; - return true; - } + int usage = 0; + android_ycbcr droid_ycbcr; + android::status_t err; + + if (!ycbcr) { + ALOGE("No buffer for ycbcr data provided"); + return false; + } + + if (flags & DROID_MEDIA_BUFFER_LOCK_READ) { + usage |= android::GraphicBuffer::USAGE_SW_READ_RARELY; + } + if (flags & DROID_MEDIA_BUFFER_LOCK_WRITE) { + usage |= android::GraphicBuffer::USAGE_SW_WRITE_RARELY; + } + + err = buffer->m_buffer->lockYCbCr(usage, &droid_ycbcr); + + if (err != android::NO_ERROR) { + ALOGE("Error 0x%x locking buffer", -err); + return false; + } else { + ycbcr->y = droid_ycbcr.y; + ycbcr->cb = droid_ycbcr.cb; + ycbcr->cr = droid_ycbcr.cr; + ycbcr->ystride = droid_ycbcr.ystride; + ycbcr->cstride = droid_ycbcr.cstride; + ycbcr->chroma_step = droid_ycbcr.chroma_step; + return true; + } } void droid_media_buffer_unlock(DroidMediaBuffer *buffer) { - android::status_t err = buffer->m_buffer->unlock(); + android::status_t err = buffer->m_buffer->unlock(); - if (err != android::NO_ERROR) { - ALOGE("Error 0x%x unlocking buffer", -err); - } + if (err != android::NO_ERROR) { + ALOGE("Error 0x%x unlocking buffer", -err); + } } -uint32_t droid_media_buffer_get_transform(DroidMediaBuffer * buffer) +uint32_t droid_media_buffer_get_transform(DroidMediaBuffer *buffer) { return buffer->m_transform; } -uint32_t droid_media_buffer_get_scaling_mode(DroidMediaBuffer * buffer) +uint32_t droid_media_buffer_get_scaling_mode(DroidMediaBuffer *buffer) { return buffer->m_scalingMode; } -int64_t droid_media_buffer_get_timestamp(DroidMediaBuffer * buffer) +int64_t droid_media_buffer_get_timestamp(DroidMediaBuffer *buffer) { return buffer->m_timestamp; } -uint64_t droid_media_buffer_get_frame_number(DroidMediaBuffer * buffer) +uint64_t droid_media_buffer_get_frame_number(DroidMediaBuffer *buffer) { return buffer->m_frameNumber; } -DroidMediaRect droid_media_buffer_get_crop_rect(DroidMediaBuffer * buffer) +DroidMediaRect droid_media_buffer_get_crop_rect(DroidMediaBuffer *buffer) { DroidMediaRect rect; rect.left = buffer->m_crop.left; @@ -249,12 +243,12 @@ DroidMediaRect droid_media_buffer_get_crop_rect(DroidMediaBuffer * buffer) return rect; } -uint32_t droid_media_buffer_get_width(DroidMediaBuffer * buffer) +uint32_t droid_media_buffer_get_width(DroidMediaBuffer *buffer) { return buffer->width; } -uint32_t droid_media_buffer_get_height(DroidMediaBuffer * buffer) +uint32_t droid_media_buffer_get_height(DroidMediaBuffer *buffer) { return buffer->height; } @@ -276,5 +270,4 @@ void droid_media_buffer_get_info(DroidMediaBuffer *buffer, DroidMediaBufferInfo info->format = buffer->format; info->stride = buffer->stride; } - }; diff --git a/droidmediabuffer.h b/droidmediabuffer.h index 1d746ec..2dd574d 100644 --- a/droidmediabuffer.h +++ b/droidmediabuffer.h @@ -32,32 +32,30 @@ typedef android::BufferQueue::BufferItem DroidMediaBufferItem; struct _DroidMediaBuffer : public ANativeWindowBuffer { public: - _DroidMediaBuffer(DroidMediaBufferItem& buffer, - android::sp queue); + _DroidMediaBuffer(DroidMediaBufferItem &buffer, android::sp queue); - _DroidMediaBuffer(android::sp& buffer); + _DroidMediaBuffer(android::sp &buffer); - ~_DroidMediaBuffer(); + ~_DroidMediaBuffer(); - static void incRef(struct android_native_base_t* base); - static void decRef(struct android_native_base_t* base); + static void incRef(struct android_native_base_t *base); + static void decRef(struct android_native_base_t *base); - void update(const DroidMediaBufferItem& buffer); + void update(const DroidMediaBufferItem &buffer); - android::sp m_buffer; - android::sp m_queue; + android::sp m_buffer; + android::sp m_queue; - mutable volatile int32_t m_refCount; - uint32_t m_transform; - uint32_t m_scalingMode; - int64_t m_timestamp; - uint64_t m_frameNumber; + mutable volatile int32_t m_refCount; + uint32_t m_transform; + uint32_t m_scalingMode; + int64_t m_timestamp; + uint64_t m_frameNumber; - android::Rect m_crop; - - int m_slot; - void *m_userData; + android::Rect m_crop; + int m_slot; + void *m_userData; }; #endif /* DROID_MEDIA_BUFFER_H */ diff --git a/droidmediacamera.cpp b/droidmediacamera.cpp index 2dff639..a656397 100644 --- a/droidmediacamera.cpp +++ b/droidmediacamera.cpp @@ -19,7 +19,7 @@ #include "droidmediacamera.h" #if ANDROID_MAJOR < 8 -#include "allocator.h" +# include "allocator.h" #endif #include #include @@ -27,7 +27,7 @@ #include #include #if ANDROID_MAJOR >= 8 -#include +# include #endif #include #include @@ -38,38 +38,39 @@ #define LOG_TAG "DroidMediaCamera" namespace android { - int32_t getColorFormat(const char* colorFormat) { - if (!strcmp(colorFormat, CameraParameters::PIXEL_FORMAT_YUV420P)) { - return OMX_COLOR_FormatYUV420Planar; - } - - if (!strcmp(colorFormat, CameraParameters::PIXEL_FORMAT_YUV422SP)) { - return OMX_COLOR_FormatYUV422SemiPlanar; - } - - if (!strcmp(colorFormat, CameraParameters::PIXEL_FORMAT_YUV420SP)) { - return OMX_COLOR_FormatYUV420SemiPlanar; - } - - if (!strcmp(colorFormat, CameraParameters::PIXEL_FORMAT_YUV422I)) { - return OMX_COLOR_FormatYCbYCr; - } - - if (!strcmp(colorFormat, CameraParameters::PIXEL_FORMAT_RGB565)) { - return OMX_COLOR_Format16bitRGB565; - } - - if (!strcmp(colorFormat, "OMX_TI_COLOR_FormatYUV420PackedSemiPlanar")) { - return OMX_TI_COLOR_FormatYUV420PackedSemiPlanar; - } +int32_t getColorFormat(const char *colorFormat) +{ + if (!strcmp(colorFormat, CameraParameters::PIXEL_FORMAT_YUV420P)) { + return OMX_COLOR_FormatYUV420Planar; + } + + if (!strcmp(colorFormat, CameraParameters::PIXEL_FORMAT_YUV422SP)) { + return OMX_COLOR_FormatYUV422SemiPlanar; + } + + if (!strcmp(colorFormat, CameraParameters::PIXEL_FORMAT_YUV420SP)) { + return OMX_COLOR_FormatYUV420SemiPlanar; + } + + if (!strcmp(colorFormat, CameraParameters::PIXEL_FORMAT_YUV422I)) { + return OMX_COLOR_FormatYCbYCr; + } + + if (!strcmp(colorFormat, CameraParameters::PIXEL_FORMAT_RGB565)) { + return OMX_COLOR_Format16bitRGB565; + } + + if (!strcmp(colorFormat, "OMX_TI_COLOR_FormatYUV420PackedSemiPlanar")) { + return OMX_TI_COLOR_FormatYUV420PackedSemiPlanar; + } #if (ANDROID_MAJOR == 4 && ANDROID_MINOR >= 2) || ANDROID_MAJOR >= 5 - if (!strcmp(colorFormat, CameraParameters::PIXEL_FORMAT_ANDROID_OPAQUE)) { - return OMX_COLOR_FormatAndroidOpaque; - } + if (!strcmp(colorFormat, CameraParameters::PIXEL_FORMAT_ANDROID_OPAQUE)) { + return OMX_COLOR_FormatAndroidOpaque; + } #endif - return -1; - } + return -1; } +} // namespace android extern "C" { @@ -81,10 +82,7 @@ struct _DroidMediaCameraRecordingData struct _DroidMediaCamera { - _DroidMediaCamera() : - m_cb_data(0) { - memset(&m_cb, 0x0, sizeof(m_cb)); - } + _DroidMediaCamera() : m_cb_data(0) { memset(&m_cb, 0x0, sizeof(m_cb)); } android::sp m_camera; android::sp m_queue; @@ -93,121 +91,119 @@ struct _DroidMediaCamera void *m_cb_data; }; -class CameraListener : public android::CameraListener { +class CameraListener : public android::CameraListener +{ public: - CameraListener(DroidMediaCamera *cam) : - m_cam(cam) { - - } + CameraListener(DroidMediaCamera *cam) : m_cam(cam) { } void notify(int32_t msgType, int32_t ext1, int32_t ext2) { switch (msgType) { - case CAMERA_MSG_SHUTTER: - if (m_cam->m_cb.shutter_cb) { - m_cam->m_cb.shutter_cb(m_cam->m_cb_data); - } - break; - - case CAMERA_MSG_FOCUS: - if (m_cam->m_cb.focus_cb) { - m_cam->m_cb.focus_cb(m_cam->m_cb_data, ext1); - } - break; - - case CAMERA_MSG_FOCUS_MOVE: - if (m_cam->m_cb.focus_move_cb) { - m_cam->m_cb.focus_move_cb(m_cam->m_cb_data, ext1); - } - break; - - case CAMERA_MSG_ERROR: - if (m_cam->m_cb.error_cb) { - m_cam->m_cb.error_cb(m_cam->m_cb_data, ext1); - } - break; - - case CAMERA_MSG_ZOOM: - if (m_cam->m_cb.zoom_cb) { - m_cam->m_cb.zoom_cb(m_cam->m_cb_data, ext1, ext2); - } - break; - default: - ALOGW("unknown notify message 0x%x", msgType); - break; + case CAMERA_MSG_SHUTTER: + if (m_cam->m_cb.shutter_cb) { + m_cam->m_cb.shutter_cb(m_cam->m_cb_data); + } + break; + + case CAMERA_MSG_FOCUS: + if (m_cam->m_cb.focus_cb) { + m_cam->m_cb.focus_cb(m_cam->m_cb_data, ext1); + } + break; + + case CAMERA_MSG_FOCUS_MOVE: + if (m_cam->m_cb.focus_move_cb) { + m_cam->m_cb.focus_move_cb(m_cam->m_cb_data, ext1); + } + break; + + case CAMERA_MSG_ERROR: + if (m_cam->m_cb.error_cb) { + m_cam->m_cb.error_cb(m_cam->m_cb_data, ext1); + } + break; + + case CAMERA_MSG_ZOOM: + if (m_cam->m_cb.zoom_cb) { + m_cam->m_cb.zoom_cb(m_cam->m_cb_data, ext1, ext2); + } + break; + default: + ALOGW("unknown notify message 0x%x", msgType); + break; } } - void postData(int32_t msgType, const android::sp& dataPtr, + void postData(int32_t msgType, const android::sp &dataPtr, camera_frame_metadata_t *metadata) { int32_t dataMsgType = msgType & ~CAMERA_MSG_PREVIEW_METADATA; DroidMediaData mem; switch (dataMsgType) { - case CAMERA_MSG_RAW_IMAGE: - mem.size = dataPtr->size(); + case CAMERA_MSG_RAW_IMAGE: + mem.size = dataPtr->size(); #if ANDROID_MAJOR >= 11 - mem.data = dataPtr->unsecurePointer(); + mem.data = dataPtr->unsecurePointer(); #else - mem.data = dataPtr->pointer(); + mem.data = dataPtr->pointer(); #endif - if (m_cam->m_cb.raw_image_cb) { - m_cam->m_cb.raw_image_cb(m_cam->m_cb_data, &mem); - } - break; + if (m_cam->m_cb.raw_image_cb) { + m_cam->m_cb.raw_image_cb(m_cam->m_cb_data, &mem); + } + break; - case CAMERA_MSG_COMPRESSED_IMAGE: - mem.size = dataPtr->size(); + case CAMERA_MSG_COMPRESSED_IMAGE: + mem.size = dataPtr->size(); #if ANDROID_MAJOR >= 11 - mem.data = dataPtr->unsecurePointer(); + mem.data = dataPtr->unsecurePointer(); #else - mem.data = dataPtr->pointer(); + mem.data = dataPtr->pointer(); #endif - if (m_cam->m_cb.compressed_image_cb) { - m_cam->m_cb.compressed_image_cb(m_cam->m_cb_data, &mem); - } - break; + if (m_cam->m_cb.compressed_image_cb) { + m_cam->m_cb.compressed_image_cb(m_cam->m_cb_data, &mem); + } + break; - case CAMERA_MSG_POSTVIEW_FRAME: - mem.size = dataPtr->size(); + case CAMERA_MSG_POSTVIEW_FRAME: + mem.size = dataPtr->size(); #if ANDROID_MAJOR >= 11 - mem.data = dataPtr->unsecurePointer(); + mem.data = dataPtr->unsecurePointer(); #else - mem.data = dataPtr->pointer(); + mem.data = dataPtr->pointer(); #endif - if (m_cam->m_cb.postview_frame_cb) { - m_cam->m_cb.postview_frame_cb(m_cam->m_cb_data, &mem); - } - break; - - case CAMERA_MSG_RAW_IMAGE_NOTIFY: - if (m_cam->m_cb.raw_image_notify_cb) { - m_cam->m_cb.raw_image_notify_cb(m_cam->m_cb_data); - } - break; - - case CAMERA_MSG_PREVIEW_FRAME: - mem.size = dataPtr->size(); + if (m_cam->m_cb.postview_frame_cb) { + m_cam->m_cb.postview_frame_cb(m_cam->m_cb_data, &mem); + } + break; + + case CAMERA_MSG_RAW_IMAGE_NOTIFY: + if (m_cam->m_cb.raw_image_notify_cb) { + m_cam->m_cb.raw_image_notify_cb(m_cam->m_cb_data); + } + break; + + case CAMERA_MSG_PREVIEW_FRAME: + mem.size = dataPtr->size(); #if ANDROID_MAJOR >= 11 - mem.data = dataPtr->unsecurePointer(); + mem.data = dataPtr->unsecurePointer(); #else - mem.data = dataPtr->pointer(); + mem.data = dataPtr->pointer(); #endif - if (m_cam->m_cb.preview_frame_cb) { - m_cam->m_cb.preview_frame_cb(m_cam->m_cb_data, &mem); - } - break; - - case 0: - // Nothing - break; - - default: - ALOGW("unknown postData message 0x%x", dataMsgType); - break; + if (m_cam->m_cb.preview_frame_cb) { + m_cam->m_cb.preview_frame_cb(m_cam->m_cb_data, &mem); + } + break; + + case 0: + // Nothing + break; + + default: + ALOGW("unknown postData message 0x%x", dataMsgType); + break; } if (metadata && (msgType & CAMERA_MSG_PREVIEW_METADATA) @@ -216,37 +212,38 @@ class CameraListener : public android::CameraListener { } } - void postDataTimestamp(nsecs_t timestamp, int32_t msgType, const android::sp& dataPtr) + void postDataTimestamp(nsecs_t timestamp, int32_t msgType, + const android::sp &dataPtr) { switch (msgType) { - case CAMERA_MSG_VIDEO_FRAME: - if (m_cam->m_cb.video_frame_cb) { - // TODO: revisit this data structure - DroidMediaCameraRecordingData *data = new DroidMediaCameraRecordingData; - data->mem = dataPtr; - data->ts = timestamp; - m_cam->m_cb.video_frame_cb(m_cam->m_cb_data, data); - } else { - m_cam->m_camera->releaseRecordingFrame(dataPtr); - } - - break; - - default: - ALOGW("unknown postDataTimestamp message 0x%x", msgType); - break; + case CAMERA_MSG_VIDEO_FRAME: + if (m_cam->m_cb.video_frame_cb) { + // TODO: revisit this data structure + DroidMediaCameraRecordingData *data = new DroidMediaCameraRecordingData; + data->mem = dataPtr; + data->ts = timestamp; + m_cam->m_cb.video_frame_cb(m_cam->m_cb_data, data); + } else { + m_cam->m_camera->releaseRecordingFrame(dataPtr); + } + + break; + + default: + ALOGW("unknown postDataTimestamp message 0x%x", msgType); + break; } } #if ANDROID_MAJOR >= 7 - void postRecordingFrameHandleTimestamp(nsecs_t timestamp, native_handle_t* handle) + void postRecordingFrameHandleTimestamp(nsecs_t timestamp, native_handle_t *handle) { - ALOGW("postRecordingFrameHandleTimestamp - not sure what to do"); + ALOGW("postRecordingFrameHandleTimestamp - not sure what to do"); } #endif #if ANDROID_MAJOR >= 8 - void postRecordingFrameHandleTimestampBatch(const std::vector& timestamps, - const std::vector& handles) + void postRecordingFrameHandleTimestampBatch(const std::vector ×tamps, + const std::vector &handles) { ALOGW("postRecordingFrameHandleTimestampBatch - not sure what to do"); } @@ -281,14 +278,14 @@ class CameraListener : public android::CameraListener { DroidMediaCamera *m_cam; }; -DroidMediaBufferQueue *droid_media_camera_get_buffer_queue (DroidMediaCamera *camera) +DroidMediaBufferQueue *droid_media_camera_get_buffer_queue(DroidMediaCamera *camera) { - return camera->m_queue.get(); + return camera->m_queue.get(); } -DroidMediaBufferQueue *droid_media_camera_get_recording_buffer_queue (DroidMediaCamera *camera) +DroidMediaBufferQueue *droid_media_camera_get_recording_buffer_queue(DroidMediaCamera *camera) { - return camera->m_recording_queue.get(); + return camera->m_recording_queue.get(); } int droid_media_camera_get_number_of_cameras() @@ -301,18 +298,20 @@ bool droid_media_camera_get_info(DroidMediaCameraInfo *info, int camera_number) android::CameraInfo inf; if (android::Camera::getCameraInfo(camera_number, -#if ANDROID_MAJOR >= 13 && (!defined(LEGACY_ANDROID_13_REVISION) || LEGACY_ANDROID_13_REVISION >= 32) - false/*overrideToPortrait*/, +#if ANDROID_MAJOR >= 13 \ + && (!defined(LEGACY_ANDROID_13_REVISION) || LEGACY_ANDROID_13_REVISION >= 32) + false /*overrideToPortrait*/, #endif - &inf) != 0) { + &inf) + != 0) { return false; } info->orientation = inf.orientation; if (inf.facing == CAMERA_FACING_FRONT) { - info->facing = DROID_MEDIA_CAMERA_FACING_FRONT; + info->facing = DROID_MEDIA_CAMERA_FACING_FRONT; } else { - info->facing = DROID_MEDIA_CAMERA_FACING_BACK; + info->facing = DROID_MEDIA_CAMERA_FACING_BACK; } return true; @@ -320,8 +319,8 @@ bool droid_media_camera_get_info(DroidMediaCameraInfo *info, int camera_number) DroidMediaCamera *droid_media_camera_connect(int camera_number) { - android::sp - queue(new DroidMediaBufferQueue("DroidMediaCameraBufferQueue")); + android::sp queue( + new DroidMediaBufferQueue("DroidMediaCameraBufferQueue")); if (!queue->connectListener()) { ALOGE("Failed to connect buffer queue listener"); return NULL; @@ -337,29 +336,37 @@ DroidMediaCamera *droid_media_camera_connect(int camera_number) cam->m_camera = android::Camera::connect(camera_number); #elif (ANDROID_MAJOR == 4 && ANDROID_MINOR == 4) cam->m_camera = android::Camera::connect(camera_number, android::String16("droidmedia"), - android::Camera::USE_CALLING_UID); + android::Camera::USE_CALLING_UID); #else // Force HAL version if defined -#ifdef FORCE_HAL +# ifdef FORCE_HAL ALOGI("Connecting HAL version %d", FORCE_HAL); - android::OK != android::Camera::connectLegacy(camera_number, FORCE_HAL << 8, android::String16("droidmedia"), - android::Camera::USE_CALLING_UID, cam->m_camera); -#else // Default connect + android::OK + != android::Camera::connectLegacy(camera_number, FORCE_HAL << 8, + android::String16("droidmedia"), + android::Camera::USE_CALLING_UID, cam->m_camera); +# else // Default connect cam->m_camera = android::Camera::connect(camera_number, android::String16("droidmedia"), - android::Camera::USE_CALLING_UID -#if (ANDROID_MAJOR >= 7) - , android::Camera::USE_CALLING_PID -#endif -#if (ANDROID_MAJOR >= 12) - , __ANDROID_API_FUTURE__ -#endif -#if (ANDROID_MAJOR >= 13) && (!defined(LEGACY_ANDROID_13_REVISION) || LEGACY_ANDROID_13_REVISION >= 32) - , false -#endif -#if (ANDROID_MAJOR >= 13) && (!defined(LEGACY_ANDROID_13_REVISION) || LEGACY_ANDROID_13_REVISION >= 50) - , false -#endif - ); -#endif + android::Camera::USE_CALLING_UID +# if (ANDROID_MAJOR >= 7) + , + android::Camera::USE_CALLING_PID +# endif +# if (ANDROID_MAJOR >= 12) + , + __ANDROID_API_FUTURE__ +# endif +# if (ANDROID_MAJOR >= 13) \ + && (!defined(LEGACY_ANDROID_13_REVISION) || LEGACY_ANDROID_13_REVISION >= 32) + , + false +# endif +# if (ANDROID_MAJOR >= 13) \ + && (!defined(LEGACY_ANDROID_13_REVISION) || LEGACY_ANDROID_13_REVISION >= 50) + , + false +# endif + ); +# endif #endif if (cam->m_camera.get() == NULL) { delete cam; @@ -371,15 +378,15 @@ DroidMediaCamera *droid_media_camera_connect(int camera_number) cam->m_queue->attachToCameraPreview(cam->m_camera); #if ANDROID_MAJOR >= 9 - android::sp - recording_queue(new DroidMediaBufferQueue("DroidMediaCameraBufferRecordingQueue")); + android::sp recording_queue( + new DroidMediaBufferQueue("DroidMediaCameraBufferRecordingQueue")); if (!recording_queue->connectListener()) { ALOGE("Failed to connect video buffer queue listener"); } else { - cam->m_recording_queue = recording_queue; - cam->m_recording_queue->attachToCameraVideo(cam->m_camera); - cam->m_camera->setVideoBufferMode( - android::hardware::ICamera::VIDEO_BUFFER_MODE_BUFFER_QUEUE); + cam->m_recording_queue = recording_queue; + cam->m_recording_queue->attachToCameraVideo(cam->m_camera); + cam->m_camera->setVideoBufferMode( + android::hardware::ICamera::VIDEO_BUFFER_MODE_BUFFER_QUEUE); } #endif @@ -388,7 +395,8 @@ DroidMediaCamera *droid_media_camera_connect(int camera_number) return cam; } -bool droid_media_camera_reconnect(DroidMediaCamera *camera) { +bool droid_media_camera_reconnect(DroidMediaCamera *camera) +{ return camera->m_camera->reconnect() == android::NO_ERROR; } @@ -400,18 +408,20 @@ void droid_media_camera_disconnect(DroidMediaCamera *camera) #if ANDROID_MAJOR >= 9 if (camera->m_recording_queue.get()) { - camera->m_recording_queue->setCallbacks(0, 0); + camera->m_recording_queue->setCallbacks(0, 0); } #endif delete camera; } -bool droid_media_camera_lock(DroidMediaCamera *camera) { +bool droid_media_camera_lock(DroidMediaCamera *camera) +{ return camera->m_camera->lock() == android::NO_ERROR; } -bool droid_media_camera_unlock(DroidMediaCamera *camera) { +bool droid_media_camera_unlock(DroidMediaCamera *camera) +{ return camera->m_camera->unlock() == android::NO_ERROR; } @@ -455,13 +465,15 @@ bool droid_media_camera_cancel_auto_focus(DroidMediaCamera *camera) return camera->m_camera->cancelAutoFocus() == android::NO_ERROR; } -void droid_media_camera_set_callbacks(DroidMediaCamera *camera, DroidMediaCameraCallbacks *cb, void *data) +void droid_media_camera_set_callbacks(DroidMediaCamera *camera, DroidMediaCameraCallbacks *cb, + void *data) { memcpy(&camera->m_cb, cb, sizeof(camera->m_cb)); camera->m_cb_data = data; } -bool droid_media_camera_send_command(DroidMediaCamera *camera, int32_t cmd, int32_t arg1, int32_t arg2) +bool droid_media_camera_send_command(DroidMediaCamera *camera, int32_t cmd, int32_t arg1, + int32_t arg2) { return camera->m_camera->sendCommand(cmd, arg1, arg2) == android::NO_ERROR; } @@ -472,24 +484,27 @@ bool droid_media_camera_store_meta_data_in_buffers(DroidMediaCamera *camera, boo return camera->m_camera->storeMetaDataInBuffers(enabled) == android::NO_ERROR; #else if (enabled) { - if (android::OK == camera->m_camera->setVideoBufferMode( - android::hardware::ICamera::VIDEO_BUFFER_MODE_BUFFER_QUEUE)) { + if (android::OK + == camera->m_camera->setVideoBufferMode( + android::hardware::ICamera::VIDEO_BUFFER_MODE_BUFFER_QUEUE)) { ALOGI("Recording in buffer queue mode"); return true; - } else if (android::OK == camera->m_camera->setVideoBufferMode( - android::hardware::ICamera::VIDEO_BUFFER_MODE_DATA_CALLBACK_METADATA)) { + } else if (android::OK + == camera->m_camera->setVideoBufferMode( + android::hardware::ICamera::VIDEO_BUFFER_MODE_DATA_CALLBACK_METADATA)) { ALOGI("Recording in callback metadata mode"); return true; } } camera->m_camera->setVideoBufferMode( - android::hardware::ICamera::VIDEO_BUFFER_MODE_DATA_CALLBACK_YUV); + android::hardware::ICamera::VIDEO_BUFFER_MODE_DATA_CALLBACK_YUV); ALOGI("Recording in callback yuv mode"); return !enabled; // false if metadata mode was requested. #endif } -void droid_media_camera_set_preview_callback_flags(DroidMediaCamera *camera, int preview_callback_flag) +void droid_media_camera_set_preview_callback_flags(DroidMediaCamera *camera, + int preview_callback_flag) { camera->m_camera->setPreviewCallbackFlags(preview_callback_flag); } @@ -526,7 +541,8 @@ bool droid_media_camera_take_picture(DroidMediaCamera *camera, int msgType) return camera->m_camera->takePicture(msgType) == android::NO_ERROR; } -void droid_media_camera_release_recording_frame(DroidMediaCamera *camera, DroidMediaCameraRecordingData *data) +void droid_media_camera_release_recording_frame(DroidMediaCamera *camera, + DroidMediaCameraRecordingData *data) { camera->m_camera->releaseRecordingFrame(data->mem); delete data; @@ -552,26 +568,26 @@ void *droid_media_camera_recording_frame_get_data(DroidMediaCameraRecordingData } bool droid_media_camera_enable_face_detection(DroidMediaCamera *camera, - DroidMediaCameraFaceDetectionType type, bool enable) + DroidMediaCameraFaceDetectionType type, bool enable) { - int detection_type = type == DROID_MEDIA_CAMERA_FACE_DETECTION_HW ? CAMERA_FACE_DETECTION_HW : - CAMERA_FACE_DETECTION_SW; + int detection_type = type == DROID_MEDIA_CAMERA_FACE_DETECTION_HW ? CAMERA_FACE_DETECTION_HW + : CAMERA_FACE_DETECTION_SW; - int cmd = enable ? CAMERA_CMD_START_FACE_DETECTION : CAMERA_CMD_STOP_FACE_DETECTION; + int cmd = enable ? CAMERA_CMD_START_FACE_DETECTION : CAMERA_CMD_STOP_FACE_DETECTION; - return droid_media_camera_send_command (camera, cmd, detection_type, 0); + return droid_media_camera_send_command(camera, cmd, detection_type, 0); } -int32_t droid_media_camera_get_video_color_format (DroidMediaCamera *camera) +int32_t droid_media_camera_get_video_color_format(DroidMediaCamera *camera) { - android::CameraParameters p(camera->m_camera->getParameters()); + android::CameraParameters p(camera->m_camera->getParameters()); - return android::getColorFormat(p.get(android::CameraParameters::KEY_VIDEO_FRAME_FORMAT)); + return android::getColorFormat(p.get(android::CameraParameters::KEY_VIDEO_FRAME_FORMAT)); } - }; -android::sp droid_media_camera_get_camera (DroidMediaCamera *camera) { - return camera->m_camera; +android::sp droid_media_camera_get_camera(DroidMediaCamera *camera) +{ + return camera->m_camera; } diff --git a/droidmediacamera.h b/droidmediacamera.h index 595c337..e18463e 100644 --- a/droidmediacamera.h +++ b/droidmediacamera.h @@ -36,47 +36,50 @@ typedef struct _DroidMediaCameraRecordingData DroidMediaCameraRecordingData; #define DROID_MEDIA_CAMERA_FACING_BACK 1 typedef enum { - DROID_MEDIA_CAMERA_FACE_DETECTION_HW = 0, - DROID_MEDIA_CAMERA_FACE_DETECTION_SW = 1, + DROID_MEDIA_CAMERA_FACE_DETECTION_HW = 0, + DROID_MEDIA_CAMERA_FACE_DETECTION_SW = 1, } DroidMediaCameraFaceDetectionType; -typedef struct { - int facing; - int orientation; +typedef struct +{ + int facing; + int orientation; } DroidMediaCameraInfo; -typedef struct { - int32_t left; - int32_t top; - int32_t right; - int32_t bottom; - int32_t score; - int32_t id; - - int32_t left_eye[2]; - int32_t right_eye[2]; - int32_t mouth[2]; +typedef struct +{ + int32_t left; + int32_t top; + int32_t right; + int32_t bottom; + int32_t score; + int32_t id; + + int32_t left_eye[2]; + int32_t right_eye[2]; + int32_t mouth[2]; } DroidMediaCameraFace; -typedef struct { - void (* shutter_cb) (void *data); - void (* focus_cb) (void *data, int arg); - void (* focus_move_cb) (void *data, int arg); - void (* error_cb) (void *data, int arg); - void (* zoom_cb) (void *data, int value, int arg); - - void (* raw_image_cb) (void *data, DroidMediaData *mem); - void (* compressed_image_cb) (void *data, DroidMediaData *mem); - void (* postview_frame_cb) (void *data, DroidMediaData *mem); - void (* raw_image_notify_cb) (void *data); - void (* preview_frame_cb) (void *data, DroidMediaData *mem); - - void (* preview_metadata_cb) (void *data, const DroidMediaCameraFace *faces, size_t num_faces); - void (* video_frame_cb) (void *data, DroidMediaCameraRecordingData *video_data); +typedef struct +{ + void (*shutter_cb)(void *data); + void (*focus_cb)(void *data, int arg); + void (*focus_move_cb)(void *data, int arg); + void (*error_cb)(void *data, int arg); + void (*zoom_cb)(void *data, int value, int arg); + + void (*raw_image_cb)(void *data, DroidMediaData *mem); + void (*compressed_image_cb)(void *data, DroidMediaData *mem); + void (*postview_frame_cb)(void *data, DroidMediaData *mem); + void (*raw_image_notify_cb)(void *data); + void (*preview_frame_cb)(void *data, DroidMediaData *mem); + + void (*preview_metadata_cb)(void *data, const DroidMediaCameraFace *faces, size_t num_faces); + void (*video_frame_cb)(void *data, DroidMediaCameraRecordingData *video_data); } DroidMediaCameraCallbacks; -DroidMediaBufferQueue *droid_media_camera_get_buffer_queue (DroidMediaCamera *camera); -DroidMediaBufferQueue *droid_media_camera_get_recording_buffer_queue (DroidMediaCamera *camera); +DroidMediaBufferQueue *droid_media_camera_get_buffer_queue(DroidMediaCamera *camera); +DroidMediaBufferQueue *droid_media_camera_get_recording_buffer_queue(DroidMediaCamera *camera); int droid_media_camera_get_number_of_cameras(); bool droid_media_camera_get_info(DroidMediaCameraInfo *info, int camera_number); @@ -98,26 +101,30 @@ bool droid_media_camera_is_recording_enabled(DroidMediaCamera *camera); bool droid_media_camera_start_auto_focus(DroidMediaCamera *camera); bool droid_media_camera_cancel_auto_focus(DroidMediaCamera *camera); -void droid_media_camera_set_callbacks(DroidMediaCamera *camera, DroidMediaCameraCallbacks *cb, void *data); -bool droid_media_camera_send_command(DroidMediaCamera *camera, int32_t cmd, int32_t arg1, int32_t arg2); +void droid_media_camera_set_callbacks(DroidMediaCamera *camera, DroidMediaCameraCallbacks *cb, + void *data); +bool droid_media_camera_send_command(DroidMediaCamera *camera, int32_t cmd, int32_t arg1, + int32_t arg2); bool droid_media_camera_store_meta_data_in_buffers(DroidMediaCamera *camera, bool enabled); -void droid_media_camera_set_preview_callback_flags(DroidMediaCamera *camera, int preview_callback_flag); +void droid_media_camera_set_preview_callback_flags(DroidMediaCamera *camera, + int preview_callback_flag); bool droid_media_camera_set_parameters(DroidMediaCamera *camera, const char *params); char *droid_media_camera_get_parameters(DroidMediaCamera *camera); bool droid_media_camera_take_picture(DroidMediaCamera *camera, int msgType); -void droid_media_camera_release_recording_frame(DroidMediaCamera *camera, DroidMediaCameraRecordingData *data); +void droid_media_camera_release_recording_frame(DroidMediaCamera *camera, + DroidMediaCameraRecordingData *data); nsecs_t droid_media_camera_recording_frame_get_timestamp(DroidMediaCameraRecordingData *data); size_t droid_media_camera_recording_frame_get_size(DroidMediaCameraRecordingData *data); void *droid_media_camera_recording_frame_get_data(DroidMediaCameraRecordingData *data); bool droid_media_camera_enable_face_detection(DroidMediaCamera *camera, - DroidMediaCameraFaceDetectionType type, bool enable); + DroidMediaCameraFaceDetectionType type, bool enable); -int32_t droid_media_camera_get_video_color_format (DroidMediaCamera *camera); +int32_t droid_media_camera_get_video_color_format(DroidMediaCamera *camera); #ifdef __cplusplus }; diff --git a/droidmediacodec.cpp b/droidmediacodec.cpp index 9d75d22..288d126 100644 --- a/droidmediacodec.cpp +++ b/droidmediacodec.cpp @@ -18,39 +18,39 @@ */ #if ANDROID_MAJOR >= 9 -#include +# include #elif ANDROID_MAJOR >= 8 -#include +# include #else -#include +# include #endif #include // MediaCodecSource should be used instead of OMXCodec from Android 5 #if ANDROID_MAJOR >= 5 -#include -#include -#include -#include -#include -#include -#include -#include +# include +# include +# include +# include +# include +# include +# include +# include #endif #include "mediabuffers.h" #if ANDROID_MAJOR < 7 -#include +# include #else -#include -#include "AsyncCodecSource.h" +# include +# include "AsyncCodecSource.h" #endif #if ANDROID_MAJOR >= 9 && ANDROID_MAJOR <= 10 -#include +# include #else -#include +# include #endif #include #include @@ -58,7 +58,7 @@ #include #include "droidmediacodec.h" #if ANDROID_MAJOR < 8 -#include "allocator.h" +# include "allocator.h" #endif #include "private.h" #include "droidmediabuffer.h" @@ -67,38 +67,39 @@ #define LOG_TAG "DroidMediaCodec" #define DROID_MEDIA_CODEC_MAX_INPUT_BUFFERS 5 -#define SET_PARAM(k,v) \ - if (meta->v >= 0) { \ - md->setInt32(android::k, meta->v); \ - } +#define SET_PARAM(k, v) \ + if (meta->v >= 0) { \ + md->setInt32(android::k, meta->v); \ + } -struct DroidMediaCodecMetaDataKey { +struct DroidMediaCodecMetaDataKey +{ const char *mime; int key; int type; } metaDataKeys[] = { #if ANDROID_MAJOR >= 10 - {android::MEDIA_MIMETYPE_VIDEO_AV1, android::kKeyAV1C, android::kKeyAV1C}, + { android::MEDIA_MIMETYPE_VIDEO_AV1, android::kKeyAV1C, android::kKeyAV1C }, #endif #if ANDROID_MAJOR >= 5 - {android::MEDIA_MIMETYPE_VIDEO_HEVC, android::kKeyHVCC, android::kKeyHVCC}, + { android::MEDIA_MIMETYPE_VIDEO_HEVC, android::kKeyHVCC, android::kKeyHVCC }, #endif - {android::MEDIA_MIMETYPE_VIDEO_MPEG4, android::kKeyESDS, android::kTypeESDS}, - {android::MEDIA_MIMETYPE_AUDIO_AAC, android::kKeyESDS, android::kTypeESDS}, - {android::MEDIA_MIMETYPE_VIDEO_AVC, android::kKeyAVCC, android::kTypeAVCC}, - {NULL, 0, 0} + { android::MEDIA_MIMETYPE_VIDEO_MPEG4, android::kKeyESDS, android::kTypeESDS }, + { android::MEDIA_MIMETYPE_AUDIO_AAC, android::kKeyESDS, android::kTypeESDS }, + { android::MEDIA_MIMETYPE_VIDEO_AVC, android::kKeyAVCC, android::kTypeAVCC }, + { NULL, 0, 0 } }; -class Source : public android::MediaSource { +class Source : public android::MediaSource +{ public: - Source(android::sp& metaData) : - m_metaData(metaData), - m_running(false), - m_draining(false) + Source(android::sp &metaData) + : m_metaData(metaData), m_running(false), m_draining(false) { } - void unlock() { + void unlock() + { m_framesReceived.lock.lock(); m_framesReceived.cond.broadcast(); m_framesReceived.lock.unlock(); @@ -107,20 +108,22 @@ class Source : public android::MediaSource { // After this is called all new buffers will be rejected. get() will still return any already // queued buffers but once the queue has been emptied it will return a null buffer indicating // the end of the stream. There is no coming back from this. - void drain() { + void drain() + { m_framesReceived.lock.lock(); m_draining = true; m_framesReceived.cond.broadcast(); m_framesReceived.lock.unlock(); } - void add(android::MediaBuffer *buffer) { + void add(android::MediaBuffer *buffer) + { m_framesReceived.lock.lock(); // drain buffer gets added without checking to avoid a deadlock while (!m_draining) { - // TODO: I am not sure this is the right approach here. + // TODO: I am not sure this is the right approach here. if (m_framesReceived.buffers.size() < DROID_MEDIA_CODEC_MAX_INPUT_BUFFERS) { m_framesReceived.buffers.push_back(buffer); m_framesReceived.cond.signal(); @@ -137,7 +140,8 @@ class Source : public android::MediaSource { buffer->release(); } - android::MediaBuffer *get() { + android::MediaBuffer *get() + { m_framesReceived.lock.lock(); for (;;) { @@ -147,7 +151,8 @@ class Source : public android::MediaSource { } if (!m_framesReceived.buffers.empty()) { - android::List::iterator iter = m_framesReceived.buffers.begin(); + android::List::iterator iter = + m_framesReceived.buffers.begin(); android::MediaBuffer *buffer = *iter; m_framesReceived.buffers.erase(iter); @@ -176,12 +181,14 @@ class Source : public android::MediaSource { return NULL; } - void removeProcessedBuffer(android::MediaBuffer *buffer) { + void removeProcessedBuffer(android::MediaBuffer *buffer) + { m_framesBeingProcessed.lock.lock(); - for (android::List::iterator iter = m_framesBeingProcessed.buffers.begin(); + for (android::List::iterator iter = + m_framesBeingProcessed.buffers.begin(); iter != m_framesBeingProcessed.buffers.end(); iter++) { if (*iter == buffer) { - m_framesBeingProcessed.buffers.erase(iter); + m_framesBeingProcessed.buffers.erase(iter); m_framesBeingProcessed.cond.signal(); m_framesBeingProcessed.lock.unlock(); return; @@ -192,7 +199,8 @@ class Source : public android::MediaSource { ALOGW("A buffer we don't know about is being finished!"); } - void flush() { + void flush() + { m_framesReceived.lock.lock(); while (!m_framesReceived.buffers.empty()) { @@ -210,17 +218,20 @@ class Source : public android::MediaSource { } private: - android::status_t start(android::MetaData *meta DM_UNUSED) { + android::status_t start(android::MetaData *meta DM_UNUSED) + { m_running = true; return android::OK; } - android::sp getFormat() { + android::sp getFormat() + { // TODO: The only way to pass rotation is via a key here kKeyRotation return m_metaData; } - android::status_t stop() { + android::status_t stop() + { // Mark as not running m_framesReceived.lock.lock(); m_running = false; @@ -249,7 +260,8 @@ class Source : public android::MediaSource { #else android::status_t read(android::MediaBuffer **buffer, #endif - const android::MediaSource::ReadOptions *options DM_UNUSED = NULL) { + const android::MediaSource::ReadOptions *options DM_UNUSED = NULL) + { *buffer = get(); if (*buffer) { @@ -262,20 +274,19 @@ class Source : public android::MediaSource { android::sp m_metaData; bool m_running; bool m_draining; - Buffers m_framesReceived; - Buffers m_framesBeingProcessed; + Buffers m_framesReceived; + Buffers m_framesBeingProcessed; }; -class InputBuffer : public android::MediaBuffer { +class InputBuffer : public android::MediaBuffer +{ public: - InputBuffer(void *data, size_t size, void *cb_data, DroidMediaCallback unref) : - android::MediaBuffer(data, size), - m_cb_data(cb_data), - m_unref(unref) { + InputBuffer(void *data, size_t size, void *cb_data, DroidMediaCallback unref) + : android::MediaBuffer(data, size), m_cb_data(cb_data), m_unref(unref) + { } - ~InputBuffer() { - } + ~InputBuffer() { } void *m_cb_data; DroidMediaCallback m_unref; @@ -283,21 +294,21 @@ class InputBuffer : public android::MediaBuffer { struct _DroidMediaCodec : public android::MediaBufferObserver { - _DroidMediaCodec() : - m_cb_data(0), - m_data_cb_data(0) { + _DroidMediaCodec() : m_cb_data(0), m_data_cb_data(0) + { memset(&m_cb, 0x0, sizeof(m_cb)); memset(&m_data_cb, 0x0, sizeof(m_data_cb)); } - ~_DroidMediaCodec() { - m_codec.clear(); - m_src.clear(); - m_queue.clear(); - m_window.clear(); - m_thread.clear(); + ~_DroidMediaCodec() + { + m_codec.clear(); + m_src.clear(); + m_queue.clear(); + m_window.clear(); + m_thread.clear(); #if ANDROID_MAJOR >= 5 - m_looper->stop(); + m_looper->stop(); #endif } @@ -307,7 +318,7 @@ struct _DroidMediaCodec : public android::MediaBufferObserver void signalBufferReturned(android::MediaBuffer *buff) #endif { - InputBuffer *buffer = (InputBuffer *) buff; + InputBuffer *buffer = (InputBuffer *)buff; m_src->removeProcessedBuffer(buffer); @@ -318,20 +329,21 @@ struct _DroidMediaCodec : public android::MediaBufferObserver buff->release(); } - bool notifySizeChanged() { + bool notifySizeChanged() + { android::sp meta = m_codec->getFormat(); int32_t width = 0, height = 0; - if (!meta->findInt32(android::kKeyWidth, &width) || - !meta->findInt32(android::kKeyHeight, &height)) { - ALOGW("notifySizeChanged without dimensions"); - return true; - } + if (!meta->findInt32(android::kKeyWidth, &width) + || !meta->findInt32(android::kKeyHeight, &height)) { + ALOGW("notifySizeChanged without dimensions"); + return true; + } ALOGI("notifySizeChanged: width = %d, height = %d", width, height); if (m_cb.size_changed) { - return m_cb.size_changed (m_cb_data, width, height) == 0 ? true : false; + return m_cb.size_changed(m_cb_data, width, height) == 0 ? true : false; } return true; @@ -355,399 +367,406 @@ struct _DroidMediaCodec : public android::MediaBufferObserver void *m_data_cb_data; }; -class DroidMediaCodecLoop : public android::Thread { +class DroidMediaCodecLoop : public android::Thread +{ public: - DroidMediaCodecLoop(DroidMediaCodec *codec) : - Thread(false), - m_codec(codec) { - } + DroidMediaCodecLoop(DroidMediaCodec *codec) : Thread(false), m_codec(codec) { } - bool threadLoop() { - return droid_media_codec_loop (m_codec) == DROID_MEDIA_CODEC_LOOP_OK ? true : false; + bool threadLoop() + { + return droid_media_codec_loop(m_codec) == DROID_MEDIA_CODEC_LOOP_OK ? true : false; } private: DroidMediaCodec *m_codec; }; -class DroidMediaCodecBuilder { +class DroidMediaCodecBuilder +{ public: - DroidMediaCodecBuilder(DroidMediaCodecEncoderMetaData *meta) : - m_enc(meta), m_dec(NULL) {} - DroidMediaCodecBuilder(DroidMediaCodecDecoderMetaData *meta) : - m_enc(NULL), m_dec(meta) {} + DroidMediaCodecBuilder(DroidMediaCodecEncoderMetaData *meta) : m_enc(meta), m_dec(NULL) { } + DroidMediaCodecBuilder(DroidMediaCodecDecoderMetaData *meta) : m_enc(NULL), m_dec(meta) { } - android::sp createCodec(android::sp src, - android::sp window, + android::sp createCodec(android::sp src, + android::sp window, #if ANDROID_MAJOR >= 5 - android::sp looper = NULL, + android::sp looper = NULL, #endif - android::sp md = NULL - ) { + android::sp md = NULL) + { - if (md == NULL) { - md = buildMetaData(); - } + if (md == NULL) { + md = buildMetaData(); + } - if (md == NULL) { - return NULL; - } + if (md == NULL) { + return NULL; + } #if ANDROID_MAJOR >= 5 - const char *mime; - if (!md->findCString(android::kKeyMIMEType, &mime)) { - ALOGE("No mime type declared for codec"); - return NULL; - } + const char *mime; + if (!md->findCString(android::kKeyMIMEType, &mime)) { + ALOGE("No mime type declared for codec"); + return NULL; + } - if (isEncoder()) { - if (!strncmp("video", mime, 5)) { - android::sp format = new android::AMessage(); + if (isEncoder()) { + if (!strncmp("video", mime, 5)) { + android::sp format = new android::AMessage(); - format->setString("mime", mime); - ALOGW("Creating video encoder for %s", mime); - int32_t width, height, stride, sliceh, colour, frames, maxinput, bitrate, iframes; + format->setString("mime", mime); + ALOGW("Creating video encoder for %s", mime); + int32_t width, height, stride, sliceh, colour, frames, maxinput, bitrate, iframes; - if (md->findInt32(android::kKeyWidth, &width)) { - format->setInt32("width", width); - } + if (md->findInt32(android::kKeyWidth, &width)) { + format->setInt32("width", width); + } - if (md->findInt32(android::kKeyHeight, &height)) { - format->setInt32("height", height); - } + if (md->findInt32(android::kKeyHeight, &height)) { + format->setInt32("height", height); + } - if (md->findInt32(android::kKeyStride, &stride)) { - format->setInt32("stride", stride); - } + if (md->findInt32(android::kKeyStride, &stride)) { + format->setInt32("stride", stride); + } - if (md->findInt32(android::kKeySliceHeight, &sliceh)) { - format->setInt32("slice-height", sliceh); - } + if (md->findInt32(android::kKeySliceHeight, &sliceh)) { + format->setInt32("slice-height", sliceh); + } - if (md->findInt32(android::kKeyColorFormat, &colour)) { - format->setInt32("color-format", colour); - } + if (md->findInt32(android::kKeyColorFormat, &colour)) { + format->setInt32("color-format", colour); + } - if (md->findInt32(android::kKeyFrameRate, &frames)) { - format->setInt32("frame-rate", frames); - } + if (md->findInt32(android::kKeyFrameRate, &frames)) { + format->setInt32("frame-rate", frames); + } - if (md->findInt32(android::kKeyMaxInputSize, &maxinput)) { - format->setInt32("max-input-size", maxinput); - } + if (md->findInt32(android::kKeyMaxInputSize, &maxinput)) { + format->setInt32("max-input-size", maxinput); + } - if (md->findInt32(android::kKeyBitRate, &bitrate)) { - format->setInt32("bitrate", bitrate); - } + if (md->findInt32(android::kKeyBitRate, &bitrate)) { + format->setInt32("bitrate", bitrate); + } - if (md->findInt32(android::kKeyIFramesInterval, &iframes)) { - format->setInt32("i-frame-interval", iframes); - } + if (md->findInt32(android::kKeyIFramesInterval, &iframes)) { + format->setInt32("i-frame-interval", iframes); + } -#if ANDROID_MAJOR >= 7 - if (m_enc->meta_data) { - format->setInt32("android._input-metadata-buffer-type", m_enc->meta_data); - format->setInt32("android._store-metadata-in-buffers-output", false); - } - format->setInt32("android._using-recorder", 1); -#endif +# if ANDROID_MAJOR >= 7 + if (m_enc->meta_data) { + format->setInt32("android._input-metadata-buffer-type", m_enc->meta_data); + format->setInt32("android._store-metadata-in-buffers-output", false); + } + format->setInt32("android._using-recorder", 1); +# endif + + if (!strcmp(mime, android::MEDIA_MIMETYPE_VIDEO_AVC)) { + int32_t profile = m_enc->codec_specific.h264.profile; + int32_t level = m_enc->codec_specific.h264.level; + + if (!profile) { + profile = OMX_VIDEO_AVCProfileBaseline; + } + + if (!level) { + level = android::ACodec::getAVCLevelFor( + width, height, frames, bitrate, +# if (ANDROID_MAJOR == 8 && ANDROID_MINOR >= 1) || ANDROID_MAJOR >= 9 + (OMX_VIDEO_AVCPROFILEEXTTYPE)profile); +# else + (OMX_VIDEO_AVCPROFILETYPE)profile); +# endif + } + + format->setInt32("profile", profile); + format->setInt32("level", level); + + if (m_enc->codec_specific.h264.prepend_header_to_sync_frames) { + format->setInt32("prepend-sps-pps-to-idr-frames", 1); + } + + if (m_enc->bitrate_mode != DROID_MEDIA_CODEC_BITRATE_CONTROL_DEFAULT) { + format->setInt32("bitrate-mode", m_enc->bitrate_mode); + } + } + // TODO: time-scale + +# if ANDROID_MAJOR > 6 + return android::AsyncCodecSource::Create(src, format, true /* isEncoder */, flags(), + window, looper); +# elif ANDROID_MAJOR == 6 + return android::MediaCodecSource::Create(looper, format, src, NULL, flags()); +# else + return android::MediaCodecSource::Create(looper, format, src, flags()); +# endif + } else { + android::sp format = new android::AMessage(); + format->setString("mime", mime); + ALOGW("Creating audio encoder for %s", mime); + if (!strcmp(mime, android::MEDIA_MIMETYPE_AUDIO_AAC)) { + format->setInt32("aac-profile", OMX_AUDIO_AACObjectLC); + } - if (!strcmp (mime, android::MEDIA_MIMETYPE_VIDEO_AVC)) { - int32_t profile = m_enc->codec_specific.h264.profile; - int32_t level = m_enc->codec_specific.h264.level; + int32_t maxinput, channels, samplerate, bitrate; + if (md->findInt32(android::kKeyMaxInputSize, &maxinput)) { + format->setInt32("max-input-size", maxinput); + } + if (md->findInt32(android::kKeyChannelCount, &channels)) { + format->setInt32("channel-count", channels); + } + if (md->findInt32(android::kKeySampleRate, &samplerate)) { + format->setInt32("sample-rate", samplerate); + } + if (md->findInt32(android::kKeyBitRate, &bitrate)) { + format->setInt32("bitrate", bitrate); + } - if (!profile) { - profile = OMX_VIDEO_AVCProfileBaseline; + return android::MediaCodecSource::Create(looper, format, src); + } } - - if (!level) { - level = android::ACodec::getAVCLevelFor(width, height, frames, bitrate, -#if (ANDROID_MAJOR == 8 && ANDROID_MINOR >= 1) || ANDROID_MAJOR >= 9 - (OMX_VIDEO_AVCPROFILEEXTTYPE)profile); -#else - (OMX_VIDEO_AVCPROFILETYPE)profile); #endif +#if ANDROID_MAJOR < 7 + android::OMXClient omx; + if (omx.connect() != android::OK) { + ALOGE("Failed to connect to OMX"); + return NULL; } - format->setInt32("profile", profile); - format->setInt32("level", level); - - if (m_enc->codec_specific.h264.prepend_header_to_sync_frames) { - format->setInt32("prepend-sps-pps-to-idr-frames", 1); - } - - if (m_enc->bitrate_mode != DROID_MEDIA_CODEC_BITRATE_CONTROL_DEFAULT) { - format->setInt32("bitrate-mode", m_enc->bitrate_mode); - } - } - //TODO: time-scale - -#if ANDROID_MAJOR > 6 - return android::AsyncCodecSource::Create(src, format, true /* isEncoder */, - flags(), window, looper); -#elif ANDROID_MAJOR == 6 - return android::MediaCodecSource::Create(looper, format, src, NULL, flags()); + return android::OMXCodec::Create(omx.interface(), md, isEncoder(), src, NULL, flags(), + window); #else - return android::MediaCodecSource::Create(looper, format, src, flags()); + return android::AsyncCodecSource::Create(src, nullptr, false /* isEncoder */, flags(), + window, looper, nullptr, + (OMX_COLOR_FORMATTYPE)m_dec->color_format); #endif - } - else { - android::sp format = new android::AMessage(); - format->setString("mime", mime); - ALOGW("Creating audio encoder for %s", mime); - if (!strcmp (mime, android::MEDIA_MIMETYPE_AUDIO_AAC)) { - format->setInt32("aac-profile", OMX_AUDIO_AACObjectLC); - } - - int32_t maxinput, channels, samplerate, bitrate; - if (md->findInt32(android::kKeyMaxInputSize, &maxinput)) { - format->setInt32("max-input-size", maxinput); - } - if (md->findInt32(android::kKeyChannelCount, &channels)) { - format->setInt32("channel-count", channels); - } - if (md->findInt32(android::kKeySampleRate, &samplerate)) { - format->setInt32("sample-rate", samplerate); - } - if (md->findInt32(android::kKeyBitRate, &bitrate)) { - format->setInt32("bitrate", bitrate); - } - - return android::MediaCodecSource::Create(looper, format, src); - } } -#endif -#if ANDROID_MAJOR < 7 - android::OMXClient omx; - if (omx.connect() != android::OK) { - ALOGE("Failed to connect to OMX"); - return NULL; - } - - return android::OMXCodec::Create(omx.interface(), - md, - isEncoder(), - src, - NULL, flags(), window); -#else - return android::AsyncCodecSource::Create(src, nullptr, false /* isEncoder */, - flags(), window, looper, nullptr, - (OMX_COLOR_FORMATTYPE)m_dec->color_format); -#endif - } - bool isEncoder() { return m_enc != NULL; } + bool isEncoder() { return m_enc != NULL; } - DroidMediaCodecMetaData *meta() { - if (m_enc) { - return (DroidMediaCodecMetaData *)m_enc; - } else if (m_dec) { - return (DroidMediaCodecMetaData *)m_dec; - } else { - return NULL; + DroidMediaCodecMetaData *meta() + { + if (m_enc) { + return (DroidMediaCodecMetaData *)m_enc; + } else if (m_dec) { + return (DroidMediaCodecMetaData *)m_dec; + } else { + return NULL; + } } - } - android::sp buildMetaData() { - if (isEncoder()) { - return buildMetaData(m_enc); - } else { - return buildMetaData(m_dec); + android::sp buildMetaData() + { + if (isEncoder()) { + return buildMetaData(m_enc); + } else { + return buildMetaData(m_dec); + } } - } - uint32_t flags() { - if (isEncoder()) { - return flags(m_enc); - } else { - return flags(m_dec); + uint32_t flags() + { + if (isEncoder()) { + return flags(m_enc); + } else { + return flags(m_dec); + } } - } - static uint32_t flags(DroidMediaCodecMetaData *meta, uint32_t currentFlags) { - // We will not do any validation for the flags. Stagefright should take care of that. - if (meta->flags & DROID_MEDIA_CODEC_SW_ONLY) { + static uint32_t flags(DroidMediaCodecMetaData *meta, uint32_t currentFlags) + { + // We will not do any validation for the flags. Stagefright should take + // care of that. + if (meta->flags & DROID_MEDIA_CODEC_SW_ONLY) { #if ANDROID_MAJOR < 7 - currentFlags |= android::OMXCodec::kSoftwareCodecsOnly; + currentFlags |= android::OMXCodec::kSoftwareCodecsOnly; #else - currentFlags |= android::MediaCodecList::kPreferSoftwareCodecs; + currentFlags |= android::MediaCodecList::kPreferSoftwareCodecs; #endif - } + } - if (meta->flags & DROID_MEDIA_CODEC_HW_ONLY) { + if (meta->flags & DROID_MEDIA_CODEC_HW_ONLY) { #if ANDROID_MAJOR < 7 - currentFlags |= android::OMXCodec::kHardwareCodecsOnly; + currentFlags |= android::OMXCodec::kHardwareCodecsOnly; #else - currentFlags |= android::MediaCodecList::kHardwareCodecsOnly; + currentFlags |= android::MediaCodecList::kHardwareCodecsOnly; #endif - } + } - return currentFlags; - } + return currentFlags; + } private: - android::sp buildMetaData(DroidMediaCodecEncoderMetaData *meta) { - android::sp md(new android::MetaData); - SET_PARAM(kKeyMaxInputSize, max_input_size); - SET_PARAM(kKeyBitRate, bitrate); - SET_PARAM(kKeyStride, stride); - SET_PARAM(kKeySliceHeight, slice_height); - SET_PARAM(kKeyColorFormat, color_format); - - // TODO: This is hardcoded for now. Fix it. - md->setInt32(android::kKeyIFramesInterval, 2); - - // TODO: kKeyHFR - - return buildMetaData((DroidMediaCodecMetaData *)meta, md); - } - - android::sp buildMetaData(DroidMediaCodecDecoderMetaData *meta) { - android::sp md(new android::MetaData); - - if (meta->codec_data.size > 0) { - const char *mime = ((DroidMediaCodecMetaData *)meta)->type; - DroidMediaCodecMetaDataKey *key = metaDataKeys; - - while (key->mime) { - if (!strcmp (key->mime, mime)) { - md->setData(key->key, key->type, meta->codec_data.data, meta->codec_data.size); - return buildMetaData((DroidMediaCodecMetaData *)meta, md); - } - ++key; - } - - ALOGE("No handler for codec data for %s", ((DroidMediaCodecMetaData *)meta)->type); - return NULL; + android::sp buildMetaData(DroidMediaCodecEncoderMetaData *meta) + { + android::sp md(new android::MetaData); + SET_PARAM(kKeyMaxInputSize, max_input_size); + SET_PARAM(kKeyBitRate, bitrate); + SET_PARAM(kKeyStride, stride); + SET_PARAM(kKeySliceHeight, slice_height); + SET_PARAM(kKeyColorFormat, color_format); + + // TODO: This is hardcoded for now. Fix it. + md->setInt32(android::kKeyIFramesInterval, 2); + + // TODO: kKeyHFR + + return buildMetaData((DroidMediaCodecMetaData *)meta, md); } - return buildMetaData((DroidMediaCodecMetaData *)meta, md); - } + android::sp buildMetaData(DroidMediaCodecDecoderMetaData *meta) + { + android::sp md(new android::MetaData); + + if (meta->codec_data.size > 0) { + const char *mime = ((DroidMediaCodecMetaData *)meta)->type; + DroidMediaCodecMetaDataKey *key = metaDataKeys; - uint32_t flags(DroidMediaCodecEncoderMetaData *meta) { + while (key->mime) { + if (!strcmp(key->mime, mime)) { + md->setData(key->key, key->type, meta->codec_data.data, meta->codec_data.size); + return buildMetaData((DroidMediaCodecMetaData *)meta, md); + } + ++key; + } + + ALOGE("No handler for codec data for %s", ((DroidMediaCodecMetaData *)meta)->type); + return NULL; + } + + return buildMetaData((DroidMediaCodecMetaData *)meta, md); + } + + uint32_t flags(DroidMediaCodecEncoderMetaData *meta) + { #if ANDROID_MAJOR >= 7 - return flags((DroidMediaCodecMetaData *)meta, 0); + return flags((DroidMediaCodecMetaData *)meta, 0); #else - return flags((DroidMediaCodecMetaData *)meta, meta->meta_data ? -#if ANDROID_MAJOR >= 5 - android::MediaCodecSource::FLAG_USE_METADATA_INPUT -#else - android::OMXCodec::kStoreMetaDataInVideoBuffers -#endif -: 0); + return flags((DroidMediaCodecMetaData *)meta, + meta->meta_data ? +# if ANDROID_MAJOR >= 5 + android::MediaCodecSource::FLAG_USE_METADATA_INPUT +# else + android::OMXCodec::kStoreMetaDataInVideoBuffers +# endif + : 0); #endif - } - - uint32_t flags(DroidMediaCodecDecoderMetaData *meta) { - return flags((DroidMediaCodecMetaData *)meta, 0); - } - - android::sp buildMetaData(DroidMediaCodecMetaData *meta, - android::sp md) { - md->setCString(android::kKeyMIMEType, meta->type); - SET_PARAM(kKeyWidth, width); - SET_PARAM(kKeyHeight, height); - SET_PARAM(kKeyDisplayWidth, width); - SET_PARAM(kKeyDisplayHeight, height); - SET_PARAM(kKeyFrameRate, fps); - SET_PARAM(kKeyChannelCount, channels); - SET_PARAM(kKeySampleRate, sample_rate); - - return md; - } - - DroidMediaCodecEncoderMetaData *m_enc; - DroidMediaCodecDecoderMetaData *m_dec; + } + + uint32_t flags(DroidMediaCodecDecoderMetaData *meta) + { + return flags((DroidMediaCodecMetaData *)meta, 0); + } + + android::sp buildMetaData(DroidMediaCodecMetaData *meta, + android::sp md) + { + md->setCString(android::kKeyMIMEType, meta->type); + SET_PARAM(kKeyWidth, width); + SET_PARAM(kKeyHeight, height); + SET_PARAM(kKeyDisplayWidth, width); + SET_PARAM(kKeyDisplayHeight, height); + SET_PARAM(kKeyFrameRate, fps); + SET_PARAM(kKeyChannelCount, channels); + SET_PARAM(kKeySampleRate, sample_rate); + + return md; + } + + DroidMediaCodecEncoderMetaData *m_enc; + DroidMediaCodecDecoderMetaData *m_dec; }; -android::sp droid_media_codec_create_encoder_raw(DroidMediaCodecEncoderMetaData *meta, -#if ANDROID_MAJOR >=5 - android::sp looper, +android::sp +droid_media_codec_create_encoder_raw(DroidMediaCodecEncoderMetaData *meta, +#if ANDROID_MAJOR >= 5 + android::sp looper, #endif - android::sp src) + android::sp src) { - DroidMediaCodecBuilder builder(meta); -#if ANDROID_MAJOR >=5 - return builder.createCodec(src, NULL, looper); + DroidMediaCodecBuilder builder(meta); +#if ANDROID_MAJOR >= 5 + return builder.createCodec(src, NULL, looper); #else - return builder.createCodec(src, NULL); + return builder.createCodec(src, NULL); #endif } extern "C" { -DroidMediaBufferQueue *droid_media_codec_get_buffer_queue (DroidMediaCodec *codec) +DroidMediaBufferQueue *droid_media_codec_get_buffer_queue(DroidMediaCodec *codec) { - return codec->m_queue.get(); + return codec->m_queue.get(); } -DroidMediaCodec *droid_media_codec_create(DroidMediaCodecBuilder& builder) +DroidMediaCodec *droid_media_codec_create(DroidMediaCodecBuilder &builder) { - android::sp md(builder.buildMetaData()); - if (md == NULL) { - return NULL; - } - - android::sp src(new Source(md)); - android::sp queue; - android::sp window = NULL; - DroidMediaCodecMetaData *meta = builder.meta(); - - if (builder.isEncoder() - || meta->flags & DROID_MEDIA_CODEC_SW_ONLY - || meta->flags & DROID_MEDIA_CODEC_NO_MEDIA_BUFFER) { - // Nothing - } else { - queue = new DroidMediaBufferQueue("DroidMediaCodecBufferQueue"); - window = queue->window(); -#if ANDROID_MAJOR >= 7 - if (!queue->connectListener()) { - ALOGE("Failed to connect buffer queue listener"); - return NULL; + android::sp md(builder.buildMetaData()); + if (md == NULL) { + return NULL; } + + android::sp src(new Source(md)); + android::sp queue; + android::sp window = NULL; + DroidMediaCodecMetaData *meta = builder.meta(); + + if (builder.isEncoder() || meta->flags & DROID_MEDIA_CODEC_SW_ONLY + || meta->flags & DROID_MEDIA_CODEC_NO_MEDIA_BUFFER) { + // Nothing + } else { + queue = new DroidMediaBufferQueue("DroidMediaCodecBufferQueue"); + window = queue->window(); +#if ANDROID_MAJOR >= 7 + if (!queue->connectListener()) { + ALOGE("Failed to connect buffer queue listener"); + return NULL; + } #endif - } + } #if ANDROID_MAJOR >= 5 - android::sp looper = new android::ALooper; - looper->setName("DroidMediaCodecLoop"); - looper->start(); + android::sp looper = new android::ALooper; + looper->setName("DroidMediaCodecLoop"); + looper->start(); - android::sp codec = builder.createCodec(src, window, looper, md); + android::sp codec = builder.createCodec(src, window, looper, md); #else - android::sp codec = builder.createCodec(src, window, md); + android::sp codec = builder.createCodec(src, window, md); #endif - if (codec == NULL) { - ALOGE("Failed to create codec"); - return NULL; - } + if (codec == NULL) { + ALOGE("Failed to create codec"); + return NULL; + } - DroidMediaCodec *mediaCodec = new DroidMediaCodec; - mediaCodec->m_codec = codec; - mediaCodec->m_src = src; - mediaCodec->m_queue = queue; - mediaCodec->m_window = window; + DroidMediaCodec *mediaCodec = new DroidMediaCodec; + mediaCodec->m_codec = codec; + mediaCodec->m_src = src; + mediaCodec->m_queue = queue; + mediaCodec->m_window = window; #if ANDROID_MAJOR >= 5 - mediaCodec->m_looper = looper; + mediaCodec->m_looper = looper; #endif - mediaCodec->m_useExternalLoop = (meta->flags & DROID_MEDIA_CODEC_USE_EXTERNAL_LOOP) ? true : false; + mediaCodec->m_useExternalLoop = + (meta->flags & DROID_MEDIA_CODEC_USE_EXTERNAL_LOOP) ? true : false; - return mediaCodec; + return mediaCodec; } DroidMediaCodec *droid_media_codec_create_decoder(DroidMediaCodecDecoderMetaData *meta) { - DroidMediaCodecBuilder builder(meta); + DroidMediaCodecBuilder builder(meta); - return droid_media_codec_create(builder); + return droid_media_codec_create(builder); } DroidMediaCodec *droid_media_codec_create_encoder(DroidMediaCodecEncoderMetaData *meta) { - DroidMediaCodecBuilder builder(meta); + DroidMediaCodecBuilder builder(meta); - return droid_media_codec_create(builder); + return droid_media_codec_create(builder); } bool droid_media_codec_is_supported(DroidMediaCodecMetaData *meta, bool encoder) @@ -761,22 +780,23 @@ bool droid_media_codec_is_supported(DroidMediaCodecMetaData *meta, bool encoder) #endif #if ANDROID_MAJOR < 7 - android::OMXCodec::findMatchingCodecs( - meta->type, encoder, NULL, + android::OMXCodec::findMatchingCodecs(meta->type, encoder, NULL, #else android::MediaCodecList::findMatchingCodecs( meta->type, encoder, #endif - DroidMediaCodecBuilder::flags(meta, 0), - &matchingCodecs); + DroidMediaCodecBuilder::flags(meta, 0), &matchingCodecs); return matchingCodecs.size() > 0; } -unsigned int droid_media_codec_get_supported_color_formats(DroidMediaCodecMetaData *meta, int encoder, uint32_t *formats, unsigned int maxFormats) +unsigned int droid_media_codec_get_supported_color_formats(DroidMediaCodecMetaData *meta, + int encoder, uint32_t *formats, + unsigned int maxFormats) { #if ANDROID_MAJOR >= 5 - android::sp list = android::MediaCodecList::getInstance(); + android::sp list = + android::MediaCodecList::getInstance(); #else const android::MediaCodecList *list = android::MediaCodecList::getInstance(); #endif @@ -790,14 +810,12 @@ unsigned int droid_media_codec_get_supported_color_formats(DroidMediaCodecMetaDa #endif #if ANDROID_MAJOR < 7 - android::OMXCodec::findMatchingCodecs( - meta->type, encoder, NULL, + android::OMXCodec::findMatchingCodecs(meta->type, encoder, NULL, #else android::MediaCodecList::findMatchingCodecs( meta->type, encoder, #endif - DroidMediaCodecBuilder::flags(meta, 0), - &matchingCodecs); + DroidMediaCodecBuilder::flags(meta, 0), &matchingCodecs); if (matchingCodecs.size() > 0) { const char *matchName; @@ -806,13 +824,14 @@ unsigned int droid_media_codec_get_supported_color_formats(DroidMediaCodecMetaDa #elif ANDROID_MAJOR < 7 matchName = matchingCodecs.itemAt(0).mName.string(); #else - matchName = matchingCodecs.itemAt(0).c_str(); + matchName = matchingCodecs.itemAt(0).c_str(); #endif ssize_t matchIndex = list->findCodecByName(matchName); #if ANDROID_MAJOR >= 5 const android::sp info = list->getCodecInfo(matchIndex); if (info != NULL) { - const android::sp caps = info->getCapabilitiesFor(meta->type); + const android::sp caps = + info->getCapabilitiesFor(meta->type); if (caps != NULL) { android::Vector colorFormats; caps->getSupportedColorFormats(&colorFormats); @@ -831,7 +850,7 @@ unsigned int droid_media_codec_get_supported_color_formats(DroidMediaCodecMetaDa uint32_t flags; android::status_t err = android::MediaCodecList::getInstance()->getCodecCapabilities( - matchIndex, meta->type, &profileLevels, &colorFormats, &flags); + matchIndex, meta->type, &profileLevels, &colorFormats, &flags); if (err == android::OK) { if (maxFormats > colorFormats.size()) { @@ -852,15 +871,15 @@ bool droid_media_codec_start(DroidMediaCodec *codec) #if ANDROID_MAJOR < 7 if (codec->m_queue.get() != NULL) { if (!codec->m_queue->connectListener()) { - ALOGE("Failed to connect buffer queue listener"); - return false; - } - android::status_t err = native_window_api_connect(codec->m_window.get(), - NATIVE_WINDOW_API_MEDIA); - if (err != android::NO_ERROR) { - ALOGE("Failed to connect window"); - return false; - } + ALOGE("Failed to connect buffer queue listener"); + return false; + } + android::status_t err = + native_window_api_connect(codec->m_window.get(), NATIVE_WINDOW_API_MEDIA); + if (err != android::NO_ERROR) { + ALOGE("Failed to connect window"); + return false; + } } #endif @@ -877,15 +896,15 @@ void droid_media_codec_stop(DroidMediaCodec *codec) { if (codec->m_queue.get()) { codec->m_queue->disconnectListener(); - } + } if (codec->m_thread != NULL) { codec->m_thread->requestExit(); // in case the thread is waiting in ->read() - droid_media_codec_drain (codec); + droid_media_codec_drain(codec); } -#if ANDROID_MAJOR < 7 +#if ANDROID_MAJOR < 7 // On older devices the reader thread must be stopped first. if (codec->m_thread != NULL) { int err = codec->m_thread->requestExitAndWait(); @@ -922,7 +941,7 @@ void droid_media_codec_stop(DroidMediaCodec *codec) if (codec->m_queue.get()) { codec->m_queue->buffersReleased(); - } + } } void droid_media_codec_destroy(DroidMediaCodec *codec) @@ -930,7 +949,8 @@ void droid_media_codec_destroy(DroidMediaCodec *codec) delete codec; } -void droid_media_codec_queue(DroidMediaCodec *codec, DroidMediaCodecData *data, DroidMediaBufferCallbacks *cb) +void droid_media_codec_queue(DroidMediaCodec *codec, DroidMediaCodecData *data, + DroidMediaBufferCallbacks *cb) { InputBuffer *buffer = new InputBuffer(data->data.data, data->data.size, cb->data, cb->unref); #if ANDROID_MAJOR >= 9 @@ -977,19 +997,19 @@ DroidMediaCodecLoopReturn droid_media_codec_loop(DroidMediaCodec *codec) #endif if (err == android::INFO_FORMAT_CHANGED) { ALOGI("Format changed from codec"); - if (codec->notifySizeChanged()) { - return DROID_MEDIA_CODEC_LOOP_OK; - } else { - return DROID_MEDIA_CODEC_LOOP_ERROR; - } + if (codec->notifySizeChanged()) { + return DROID_MEDIA_CODEC_LOOP_OK; + } else { + return DROID_MEDIA_CODEC_LOOP_ERROR; + } } if (err == -EWOULDBLOCK #if ANDROID_MAJOR >= 7 - || err == -ENODATA + || err == -ENODATA #endif - ) { - ALOGI("retry reading again. error: 0x%x", -err); - return DROID_MEDIA_CODEC_LOOP_OK; + ) { + ALOGI("retry reading again. error: 0x%x", -err); + return DROID_MEDIA_CODEC_LOOP_OK; } if (err != android::OK) { @@ -997,11 +1017,11 @@ DroidMediaCodecLoopReturn droid_media_codec_loop(DroidMediaCodec *codec) #if ANDROID_MAJOR < 7 || err == -ENODATA #endif - ) { + ) { ALOGE("Got EOS"); if (codec->m_cb.signal_eos) { - codec->m_cb.signal_eos (codec->m_cb_data); + codec->m_cb.signal_eos(codec->m_cb_data); } // Prevent new frames from being queued. @@ -1015,16 +1035,16 @@ DroidMediaCodecLoopReturn droid_media_codec_loop(DroidMediaCodec *codec) codec->m_cb.error(codec->m_cb_data, err); } - codec->m_src->unlock(); + codec->m_src->unlock(); - return DROID_MEDIA_CODEC_LOOP_ERROR; + return DROID_MEDIA_CODEC_LOOP_ERROR; } } if (buffer->range_length() == 0) { buffer->release(); buffer = NULL; - return DROID_MEDIA_CODEC_LOOP_OK; + return DROID_MEDIA_CODEC_LOOP_OK; } #if ANDROID_MAJOR >= 9 @@ -1046,7 +1066,8 @@ DroidMediaCodecLoopReturn droid_media_codec_loop(DroidMediaCodec *codec) #else if (!buffer->meta_data()->findInt64(android::kKeyTime, &data.ts)) { #endif - // I really don't know what to do here and I doubt we will reach that anyway. + // I really don't know what to do here and I doubt we will + // reach that anyway. ALOGE("Received a buffer without a timestamp!"); } else { // Convert timestamp from useconds to nseconds @@ -1087,7 +1108,7 @@ DroidMediaCodecLoopReturn droid_media_codec_loop(DroidMediaCodec *codec) ALOGV("sync? %i, codec config? %i, ts = %" PRId64, sync, codecConfig, data.ts); - codec->m_data_cb.data_available (codec->m_data_cb_data, &data); + codec->m_data_cb.data_available(codec->m_data_cb_data, &data); } else { ALOGE("non graphic buffer received. Skipping"); } @@ -1098,7 +1119,8 @@ DroidMediaCodecLoopReturn droid_media_codec_loop(DroidMediaCodec *codec) #else if (!buffer->meta_data()->findInt64(android::kKeyTime, ×tamp)) { #endif - // I really don't know what to do here and I doubt we will reach that anyway. + // I really don't know what to do here and I doubt we will reach + // that anyway. ALOGE("Received a buffer without a timestamp!"); } else { // Convert timestamp from useconds to nseconds @@ -1107,9 +1129,10 @@ DroidMediaCodecLoopReturn droid_media_codec_loop(DroidMediaCodec *codec) int err = codec->m_window->queueBuffer(codec->m_window.get(), buff.get() #if (ANDROID_MAJOR == 4 && ANDROID_MINOR >= 2) || ANDROID_MAJOR >= 5 - , -1 /* TODO: Where do we get the fence from? */ + , + -1 /* TODO: Where do we get the fence from? */ #endif -); + ); if (err != android::NO_ERROR) { ALOGE("queueBuffer failed with error 0x%d", -err); } else { @@ -1127,13 +1150,15 @@ DroidMediaCodecLoopReturn droid_media_codec_loop(DroidMediaCodec *codec) return DROID_MEDIA_CODEC_LOOP_OK; } -void droid_media_codec_set_callbacks(DroidMediaCodec *codec, DroidMediaCodecCallbacks *cb, void *data) +void droid_media_codec_set_callbacks(DroidMediaCodec *codec, DroidMediaCodecCallbacks *cb, + void *data) { memcpy(&codec->m_cb, cb, sizeof(codec->m_cb)); codec->m_cb_data = data; } -void droid_media_codec_set_data_callbacks(DroidMediaCodec *codec, DroidMediaCodecDataCallbacks *cb, void *data) +void droid_media_codec_set_data_callbacks(DroidMediaCodec *codec, DroidMediaCodecDataCallbacks *cb, + void *data) { memcpy(&codec->m_data_cb, cb, sizeof(codec->m_data_cb)); codec->m_data_cb_data = data; @@ -1149,28 +1174,29 @@ void droid_media_codec_drain(DroidMediaCodec *codec) codec->m_src->drain(); } -void droid_media_codec_get_output_info(DroidMediaCodec *codec, - DroidMediaCodecMetaData *info, DroidMediaRect *crop) +void droid_media_codec_get_output_info(DroidMediaCodec *codec, DroidMediaCodecMetaData *info, + DroidMediaRect *crop) { - android::sp md(codec->m_codec->getFormat()); - // TODO: is there a way to set info->flags? - info->fps = 0; // TODO: is there a way to get that? - - md->findInt32(android::kKeyWidth, &info->width); - md->findInt32(android::kKeyHeight, &info->height); - md->findInt32(android::kKeyChannelCount, &info->channels); - md->findInt32(android::kKeySampleRate, &info->sample_rate); - md->findInt32(android::kKeyColorFormat, &info->hal_format); - - if (!md->findRect(android::kKeyCropRect, &crop->left, &crop->top, &crop->right, &crop->bottom)) { - crop->left = crop->top = 0; - crop->right = info->width; - crop->bottom = info->height; - } else { - // No idea why but OMXCodec.cpp deducts 1 from right and bottom - crop->right += 1; - crop->bottom += 1; - } + android::sp md(codec->m_codec->getFormat()); + // TODO: is there a way to set info->flags? + info->fps = 0; // TODO: is there a way to get that? + + md->findInt32(android::kKeyWidth, &info->width); + md->findInt32(android::kKeyHeight, &info->height); + md->findInt32(android::kKeyChannelCount, &info->channels); + md->findInt32(android::kKeySampleRate, &info->sample_rate); + md->findInt32(android::kKeyColorFormat, &info->hal_format); + + if (!md->findRect(android::kKeyCropRect, &crop->left, &crop->top, &crop->right, + &crop->bottom)) { + crop->left = crop->top = 0; + crop->right = info->width; + crop->bottom = info->height; + } else { + // No idea why but OMXCodec.cpp deducts 1 from right and bottom + crop->right += 1; + crop->bottom += 1; + } } bool droid_media_codec_set_video_encoder_bitrate(DroidMediaCodec *codec, int32_t bitrate) @@ -1180,12 +1206,11 @@ bool droid_media_codec_set_video_encoder_bitrate(DroidMediaCodec *codec, int32_t android::sp params = new android::AMessage(); params->setInt32("video-bitrate", bitrate); android::sp src = - static_cast(codec->m_codec.get()); + static_cast(codec->m_codec.get()); android::status_t err = src->setParameters(params); return err == android::NO_ERROR; #else return false; #endif } - }; diff --git a/droidmediacodec.h b/droidmediacodec.h index 908da77..0e4aa72 100644 --- a/droidmediacodec.h +++ b/droidmediacodec.h @@ -31,101 +31,112 @@ extern "C" { typedef struct _DroidMediaCodec DroidMediaCodec; typedef enum { - DROID_MEDIA_CODEC_SW_ONLY = 0x1, - DROID_MEDIA_CODEC_HW_ONLY = 0x2, - DROID_MEDIA_CODEC_USE_EXTERNAL_LOOP = 0x4, - DROID_MEDIA_CODEC_NO_MEDIA_BUFFER = 0x8, + DROID_MEDIA_CODEC_SW_ONLY = 0x1, + DROID_MEDIA_CODEC_HW_ONLY = 0x2, + DROID_MEDIA_CODEC_USE_EXTERNAL_LOOP = 0x4, + DROID_MEDIA_CODEC_NO_MEDIA_BUFFER = 0x8, } DroidMediaCodecFlags; typedef enum { - DROID_MEDIA_CODEC_LOOP_OK, - DROID_MEDIA_CODEC_LOOP_ERROR, - DROID_MEDIA_CODEC_LOOP_EOS, + DROID_MEDIA_CODEC_LOOP_OK, + DROID_MEDIA_CODEC_LOOP_ERROR, + DROID_MEDIA_CODEC_LOOP_EOS, } DroidMediaCodecLoopReturn; /* See OMX_VIDEO_CONTROLRATETYPE */ typedef enum { - DROID_MEDIA_CODEC_BITRATE_CONTROL_DEFAULT = 0, - DROID_MEDIA_CODEC_BITRATE_CONTROL_VBR = 1, - DROID_MEDIA_CODEC_BITRATE_CONTROL_CBR = 2, + DROID_MEDIA_CODEC_BITRATE_CONTROL_DEFAULT = 0, + DROID_MEDIA_CODEC_BITRATE_CONTROL_VBR = 1, + DROID_MEDIA_CODEC_BITRATE_CONTROL_CBR = 2, } DroidMediaCodecBitrateMode; -typedef struct { - const char *type; - int32_t width; - int32_t height; - int32_t fps; - int32_t channels; - int32_t sample_rate; - int32_t hal_format; - DroidMediaCodecFlags flags; +typedef struct +{ + const char *type; + int32_t width; + int32_t height; + int32_t fps; + int32_t channels; + int32_t sample_rate; + int32_t hal_format; + DroidMediaCodecFlags flags; } DroidMediaCodecMetaData; -typedef struct { - DroidMediaCodecMetaData parent; +typedef struct +{ + DroidMediaCodecMetaData parent; - DroidMediaData codec_data; - int32_t color_format; + DroidMediaData codec_data; + int32_t color_format; } DroidMediaCodecDecoderMetaData; -typedef struct DroidMediaCodecEncoderH264Settings { - int32_t profile; - int32_t level; - int32_t prepend_header_to_sync_frames; +typedef struct DroidMediaCodecEncoderH264Settings +{ + int32_t profile; + int32_t level; + int32_t prepend_header_to_sync_frames; } DroidMediaCodecEncoderH264Settings; -typedef struct { - DroidMediaCodecMetaData parent; - - int32_t color_format; - int32_t bitrate; - int32_t meta_data; - int32_t stride; - int32_t slice_height; - int32_t max_input_size; - int32_t bitrate_mode; - union { - DroidMediaCodecEncoderH264Settings h264; - } codec_specific; +typedef struct +{ + DroidMediaCodecMetaData parent; + + int32_t color_format; + int32_t bitrate; + int32_t meta_data; + int32_t stride; + int32_t slice_height; + int32_t max_input_size; + int32_t bitrate_mode; + union { + DroidMediaCodecEncoderH264Settings h264; + } codec_specific; } DroidMediaCodecEncoderMetaData; -typedef struct { - DroidMediaData data; - int64_t ts; - int64_t decoding_ts; - bool sync; /* used for decoder input and encoder output */ - bool codec_config; /* user for encoder output */ +typedef struct +{ + DroidMediaData data; + int64_t ts; + int64_t decoding_ts; + bool sync; /* used for decoder input and encoder output */ + bool codec_config; /* user for encoder output */ } DroidMediaCodecData; -typedef struct { - void (* signal_eos)(void *data); - void (* error)(void *data, int err); - int (* size_changed)(void *data, int32_t width, int32_t height); +typedef struct +{ + void (*signal_eos)(void *data); + void (*error)(void *data, int err); + int (*size_changed)(void *data, int32_t width, int32_t height); } DroidMediaCodecCallbacks; -typedef struct { - void (* data_available) (void *data, DroidMediaCodecData *encoded); +typedef struct +{ + void (*data_available)(void *data, DroidMediaCodecData *encoded); } DroidMediaCodecDataCallbacks; -DroidMediaBufferQueue *droid_media_codec_get_buffer_queue (DroidMediaCodec *codec); +DroidMediaBufferQueue *droid_media_codec_get_buffer_queue(DroidMediaCodec *codec); DroidMediaCodec *droid_media_codec_create_decoder(DroidMediaCodecDecoderMetaData *meta); DroidMediaCodec *droid_media_codec_create_encoder(DroidMediaCodecEncoderMetaData *meta); bool droid_media_codec_is_supported(DroidMediaCodecMetaData *meta, bool encoder); -unsigned int droid_media_codec_get_supported_color_formats(DroidMediaCodecMetaData *meta, int encoder, - uint32_t *formats, unsigned int maxFormats); +unsigned int droid_media_codec_get_supported_color_formats(DroidMediaCodecMetaData *meta, + int encoder, uint32_t *formats, + unsigned int maxFormats); -void droid_media_codec_set_callbacks(DroidMediaCodec *codec, DroidMediaCodecCallbacks *cb, void *data); -void droid_media_codec_set_data_callbacks(DroidMediaCodec *codec, - DroidMediaCodecDataCallbacks *cb, void *data); +void droid_media_codec_set_callbacks(DroidMediaCodec *codec, DroidMediaCodecCallbacks *cb, + void *data); +void droid_media_codec_set_data_callbacks(DroidMediaCodec *codec, DroidMediaCodecDataCallbacks *cb, + void *data); bool droid_media_codec_start(DroidMediaCodec *codec); void droid_media_codec_stop(DroidMediaCodec *codec); void droid_media_codec_destroy(DroidMediaCodec *codec); -void droid_media_codec_queue(DroidMediaCodec *codec, DroidMediaCodecData *data, DroidMediaBufferCallbacks *cb); +void droid_media_codec_queue(DroidMediaCodec *codec, DroidMediaCodecData *data, + DroidMediaBufferCallbacks *cb); void droid_media_codec_flush(DroidMediaCodec *codec); void droid_media_codec_drain(DroidMediaCodec *codec); DroidMediaCodecLoopReturn droid_media_codec_loop(DroidMediaCodec *codec); -void droid_media_codec_get_output_info(DroidMediaCodec *codec, DroidMediaCodecMetaData *info, DroidMediaRect *crop); +void droid_media_codec_get_output_info(DroidMediaCodec *codec, DroidMediaCodecMetaData *info, + DroidMediaRect *crop); bool droid_media_codec_set_video_encoder_bitrate(DroidMediaCodec *codec, int32_t bitrate); diff --git a/droidmediaconstants.cpp b/droidmediaconstants.cpp index 5752711..f7ccf5c 100644 --- a/droidmediaconstants.cpp +++ b/droidmediaconstants.cpp @@ -63,55 +63,54 @@ void droid_media_camera_constants_init(DroidMediaCameraConstants *c) void droid_media_pixel_format_constants_init(DroidMediaPixelFormatConstants *c) { - c->HAL_PIXEL_FORMAT_RGBA_8888 = HAL_PIXEL_FORMAT_RGBA_8888; - c->HAL_PIXEL_FORMAT_RGBX_8888 = HAL_PIXEL_FORMAT_RGBX_8888; - c->HAL_PIXEL_FORMAT_RGB_888 = HAL_PIXEL_FORMAT_RGB_888; - c->HAL_PIXEL_FORMAT_RGB_565 = HAL_PIXEL_FORMAT_RGB_565; - c->HAL_PIXEL_FORMAT_BGRA_8888 = HAL_PIXEL_FORMAT_BGRA_8888; - c->HAL_PIXEL_FORMAT_YV12 = HAL_PIXEL_FORMAT_YV12; + c->HAL_PIXEL_FORMAT_RGBA_8888 = HAL_PIXEL_FORMAT_RGBA_8888; + c->HAL_PIXEL_FORMAT_RGBX_8888 = HAL_PIXEL_FORMAT_RGBX_8888; + c->HAL_PIXEL_FORMAT_RGB_888 = HAL_PIXEL_FORMAT_RGB_888; + c->HAL_PIXEL_FORMAT_RGB_565 = HAL_PIXEL_FORMAT_RGB_565; + c->HAL_PIXEL_FORMAT_BGRA_8888 = HAL_PIXEL_FORMAT_BGRA_8888; + c->HAL_PIXEL_FORMAT_YV12 = HAL_PIXEL_FORMAT_YV12; #if ANDROID_MAJOR < 6 - c->HAL_PIXEL_FORMAT_RAW_SENSOR = HAL_PIXEL_FORMAT_RAW_SENSOR; + c->HAL_PIXEL_FORMAT_RAW_SENSOR = HAL_PIXEL_FORMAT_RAW_SENSOR; #else - c->HAL_PIXEL_FORMAT_RAW_SENSOR = HAL_PIXEL_FORMAT_RAW16; + c->HAL_PIXEL_FORMAT_RAW_SENSOR = HAL_PIXEL_FORMAT_RAW16; #endif #if ANDROID_MAJOR < 8 - c->HAL_PIXEL_FORMAT_YCrCb_420_SP = HAL_PIXEL_FORMAT_YCrCb_420_SP; - c->HAL_PIXEL_FORMAT_YCbCr_422_SP = HAL_PIXEL_FORMAT_YCbCr_422_SP; - c->HAL_PIXEL_FORMAT_YCbCr_422_I = HAL_PIXEL_FORMAT_YCbCr_422_I; + c->HAL_PIXEL_FORMAT_YCrCb_420_SP = HAL_PIXEL_FORMAT_YCrCb_420_SP; + c->HAL_PIXEL_FORMAT_YCbCr_422_SP = HAL_PIXEL_FORMAT_YCbCr_422_SP; + c->HAL_PIXEL_FORMAT_YCbCr_422_I = HAL_PIXEL_FORMAT_YCbCr_422_I; #else -#undef HAL_PIXEL_FORMAT_YCrCb_420_SP -#undef HAL_PIXEL_FORMAT_YCbCr_422_SP -#undef HAL_PIXEL_FORMAT_YCbCr_422_I - c->HAL_PIXEL_FORMAT_YCrCb_420_SP = HAL_PIXEL_FORMAT_YCRCB_420_SP; - c->HAL_PIXEL_FORMAT_YCbCr_422_SP = HAL_PIXEL_FORMAT_YCBCR_422_SP; - c->HAL_PIXEL_FORMAT_YCbCr_422_I = HAL_PIXEL_FORMAT_YCBCR_422_I; +# undef HAL_PIXEL_FORMAT_YCrCb_420_SP +# undef HAL_PIXEL_FORMAT_YCbCr_422_SP +# undef HAL_PIXEL_FORMAT_YCbCr_422_I + c->HAL_PIXEL_FORMAT_YCrCb_420_SP = HAL_PIXEL_FORMAT_YCRCB_420_SP; + c->HAL_PIXEL_FORMAT_YCbCr_422_SP = HAL_PIXEL_FORMAT_YCBCR_422_SP; + c->HAL_PIXEL_FORMAT_YCbCr_422_I = HAL_PIXEL_FORMAT_YCBCR_422_I; #endif - c->QOMX_COLOR_FormatYUV420PackedSemiPlanar32m = 0x7FA30C04; - c->QOMX_COLOR_FormatYUV420PackedSemiPlanar64x32Tile2m8ka = 0x7FA30C03; + c->QOMX_COLOR_FormatYUV420PackedSemiPlanar32m = 0x7FA30C04; + c->QOMX_COLOR_FormatYUV420PackedSemiPlanar64x32Tile2m8ka = 0x7FA30C03; } void droid_media_colour_format_constants_init(DroidMediaColourFormatConstants *c) { - c->QOMX_COLOR_FormatYUV420PackedSemiPlanar32m = 0x7FA30C04; - c->QOMX_COLOR_FormatYUV420PackedSemiPlanar64x32Tile2m8ka = 0x7FA30C03; - c->OMX_COLOR_FormatYUV420Planar = OMX_COLOR_FormatYUV420Planar; - c->OMX_COLOR_FormatYUV420PackedPlanar = OMX_COLOR_FormatYUV420PackedPlanar; - c->OMX_COLOR_FormatYUV420SemiPlanar = OMX_COLOR_FormatYUV420SemiPlanar; - c->OMX_COLOR_FormatYUV422SemiPlanar = OMX_COLOR_FormatYUV422SemiPlanar; - c->OMX_COLOR_FormatL8 = OMX_COLOR_FormatL8; - c->OMX_COLOR_FormatYCbYCr = OMX_COLOR_FormatYCbYCr; - c->OMX_COLOR_FormatYCrYCb = OMX_COLOR_FormatYCrYCb; - c->OMX_COLOR_FormatCbYCrY = OMX_COLOR_FormatCbYCrY; - c->OMX_COLOR_Format32bitARGB8888 = OMX_COLOR_Format32bitARGB8888; - c->OMX_COLOR_Format32bitBGRA8888 = OMX_COLOR_Format32bitBGRA8888; - c->OMX_COLOR_Format16bitRGB565 = OMX_COLOR_Format16bitRGB565; - c->OMX_COLOR_Format16bitBGR565 = OMX_COLOR_Format16bitBGR565; + c->QOMX_COLOR_FormatYUV420PackedSemiPlanar32m = 0x7FA30C04; + c->QOMX_COLOR_FormatYUV420PackedSemiPlanar64x32Tile2m8ka = 0x7FA30C03; + c->OMX_COLOR_FormatYUV420Planar = OMX_COLOR_FormatYUV420Planar; + c->OMX_COLOR_FormatYUV420PackedPlanar = OMX_COLOR_FormatYUV420PackedPlanar; + c->OMX_COLOR_FormatYUV420SemiPlanar = OMX_COLOR_FormatYUV420SemiPlanar; + c->OMX_COLOR_FormatYUV422SemiPlanar = OMX_COLOR_FormatYUV422SemiPlanar; + c->OMX_COLOR_FormatL8 = OMX_COLOR_FormatL8; + c->OMX_COLOR_FormatYCbYCr = OMX_COLOR_FormatYCbYCr; + c->OMX_COLOR_FormatYCrYCb = OMX_COLOR_FormatYCrYCb; + c->OMX_COLOR_FormatCbYCrY = OMX_COLOR_FormatCbYCrY; + c->OMX_COLOR_Format32bitARGB8888 = OMX_COLOR_Format32bitARGB8888; + c->OMX_COLOR_Format32bitBGRA8888 = OMX_COLOR_Format32bitBGRA8888; + c->OMX_COLOR_Format16bitRGB565 = OMX_COLOR_Format16bitRGB565; + c->OMX_COLOR_Format16bitBGR565 = OMX_COLOR_Format16bitBGR565; #if ANDROID_MAJOR >= 5 - c->OMX_COLOR_FormatYUV420Flexible = OMX_COLOR_FormatYUV420Flexible; + c->OMX_COLOR_FormatYUV420Flexible = OMX_COLOR_FormatYUV420Flexible; #else - // OMX_COLOR_FormatUnused = 0 - c->OMX_COLOR_FormatYUV420Flexible = OMX_COLOR_FormatUnused; + // OMX_COLOR_FormatUnused = 0 + c->OMX_COLOR_FormatYUV420Flexible = OMX_COLOR_FormatUnused; #endif } - }; diff --git a/droidmediaconstants.h b/droidmediaconstants.h index 99d979d..9521e6e 100644 --- a/droidmediaconstants.h +++ b/droidmediaconstants.h @@ -23,74 +23,77 @@ extern "C" { #endif -typedef struct { - int CAMERA_FRAME_CALLBACK_FLAG_ENABLE_MASK; - int CAMERA_FRAME_CALLBACK_FLAG_ONE_SHOT_MASK; - int CAMERA_FRAME_CALLBACK_FLAG_COPY_OUT_MASK; - int CAMERA_FRAME_CALLBACK_FLAG_NOOP; - int CAMERA_FRAME_CALLBACK_FLAG_CAMCORDER; - int CAMERA_FRAME_CALLBACK_FLAG_CAMERA; - int CAMERA_FRAME_CALLBACK_FLAG_BARCODE_SCANNER; - int CAMERA_MSG_ERROR; - int CAMERA_MSG_SHUTTER; - int CAMERA_MSG_FOCUS; - int CAMERA_MSG_ZOOM; - int CAMERA_MSG_PREVIEW_FRAME; - int CAMERA_MSG_VIDEO_FRAME; - int CAMERA_MSG_POSTVIEW_FRAME; - int CAMERA_MSG_RAW_IMAGE; - int CAMERA_MSG_COMPRESSED_IMAGE; - int CAMERA_MSG_RAW_IMAGE_NOTIFY; - int CAMERA_MSG_PREVIEW_METADATA; - int CAMERA_MSG_FOCUS_MOVE; - int CAMERA_MSG_ALL_MSGS; - int CAMERA_CMD_START_SMOOTH_ZOOM; - int CAMERA_CMD_STOP_SMOOTH_ZOOM; - int CAMERA_CMD_SET_DISPLAY_ORIENTATION; - int CAMERA_CMD_ENABLE_SHUTTER_SOUND; - int CAMERA_CMD_PLAY_RECORDING_SOUND; - int CAMERA_CMD_START_FACE_DETECTION; - int CAMERA_CMD_STOP_FACE_DETECTION; - int CAMERA_CMD_ENABLE_FOCUS_MOVE_MSG; - int CAMERA_CMD_PING; - int CAMERA_ERROR_UNKNOWN; - int CAMERA_ERROR_RELEASED; - int CAMERA_ERROR_SERVER_DIED; - int CAMERA_FACE_DETECTION_HW; - int CAMERA_FACE_DETECTION_SW; +typedef struct +{ + int CAMERA_FRAME_CALLBACK_FLAG_ENABLE_MASK; + int CAMERA_FRAME_CALLBACK_FLAG_ONE_SHOT_MASK; + int CAMERA_FRAME_CALLBACK_FLAG_COPY_OUT_MASK; + int CAMERA_FRAME_CALLBACK_FLAG_NOOP; + int CAMERA_FRAME_CALLBACK_FLAG_CAMCORDER; + int CAMERA_FRAME_CALLBACK_FLAG_CAMERA; + int CAMERA_FRAME_CALLBACK_FLAG_BARCODE_SCANNER; + int CAMERA_MSG_ERROR; + int CAMERA_MSG_SHUTTER; + int CAMERA_MSG_FOCUS; + int CAMERA_MSG_ZOOM; + int CAMERA_MSG_PREVIEW_FRAME; + int CAMERA_MSG_VIDEO_FRAME; + int CAMERA_MSG_POSTVIEW_FRAME; + int CAMERA_MSG_RAW_IMAGE; + int CAMERA_MSG_COMPRESSED_IMAGE; + int CAMERA_MSG_RAW_IMAGE_NOTIFY; + int CAMERA_MSG_PREVIEW_METADATA; + int CAMERA_MSG_FOCUS_MOVE; + int CAMERA_MSG_ALL_MSGS; + int CAMERA_CMD_START_SMOOTH_ZOOM; + int CAMERA_CMD_STOP_SMOOTH_ZOOM; + int CAMERA_CMD_SET_DISPLAY_ORIENTATION; + int CAMERA_CMD_ENABLE_SHUTTER_SOUND; + int CAMERA_CMD_PLAY_RECORDING_SOUND; + int CAMERA_CMD_START_FACE_DETECTION; + int CAMERA_CMD_STOP_FACE_DETECTION; + int CAMERA_CMD_ENABLE_FOCUS_MOVE_MSG; + int CAMERA_CMD_PING; + int CAMERA_ERROR_UNKNOWN; + int CAMERA_ERROR_RELEASED; + int CAMERA_ERROR_SERVER_DIED; + int CAMERA_FACE_DETECTION_HW; + int CAMERA_FACE_DETECTION_SW; } DroidMediaCameraConstants; -typedef struct { - int HAL_PIXEL_FORMAT_RGBA_8888; - int HAL_PIXEL_FORMAT_RGBX_8888; - int HAL_PIXEL_FORMAT_RGB_888; - int HAL_PIXEL_FORMAT_RGB_565; - int HAL_PIXEL_FORMAT_BGRA_8888; - int HAL_PIXEL_FORMAT_YV12; - int HAL_PIXEL_FORMAT_RAW_SENSOR; - int HAL_PIXEL_FORMAT_YCrCb_420_SP; - int HAL_PIXEL_FORMAT_YCbCr_422_SP; - int HAL_PIXEL_FORMAT_YCbCr_422_I; - int QOMX_COLOR_FormatYUV420PackedSemiPlanar32m; - int QOMX_COLOR_FormatYUV420PackedSemiPlanar64x32Tile2m8ka; +typedef struct +{ + int HAL_PIXEL_FORMAT_RGBA_8888; + int HAL_PIXEL_FORMAT_RGBX_8888; + int HAL_PIXEL_FORMAT_RGB_888; + int HAL_PIXEL_FORMAT_RGB_565; + int HAL_PIXEL_FORMAT_BGRA_8888; + int HAL_PIXEL_FORMAT_YV12; + int HAL_PIXEL_FORMAT_RAW_SENSOR; + int HAL_PIXEL_FORMAT_YCrCb_420_SP; + int HAL_PIXEL_FORMAT_YCbCr_422_SP; + int HAL_PIXEL_FORMAT_YCbCr_422_I; + int QOMX_COLOR_FormatYUV420PackedSemiPlanar32m; + int QOMX_COLOR_FormatYUV420PackedSemiPlanar64x32Tile2m8ka; } DroidMediaPixelFormatConstants; -typedef struct { - int QOMX_COLOR_FormatYUV420PackedSemiPlanar32m; - int QOMX_COLOR_FormatYUV420PackedSemiPlanar64x32Tile2m8ka; - int OMX_COLOR_FormatYUV420Planar; - int OMX_COLOR_FormatYUV420PackedPlanar; - int OMX_COLOR_FormatYUV420SemiPlanar; - int OMX_COLOR_FormatYUV422SemiPlanar; - int OMX_COLOR_FormatL8; - int OMX_COLOR_FormatYCbYCr; - int OMX_COLOR_FormatYCrYCb; - int OMX_COLOR_FormatCbYCrY; - int OMX_COLOR_Format32bitARGB8888; - int OMX_COLOR_Format32bitBGRA8888; - int OMX_COLOR_Format16bitRGB565; - int OMX_COLOR_Format16bitBGR565; - int OMX_COLOR_FormatYUV420Flexible; +typedef struct +{ + int QOMX_COLOR_FormatYUV420PackedSemiPlanar32m; + int QOMX_COLOR_FormatYUV420PackedSemiPlanar64x32Tile2m8ka; + int OMX_COLOR_FormatYUV420Planar; + int OMX_COLOR_FormatYUV420PackedPlanar; + int OMX_COLOR_FormatYUV420SemiPlanar; + int OMX_COLOR_FormatYUV422SemiPlanar; + int OMX_COLOR_FormatL8; + int OMX_COLOR_FormatYCbYCr; + int OMX_COLOR_FormatYCrYCb; + int OMX_COLOR_FormatCbYCrY; + int OMX_COLOR_Format32bitARGB8888; + int OMX_COLOR_Format32bitBGRA8888; + int OMX_COLOR_Format16bitRGB565; + int OMX_COLOR_Format16bitBGR565; + int OMX_COLOR_FormatYUV420Flexible; } DroidMediaColourFormatConstants; void droid_media_camera_constants_init(DroidMediaCameraConstants *c); diff --git a/droidmediaconvert.cpp b/droidmediaconvert.cpp index 9574702..bca9aee 100644 --- a/droidmediaconvert.cpp +++ b/droidmediaconvert.cpp @@ -33,20 +33,22 @@ extern "C" { struct _DroidMediaConvert : public II420ColorConverter { public: - _DroidMediaConvert() : - m_handle(NULL) { - m_crop.top = m_crop.left = m_crop.bottom = m_crop.right = -1; - m_width = m_height = 0; + _DroidMediaConvert() : m_handle(NULL) + { + m_crop.top = m_crop.left = m_crop.bottom = m_crop.right = -1; + m_width = m_height = 0; } - ~_DroidMediaConvert() { + ~_DroidMediaConvert() + { if (m_handle) { dlclose(m_handle); m_handle = NULL; } } - bool init() { + bool init() + { if (m_handle) { ALOGW("already loaded"); return true; @@ -58,7 +60,8 @@ struct _DroidMediaConvert : public II420ColorConverter return false; } - _getI420ColorConverter func = (_getI420ColorConverter)dlsym(m_handle, "getI420ColorConverter"); + _getI420ColorConverter func = + (_getI420ColorConverter)dlsym(m_handle, "getI420ColorConverter"); if (!func) { ALOGE("failed to find symbol getI420ColorConverter"); dlclose(m_handle); @@ -95,20 +98,16 @@ void droid_media_convert_destroy(DroidMediaConvert *convert) bool droid_media_convert_to_i420(DroidMediaConvert *convert, DroidMediaData *in, void *out) { - if (convert->m_crop.left == -1 || - convert->m_crop.top == -1 || - convert->m_crop.right == -1 || - convert->m_crop.bottom == -1) { + if (convert->m_crop.left == -1 || convert->m_crop.top == -1 || convert->m_crop.right == -1 + || convert->m_crop.bottom == -1) { - ALOGE("crop rectangle not set"); + ALOGE("crop rectangle not set"); - return false; + return false; } - android::status_t err = convert->convertDecoderOutputToI420(in->data, convert->m_width, - convert->m_height, - convert->m_crop, - out); + android::status_t err = convert->convertDecoderOutputToI420( + in->data, convert->m_width, convert->m_height, convert->m_crop, out); if (err != android::NO_ERROR) { ALOGE("error 0x%x converting buffer", -err); @@ -119,7 +118,7 @@ bool droid_media_convert_to_i420(DroidMediaConvert *convert, DroidMediaData *in, } void droid_media_convert_set_crop_rect(DroidMediaConvert *convert, DroidMediaRect rect, - int32_t width, int32_t height) + int32_t width, int32_t height) { convert->m_crop.left = rect.left; convert->m_crop.top = rect.top; @@ -129,7 +128,8 @@ void droid_media_convert_set_crop_rect(DroidMediaConvert *convert, DroidMediaRec convert->m_height = height; } -bool droid_media_convert_is_i420(DroidMediaConvert *convert) { +bool droid_media_convert_is_i420(DroidMediaConvert *convert) +{ return convert->getDecoderOutputFormat() == OMX_COLOR_FormatYUV420Planar; } }; diff --git a/droidmediaconvert.h b/droidmediaconvert.h index 453ff57..dbfe37b 100644 --- a/droidmediaconvert.h +++ b/droidmediaconvert.h @@ -32,7 +32,7 @@ void droid_media_convert_destroy(DroidMediaConvert *convert); bool droid_media_convert_to_i420(DroidMediaConvert *convert, DroidMediaData *in, void *out); void droid_media_convert_set_crop_rect(DroidMediaConvert *convert, DroidMediaRect rect, - int32_t width, int32_t height); + int32_t width, int32_t height); bool droid_media_convert_is_i420(DroidMediaConvert *convert); #ifdef __cplusplus diff --git a/droidmediarecorder.cpp b/droidmediarecorder.cpp index a7168bd..83d2d62 100644 --- a/droidmediarecorder.cpp +++ b/droidmediarecorder.cpp @@ -22,10 +22,10 @@ #include "droidmediarecorder.h" #include "private.h" #if (ANDROID_MAJOR == 4 && ANDROID_MINOR < 4) -#include +# include #endif -#if ANDROID_MAJOR >=5 -#include +#if ANDROID_MAJOR >= 5 +# include #endif #undef LOG_TAG @@ -33,217 +33,230 @@ #if ANDROID_MAJOR < 12 namespace android { -#if ANDROID_MAJOR >= 9 - struct CameraSourceListener { -#else - class CameraSourceListener { -#endif - public: - static int32_t getColorFormat(android::sp src, android::CameraParameters p) { - return src->isCameraColorFormatSupported (p) == android::NO_ERROR ? src->mColorFormat : -1; +# if ANDROID_MAJOR >= 9 +struct CameraSourceListener +{ +# else +class CameraSourceListener +{ +# endif +public: + static int32_t getColorFormat(android::sp src, + android::CameraParameters p) + { + return src->isCameraColorFormatSupported(p) == android::NO_ERROR ? src->mColorFormat : -1; } - }; }; +}; // namespace android #endif -struct _DroidMediaRecorder { - _DroidMediaRecorder() : - m_cb_data(0), - m_running(false) { - memset(&m_cb, 0x0, sizeof(m_cb)); - } +struct _DroidMediaRecorder +{ + _DroidMediaRecorder() : m_cb_data(0), m_running(false) { memset(&m_cb, 0x0, sizeof(m_cb)); } - android::status_t tick() { - android::MediaBuffer *buffer; + android::status_t tick() + { + android::MediaBuffer *buffer; #if ANDROID_MAJOR >= 9 - android::status_t err = m_codec->read((android::MediaBufferBase **)&buffer); + android::status_t err = m_codec->read((android::MediaBufferBase **)&buffer); #else - android::status_t err = m_codec->read(&buffer); + android::status_t err = m_codec->read(&buffer); #endif - if (err == android::OK) { - DroidMediaCodecData data; - data.data.data = (uint8_t *)buffer->data() + buffer->range_offset(); - data.data.size = buffer->range_length(); - data.ts = 0; - data.decoding_ts = 0; - int32_t codecConfig = 0; - data.codec_config = false; + if (err == android::OK) { + DroidMediaCodecData data; + data.data.data = (uint8_t *)buffer->data() + buffer->range_offset(); + data.data.size = buffer->range_length(); + data.ts = 0; + data.decoding_ts = 0; + int32_t codecConfig = 0; + data.codec_config = false; #if ANDROID_MAJOR >= 9 - if (buffer->meta_data().findInt32(android::kKeyIsCodecConfig, &codecConfig) + if (buffer->meta_data().findInt32(android::kKeyIsCodecConfig, &codecConfig) #else - if (buffer->meta_data()->findInt32(android::kKeyIsCodecConfig, &codecConfig) + if (buffer->meta_data()->findInt32(android::kKeyIsCodecConfig, &codecConfig) #endif - && codecConfig) { - data.codec_config = true; - } + && codecConfig) { + data.codec_config = true; + } #if ANDROID_MAJOR >= 9 - if (buffer->meta_data().findInt64(android::kKeyTime, &data.ts)) { + if (buffer->meta_data().findInt64(android::kKeyTime, &data.ts)) { #else - if (buffer->meta_data()->findInt64(android::kKeyTime, &data.ts)) { + if (buffer->meta_data()->findInt64(android::kKeyTime, &data.ts)) { #endif - // Convert timestamp from useconds to nseconds - data.ts *= 1000; - } else { - if (!data.codec_config) ALOGE("Recorder received a buffer without a timestamp!"); - } + // Convert timestamp from useconds to nseconds + data.ts *= 1000; + } else { + if (!data.codec_config) + ALOGE("Recorder received a buffer without a timestamp!"); + } #if ANDROID_MAJOR >= 9 - if (buffer->meta_data().findInt64(android::kKeyDecodingTime, &data.decoding_ts)) { + if (buffer->meta_data().findInt64(android::kKeyDecodingTime, &data.decoding_ts)) { #else - if (buffer->meta_data()->findInt64(android::kKeyDecodingTime, &data.decoding_ts)) { + if (buffer->meta_data()->findInt64(android::kKeyDecodingTime, &data.decoding_ts)) { #endif - // Convert from usec to nsec. - data.decoding_ts *= 1000; - } + // Convert from usec to nsec. + data.decoding_ts *= 1000; + } - int32_t sync = 0; - data.sync = false; + int32_t sync = 0; + data.sync = false; #if ANDROID_MAJOR >= 9 - buffer->meta_data().findInt32(android::kKeyIsSyncFrame, &sync); + buffer->meta_data().findInt32(android::kKeyIsSyncFrame, &sync); #else - buffer->meta_data()->findInt32(android::kKeyIsSyncFrame, &sync); + buffer->meta_data()->findInt32(android::kKeyIsSyncFrame, &sync); #endif - if (sync) { - data.sync = true; - } + if (sync) { + data.sync = true; + } + + m_cb.data_available(m_cb_data, &data); + + buffer->release(); + } - m_cb.data_available (m_cb_data, &data); - - buffer->release(); + return err; } - - return err; - } - - void *run() { - android::status_t err = android::OK; - while (m_running && err == android::OK) { - err = tick(); + + void *run() + { + android::status_t err = android::OK; + while (m_running && err == android::OK) { + err = tick(); + } + return NULL; + } + + static void *ThreadWrapper(void *that) + { + return static_cast(that)->run(); } - return NULL; - } - - static void *ThreadWrapper(void *that) { - return static_cast(that)->run(); - } - - DroidMediaCamera *m_cam; - DroidMediaCodecDataCallbacks m_cb; - void *m_cb_data; - android::sp m_src; - android::sp m_codec; + + DroidMediaCamera *m_cam; + DroidMediaCodecDataCallbacks m_cb; + void *m_cb_data; + android::sp m_src; + android::sp m_codec; #if ANDROID_MAJOR >= 5 - android::sp m_looper = NULL; + android::sp m_looper = NULL; #endif - bool m_running; - pthread_t m_thread; + bool m_running; + pthread_t m_thread; }; extern "C" { -DroidMediaRecorder *droid_media_recorder_create(DroidMediaCamera *camera, DroidMediaCodecEncoderMetaData *meta) { +DroidMediaRecorder *droid_media_recorder_create(DroidMediaCamera *camera, + DroidMediaCodecEncoderMetaData *meta) +{ - android::Size size(meta->parent.width, meta->parent.height); - DroidMediaRecorder *recorder = new DroidMediaRecorder; - recorder->m_cam = camera; - android::sp cam(droid_media_camera_get_camera (camera)); + android::Size size(meta->parent.width, meta->parent.height); + DroidMediaRecorder *recorder = new DroidMediaRecorder; + recorder->m_cam = camera; + android::sp cam(droid_media_camera_get_camera(camera)); #if ANDROID_MAJOR >= 5 - recorder->m_looper = new android::ALooper; - recorder->m_looper->setName("DroidMediaRecorderLooper"); - recorder->m_looper->start(); + recorder->m_looper = new android::ALooper; + recorder->m_looper->setName("DroidMediaRecorderLooper"); + recorder->m_looper->start(); #endif - recorder->m_src = android::CameraSource::CreateFromCamera(cam->remote(), - cam->getRecordingProxy(), // proxy - -1, // cameraId + recorder->m_src = + android::CameraSource::CreateFromCamera(cam->remote(), + cam->getRecordingProxy(), // proxy + -1, // cameraId #if (ANDROID_MAJOR == 4 && ANDROID_MINOR == 4) || ANDROID_MAJOR >= 5 - android::String16("droidmedia"), // clientName - android::Camera::USE_CALLING_UID, // clientUid -#if ANDROID_MAJOR >= 7 - android::Camera::USE_CALLING_PID, //clientPid -#endif + android::String16("droidmedia"), // clientName + android::Camera::USE_CALLING_UID, // clientUid +# if ANDROID_MAJOR >= 7 + android::Camera::USE_CALLING_PID, // clientPid +# endif #endif - size, // videoSize - meta->parent.fps, // frameRate - NULL // surface + size, // videoSize + meta->parent.fps, // frameRate + NULL // surface #if ANDROID_MAJOR <= 11 - , meta->meta_data // storeMetaDataInVideoBuffers + , + meta->meta_data // storeMetaDataInVideoBuffers #endif - ); + ); - // set metadata storage in codec according to whether the camera request was successful + // set metadata storage in codec according to whether the camera request + // was successful #if ANDROID_MAJOR >= 7 - meta->meta_data = recorder->m_src->metaDataStoredInVideoBuffers(); + meta->meta_data = recorder->m_src->metaDataStoredInVideoBuffers(); #else - meta->meta_data = recorder->m_src->isMetaDataStoredInVideoBuffers(); + meta->meta_data = recorder->m_src->isMetaDataStoredInVideoBuffers(); #endif - // fetch the colour format - recorder->m_src->getFormat()->findInt32(android::kKeyColorFormat, &meta->color_format); + // fetch the colour format + recorder->m_src->getFormat()->findInt32(android::kKeyColorFormat, &meta->color_format); - // Now the encoder: + // Now the encoder: #if ANDROID_MAJOR >= 5 - recorder->m_codec = droid_media_codec_create_encoder_raw(meta, recorder->m_looper, recorder->m_src); + recorder->m_codec = + droid_media_codec_create_encoder_raw(meta, recorder->m_looper, recorder->m_src); #else - recorder->m_codec = droid_media_codec_create_encoder_raw(meta, recorder->m_src); + recorder->m_codec = droid_media_codec_create_encoder_raw(meta, recorder->m_src); #endif - if (!recorder->m_codec.get()) { - ALOGE("Cannot create codec"); - recorder->m_src.clear(); + if (!recorder->m_codec.get()) { + ALOGE("Cannot create codec"); + recorder->m_src.clear(); #if ANDROID_MAJOR >= 5 - recorder->m_looper->stop(); + recorder->m_looper->stop(); #endif - delete recorder; - return NULL; - } - - return recorder; + delete recorder; + return NULL; + } + return recorder; } -void droid_media_recorder_destroy(DroidMediaRecorder *recorder) { - recorder->m_codec.clear(); - recorder->m_src.clear(); +void droid_media_recorder_destroy(DroidMediaRecorder *recorder) +{ + recorder->m_codec.clear(); + recorder->m_src.clear(); #if ANDROID_MAJOR >= 5 - recorder->m_looper->stop(); + recorder->m_looper->stop(); #endif - delete recorder; + delete recorder; } -bool droid_media_recorder_start(DroidMediaRecorder *recorder) { +bool droid_media_recorder_start(DroidMediaRecorder *recorder) +{ - recorder->m_running = true; - int err = recorder->m_codec->start(); + recorder->m_running = true; + int err = recorder->m_codec->start(); - if (err != android::OK) { - ALOGE("error 0x%x starting codec", -err); - return false; - } + if (err != android::OK) { + ALOGE("error 0x%x starting codec", -err); + return false; + } - pthread_attr_t attr; - pthread_attr_init(&attr); - pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_JOINABLE); - pthread_create(&recorder->m_thread, &attr, DroidMediaRecorder::ThreadWrapper, recorder); - pthread_attr_destroy(&attr); + pthread_attr_t attr; + pthread_attr_init(&attr); + pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_JOINABLE); + pthread_create(&recorder->m_thread, &attr, DroidMediaRecorder::ThreadWrapper, recorder); + pthread_attr_destroy(&attr); - return true; + return true; } -void droid_media_recorder_stop(DroidMediaRecorder *recorder) { - recorder->m_running = false; - void *dummy; - pthread_join(recorder->m_thread, &dummy); +void droid_media_recorder_stop(DroidMediaRecorder *recorder) +{ + recorder->m_running = false; + void *dummy; + pthread_join(recorder->m_thread, &dummy); - int err = recorder->m_codec->stop(); - if (err != android::OK) { - ALOGE("error 0x%x stopping codec", -err); - } + int err = recorder->m_codec->stop(); + if (err != android::OK) { + ALOGE("error 0x%x stopping codec", -err); + } } void droid_media_recorder_set_data_callbacks(DroidMediaRecorder *recorder, - DroidMediaCodecDataCallbacks *cb, void *data) { - memcpy(&recorder->m_cb, cb, sizeof(recorder->m_cb)); - recorder->m_cb_data = data; + DroidMediaCodecDataCallbacks *cb, void *data) +{ + memcpy(&recorder->m_cb, cb, sizeof(recorder->m_cb)); + recorder->m_cb_data = data; } - }; diff --git a/droidmediarecorder.h b/droidmediarecorder.h index c0caae9..b8b23b5 100644 --- a/droidmediarecorder.h +++ b/droidmediarecorder.h @@ -30,14 +30,15 @@ extern "C" { typedef struct _DroidMediaRecorder DroidMediaRecorder; -DroidMediaRecorder *droid_media_recorder_create(DroidMediaCamera *camera, DroidMediaCodecEncoderMetaData *meta); +DroidMediaRecorder *droid_media_recorder_create(DroidMediaCamera *camera, + DroidMediaCodecEncoderMetaData *meta); void droid_media_recorder_destroy(DroidMediaRecorder *recorder); bool droid_media_recorder_start(DroidMediaRecorder *recorder); void droid_media_recorder_stop(DroidMediaRecorder *recorder); void droid_media_recorder_set_data_callbacks(DroidMediaRecorder *recorder, - DroidMediaCodecDataCallbacks *cb, void *data); + DroidMediaCodecDataCallbacks *cb, void *data); #ifdef __cplusplus }; diff --git a/hybris.c b/hybris.c index 58476b8..26309c3 100644 --- a/hybris.c +++ b/hybris.c @@ -27,11 +27,11 @@ #include #ifndef LIB_DROID_MEDIA_PATH -#define LIB_DROID_MEDIA_PATH "libdroidmedia.so" +# define LIB_DROID_MEDIA_PATH "libdroidmedia.so" #endif #ifndef LIBHYBRIS_PATH -#define LIBHYBRIS_PATH "libhybris-common.so.1" +# define LIBHYBRIS_PATH "libhybris-common.so.1" #endif static void *(*_android_dlopen)(const char *name, int flags); @@ -41,232 +41,269 @@ static void *__handle = NULL; static bool __init_glue(void) { - void *handle = dlopen(LIBHYBRIS_PATH, RTLD_LAZY); - if (handle) { - _android_dlopen = dlsym(handle, "android_dlopen"); - _android_dlsym = dlsym(handle, "android_dlsym"); - if (_android_dlopen && _android_dlsym) { - return true; + void *handle = dlopen(LIBHYBRIS_PATH, RTLD_LAZY); + if (handle) { + _android_dlopen = dlsym(handle, "android_dlopen"); + _android_dlsym = dlsym(handle, "android_dlsym"); + if (_android_dlopen && _android_dlsym) { + return true; + } + dlclose(handle); } - dlclose(handle); - } - return false; + return false; } static void __load_library() { - if (!_android_dlopen && !__init_glue()) { - // calling abort() is bad but it does not matter anyway as we will crash. - abort(); - } - __handle = _android_dlopen(LIB_DROID_MEDIA_PATH, RTLD_NOW); - if (!__handle) { - abort(); - } + if (!_android_dlopen && !__init_glue()) { + // calling abort() is bad but it does not matter anyway as we will + // crash. + abort(); + } + __handle = _android_dlopen(LIB_DROID_MEDIA_PATH, RTLD_NOW); + if (!__handle) { + abort(); + } } static inline void *__resolve_sym(const char *sym) { - if (!__handle) { - __load_library(); - } + if (!__handle) { + __load_library(); + } - void *ptr = _android_dlsym(__handle, sym); - assert(ptr != NULL); - if (!ptr) { - // calling abort() is bad but it does not matter anyway as we will crash. - abort(); - } + void *ptr = _android_dlsym(__handle, sym); + assert(ptr != NULL); + if (!ptr) { + // calling abort() is bad but it does not matter anyway as we will + // crash. + abort(); + } - return ptr; + return ptr; } -#define HYBRIS_WRAPPER_1_0(ret,sym) \ - ret sym() { \ - static ret (* _sym)() = NULL; \ - if (!_sym) \ - _sym = __resolve_sym(#sym); \ - return _sym(); \ - } \ +#define HYBRIS_WRAPPER_1_0(ret, sym) \ + ret sym() \ + { \ + static ret (*_sym)() = NULL; \ + if (!_sym) \ + _sym = __resolve_sym(#sym); \ + return _sym(); \ + } -#define HYBRIS_WRAPPER_1_1(ret,arg0,sym) \ - ret sym(arg0 _arg0) { \ - static ret (* _sym)(arg0) = NULL; \ - if (!_sym) \ - _sym = __resolve_sym(#sym); \ - return _sym(_arg0); \ - } \ +#define HYBRIS_WRAPPER_1_1(ret, arg0, sym) \ + ret sym(arg0 _arg0) \ + { \ + static ret (*_sym)(arg0) = NULL; \ + if (!_sym) \ + _sym = __resolve_sym(#sym); \ + return _sym(_arg0); \ + } -#define HYBRIS_WRAPPER_1_2(ret,arg0,arg1,sym) \ - ret sym(arg0 _arg0, arg1 _arg1) { \ - static ret (* _sym)(arg0, arg1) = NULL; \ - if (!_sym) \ - _sym = __resolve_sym(#sym); \ - return _sym(_arg0,_arg1); \ - } \ +#define HYBRIS_WRAPPER_1_2(ret, arg0, arg1, sym) \ + ret sym(arg0 _arg0, arg1 _arg1) \ + { \ + static ret (*_sym)(arg0, arg1) = NULL; \ + if (!_sym) \ + _sym = __resolve_sym(#sym); \ + return _sym(_arg0, _arg1); \ + } -#define HYBRIS_WRAPPER_1_3(ret,arg0,arg1,arg2,sym) \ - ret sym(arg0 _arg0, arg1 _arg1, arg2 _arg2) { \ - static ret (* _sym)(arg0, arg1, arg2) = NULL; \ - if (!_sym) \ - _sym = __resolve_sym(#sym); \ - return _sym(_arg0,_arg1, _arg2); \ - } \ +#define HYBRIS_WRAPPER_1_3(ret, arg0, arg1, arg2, sym) \ + ret sym(arg0 _arg0, arg1 _arg1, arg2 _arg2) \ + { \ + static ret (*_sym)(arg0, arg1, arg2) = NULL; \ + if (!_sym) \ + _sym = __resolve_sym(#sym); \ + return _sym(_arg0, _arg1, _arg2); \ + } -#define HYBRIS_WRAPPER_1_4(ret,arg0,arg1,arg2,arg3,sym) \ - ret sym(arg0 _arg0, arg1 _arg1, arg2 _arg2, arg3 _arg3) { \ - static ret (* _sym)(arg0, arg1, arg2, arg3) = NULL; \ - if (!_sym) \ - _sym = __resolve_sym(#sym); \ - return _sym(_arg0,_arg1, _arg2, _arg3); \ - } \ +#define HYBRIS_WRAPPER_1_4(ret, arg0, arg1, arg2, arg3, sym) \ + ret sym(arg0 _arg0, arg1 _arg1, arg2 _arg2, arg3 _arg3) \ + { \ + static ret (*_sym)(arg0, arg1, arg2, arg3) = NULL; \ + if (!_sym) \ + _sym = __resolve_sym(#sym); \ + return _sym(_arg0, _arg1, _arg2, _arg3); \ + } -#define HYBRIS_WRAPPER_1_6(ret,arg0,arg1,arg2,arg3,arg4,arg5,sym) \ - ret sym(arg0 _arg0, arg1 _arg1, arg2 _arg2, arg3 _arg3, arg4 _arg4, arg5 _arg5) { \ - static ret (* _sym)(arg0, arg1, arg2, arg3, arg4, arg5) = NULL; \ - if (!_sym) \ - _sym = __resolve_sym(#sym); \ - return _sym(_arg0,_arg1, _arg2, _arg3, _arg4, _arg5); \ - } \ +#define HYBRIS_WRAPPER_1_6(ret, arg0, arg1, arg2, arg3, arg4, arg5, sym) \ + ret sym(arg0 _arg0, arg1 _arg1, arg2 _arg2, arg3 _arg3, arg4 _arg4, arg5 _arg5) \ + { \ + static ret (*_sym)(arg0, arg1, arg2, arg3, arg4, arg5) = NULL; \ + if (!_sym) \ + _sym = __resolve_sym(#sym); \ + return _sym(_arg0, _arg1, _arg2, _arg3, _arg4, _arg5); \ + } -#define HYBRIS_WRAPPER_1_7(ret,arg0,arg1,arg2,arg3,arg4,arg5,arg6,sym) \ - ret sym(arg0 _arg0, arg1 _arg1, arg2 _arg2, arg3 _arg3, arg4 _arg4, arg5 _arg5, arg6 _arg6) { \ - static ret (* _sym)(arg0, arg1, arg2, arg3, arg4, arg5, arg6) = NULL; \ - if (!_sym) \ - _sym = __resolve_sym(#sym); \ - return _sym(_arg0,_arg1, _arg2, _arg3, _arg4, _arg5, _arg6); \ - } \ +#define HYBRIS_WRAPPER_1_7(ret, arg0, arg1, arg2, arg3, arg4, arg5, arg6, sym) \ + ret sym(arg0 _arg0, arg1 _arg1, arg2 _arg2, arg3 _arg3, arg4 _arg4, arg5 _arg5, arg6 _arg6) \ + { \ + static ret (*_sym)(arg0, arg1, arg2, arg3, arg4, arg5, arg6) = NULL; \ + if (!_sym) \ + _sym = __resolve_sym(#sym); \ + return _sym(_arg0, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6); \ + } -#define HYBRIS_WRAPPER_0_4(arg0,arg1,arg2,arg3,sym) \ - void sym(arg0 _arg0, arg1 _arg1, arg2 _arg2, arg3 _arg3) { \ - static void (* _sym)(arg0, arg1, arg2, arg3) = NULL; \ - if (!_sym) \ - _sym = __resolve_sym(#sym); \ - _sym(_arg0,_arg1, _arg2, _arg3); \ - } \ +#define HYBRIS_WRAPPER_0_4(arg0, arg1, arg2, arg3, sym) \ + void sym(arg0 _arg0, arg1 _arg1, arg2 _arg2, arg3 _arg3) \ + { \ + static void (*_sym)(arg0, arg1, arg2, arg3) = NULL; \ + if (!_sym) \ + _sym = __resolve_sym(#sym); \ + _sym(_arg0, _arg1, _arg2, _arg3); \ + } -#define HYBRIS_WRAPPER_0_1(arg0,sym) \ - void sym(arg0 _arg0) { \ - static void (* _sym)(arg0) = NULL; \ - if (!_sym) \ - _sym = __resolve_sym(#sym); \ - _sym(_arg0); \ - } \ +#define HYBRIS_WRAPPER_0_1(arg0, sym) \ + void sym(arg0 _arg0) \ + { \ + static void (*_sym)(arg0) = NULL; \ + if (!_sym) \ + _sym = __resolve_sym(#sym); \ + _sym(_arg0); \ + } -#define HYBRIS_WRAPPER_0_2(arg0,arg1,sym) \ - void sym(arg0 _arg0, arg1 _arg1) { \ - static void (* _sym)(arg0, arg1) = NULL; \ - if (!_sym) \ - _sym = __resolve_sym(#sym); \ - _sym(_arg0, _arg1); \ - } \ +#define HYBRIS_WRAPPER_0_2(arg0, arg1, sym) \ + void sym(arg0 _arg0, arg1 _arg1) \ + { \ + static void (*_sym)(arg0, arg1) = NULL; \ + if (!_sym) \ + _sym = __resolve_sym(#sym); \ + _sym(_arg0, _arg1); \ + } -#define HYBRIS_WRAPPER_0_0(sym) \ - void sym() { \ - static void (* _sym)() = NULL; \ - if (!_sym) \ - _sym = __resolve_sym(#sym); \ - _sym(); \ - } \ +#define HYBRIS_WRAPPER_0_0(sym) \ + void sym() \ + { \ + static void (*_sym)() = NULL; \ + if (!_sym) \ + _sym = __resolve_sym(#sym); \ + _sym(); \ + } -#define HYBRIS_WRAPPER_0_3(arg0,arg1,arg2,sym) \ - void sym(arg0 _arg0, arg1 _arg1, arg2 _arg2) { \ - static void (* _sym)(arg0, arg1, arg2) = NULL; \ - if (!_sym) \ - _sym = __resolve_sym(#sym); \ - _sym(_arg0,_arg1, _arg2); \ - } \ +#define HYBRIS_WRAPPER_0_3(arg0, arg1, arg2, sym) \ + void sym(arg0 _arg0, arg1 _arg1, arg2 _arg2) \ + { \ + static void (*_sym)(arg0, arg1, arg2) = NULL; \ + if (!_sym) \ + _sym = __resolve_sym(#sym); \ + _sym(_arg0, _arg1, _arg2); \ + } -HYBRIS_WRAPPER_1_0(int,droid_media_camera_get_number_of_cameras) -HYBRIS_WRAPPER_1_2(bool,DroidMediaCameraInfo*, int, droid_media_camera_get_info) -HYBRIS_WRAPPER_1_1(DroidMediaCamera*,int,droid_media_camera_connect) -HYBRIS_WRAPPER_1_1(bool,DroidMediaCamera*,droid_media_camera_reconnect) -HYBRIS_WRAPPER_0_1(DroidMediaCamera*,droid_media_camera_disconnect) -HYBRIS_WRAPPER_1_1(bool,DroidMediaCamera*,droid_media_camera_lock) -HYBRIS_WRAPPER_1_1(bool,DroidMediaCamera*,droid_media_camera_unlock) -HYBRIS_WRAPPER_1_1(bool,DroidMediaCamera*,droid_media_camera_start_preview) -HYBRIS_WRAPPER_0_1(DroidMediaCamera*,droid_media_camera_stop_preview) -HYBRIS_WRAPPER_1_1(bool,DroidMediaCamera*,droid_media_camera_is_preview_enabled) -HYBRIS_WRAPPER_1_1(bool,DroidMediaCamera*,droid_media_camera_start_recording) -HYBRIS_WRAPPER_0_1(DroidMediaCamera*,droid_media_camera_stop_recording) -HYBRIS_WRAPPER_1_1(bool,DroidMediaCamera*,droid_media_camera_is_recording_enabled) -HYBRIS_WRAPPER_1_1(bool,DroidMediaCamera*,droid_media_camera_start_auto_focus) -HYBRIS_WRAPPER_1_1(bool,DroidMediaCamera*,droid_media_camera_cancel_auto_focus) -HYBRIS_WRAPPER_0_3(DroidMediaCamera*,DroidMediaCameraCallbacks*,void*,droid_media_camera_set_callbacks) -HYBRIS_WRAPPER_1_4(bool,DroidMediaCamera*,int32_t,int32_t,int32_t,droid_media_camera_send_command) -HYBRIS_WRAPPER_1_2(bool, DroidMediaCamera*,bool,droid_media_camera_store_meta_data_in_buffers) -HYBRIS_WRAPPER_0_2(DroidMediaCamera*, int, droid_media_camera_set_preview_callback_flags) -HYBRIS_WRAPPER_1_2(bool, DroidMediaCamera*,const char *,droid_media_camera_set_parameters) -HYBRIS_WRAPPER_1_1(char *, DroidMediaCamera*, droid_media_camera_get_parameters) -HYBRIS_WRAPPER_1_2(bool, DroidMediaCamera*, int, droid_media_camera_take_picture) -HYBRIS_WRAPPER_1_1(DroidMediaBufferQueue*, DroidMediaCamera*, droid_media_camera_get_buffer_queue) -HYBRIS_WRAPPER_1_1(DroidMediaBufferQueue*, DroidMediaCamera*, droid_media_camera_get_recording_buffer_queue) -HYBRIS_WRAPPER_0_1(DroidMediaBuffer*,droid_media_buffer_destroy) -HYBRIS_WRAPPER_0_3(DroidMediaBuffer*,EGLDisplay,EGLSyncKHR,droid_media_buffer_release) -HYBRIS_WRAPPER_0_2(DroidMediaCamera*, DroidMediaCameraRecordingData*,droid_media_camera_release_recording_frame) -HYBRIS_WRAPPER_1_1(nsecs_t,DroidMediaCameraRecordingData*,droid_media_camera_recording_frame_get_timestamp) -HYBRIS_WRAPPER_1_1(size_t,DroidMediaCameraRecordingData*,droid_media_camera_recording_frame_get_size) -HYBRIS_WRAPPER_1_1(void*,DroidMediaCameraRecordingData*,droid_media_camera_recording_frame_get_data) -HYBRIS_WRAPPER_1_3(bool,DroidMediaCamera*,DroidMediaCameraFaceDetectionType,bool,droid_media_camera_enable_face_detection) -HYBRIS_WRAPPER_1_3(DroidMediaBuffer*,uint32_t,uint32_t,uint32_t,droid_media_buffer_create) -HYBRIS_WRAPPER_1_2(void*,DroidMediaBuffer*,uint32_t,droid_media_buffer_lock) -HYBRIS_WRAPPER_1_3(bool,DroidMediaBuffer*,uint32_t,DroidMediaBufferYCbCr*,droid_media_buffer_lock_ycbcr) -HYBRIS_WRAPPER_0_1(DroidMediaBuffer*,droid_media_buffer_unlock) -HYBRIS_WRAPPER_0_2(DroidMediaBuffer*,void *,droid_media_buffer_set_user_data) -HYBRIS_WRAPPER_1_1(void*,DroidMediaBuffer*,droid_media_buffer_get_user_data) -HYBRIS_WRAPPER_0_2(DroidMediaBuffer*,DroidMediaBufferInfo*,droid_media_buffer_get_info) -HYBRIS_WRAPPER_1_1(uint32_t,DroidMediaBuffer*,droid_media_buffer_get_transform) -HYBRIS_WRAPPER_1_1(uint32_t,DroidMediaBuffer*,droid_media_buffer_get_scaling_mode) -HYBRIS_WRAPPER_1_1(int64_t,DroidMediaBuffer*,droid_media_buffer_get_timestamp) -HYBRIS_WRAPPER_1_1(uint64_t,DroidMediaBuffer*,droid_media_buffer_get_frame_number) -HYBRIS_WRAPPER_1_1(DroidMediaRect,DroidMediaBuffer*,droid_media_buffer_get_crop_rect) -HYBRIS_WRAPPER_1_1(uint32_t,DroidMediaBuffer*,droid_media_buffer_get_width); -HYBRIS_WRAPPER_1_1(uint32_t,DroidMediaBuffer*,droid_media_buffer_get_height); -HYBRIS_WRAPPER_1_1(const void*,DroidMediaBuffer*,droid_media_buffer_get_handle); -HYBRIS_WRAPPER_1_0(int,droid_media_buffer_queue_length); -HYBRIS_WRAPPER_1_1(DroidMediaCodec*,DroidMediaCodecDecoderMetaData*,droid_media_codec_create_decoder); -HYBRIS_WRAPPER_1_1(DroidMediaCodec*,DroidMediaCodecEncoderMetaData*,droid_media_codec_create_encoder); -HYBRIS_WRAPPER_1_2(bool,DroidMediaCodecMetaData*,bool,droid_media_codec_is_supported); -HYBRIS_WRAPPER_1_4(unsigned int,DroidMediaCodecMetaData*,int,uint32_t*,unsigned int,droid_media_codec_get_supported_color_formats); -HYBRIS_WRAPPER_1_1(bool,DroidMediaCodec*,droid_media_codec_start); -HYBRIS_WRAPPER_0_1(DroidMediaCodec*,droid_media_codec_stop); -HYBRIS_WRAPPER_0_1(DroidMediaCodec *,droid_media_codec_destroy); -HYBRIS_WRAPPER_0_3(DroidMediaCodec*,DroidMediaCodecData*,DroidMediaBufferCallbacks*,droid_media_codec_queue); -HYBRIS_WRAPPER_1_1(DroidMediaBufferQueue*,DroidMediaCodec*,droid_media_codec_get_buffer_queue); -HYBRIS_WRAPPER_0_3(DroidMediaCodec*,DroidMediaCodecCallbacks*, void*, droid_media_codec_set_callbacks); -HYBRIS_WRAPPER_0_3(DroidMediaCodec*,DroidMediaCodecDataCallbacks*,void*,droid_media_codec_set_data_callbacks); +HYBRIS_WRAPPER_1_0(int, droid_media_camera_get_number_of_cameras) +HYBRIS_WRAPPER_1_2(bool, DroidMediaCameraInfo *, int, droid_media_camera_get_info) +HYBRIS_WRAPPER_1_1(DroidMediaCamera *, int, droid_media_camera_connect) +HYBRIS_WRAPPER_1_1(bool, DroidMediaCamera *, droid_media_camera_reconnect) +HYBRIS_WRAPPER_0_1(DroidMediaCamera *, droid_media_camera_disconnect) +HYBRIS_WRAPPER_1_1(bool, DroidMediaCamera *, droid_media_camera_lock) +HYBRIS_WRAPPER_1_1(bool, DroidMediaCamera *, droid_media_camera_unlock) +HYBRIS_WRAPPER_1_1(bool, DroidMediaCamera *, droid_media_camera_start_preview) +HYBRIS_WRAPPER_0_1(DroidMediaCamera *, droid_media_camera_stop_preview) +HYBRIS_WRAPPER_1_1(bool, DroidMediaCamera *, droid_media_camera_is_preview_enabled) +HYBRIS_WRAPPER_1_1(bool, DroidMediaCamera *, droid_media_camera_start_recording) +HYBRIS_WRAPPER_0_1(DroidMediaCamera *, droid_media_camera_stop_recording) +HYBRIS_WRAPPER_1_1(bool, DroidMediaCamera *, droid_media_camera_is_recording_enabled) +HYBRIS_WRAPPER_1_1(bool, DroidMediaCamera *, droid_media_camera_start_auto_focus) +HYBRIS_WRAPPER_1_1(bool, DroidMediaCamera *, droid_media_camera_cancel_auto_focus) +HYBRIS_WRAPPER_0_3(DroidMediaCamera *, DroidMediaCameraCallbacks *, void *, + droid_media_camera_set_callbacks) +HYBRIS_WRAPPER_1_4(bool, DroidMediaCamera *, int32_t, int32_t, int32_t, + droid_media_camera_send_command) +HYBRIS_WRAPPER_1_2(bool, DroidMediaCamera *, bool, droid_media_camera_store_meta_data_in_buffers) +HYBRIS_WRAPPER_0_2(DroidMediaCamera *, int, droid_media_camera_set_preview_callback_flags) +HYBRIS_WRAPPER_1_2(bool, DroidMediaCamera *, const char *, droid_media_camera_set_parameters) +HYBRIS_WRAPPER_1_1(char *, DroidMediaCamera *, droid_media_camera_get_parameters) +HYBRIS_WRAPPER_1_2(bool, DroidMediaCamera *, int, droid_media_camera_take_picture) +HYBRIS_WRAPPER_1_1(DroidMediaBufferQueue *, DroidMediaCamera *, droid_media_camera_get_buffer_queue) +HYBRIS_WRAPPER_1_1(DroidMediaBufferQueue *, DroidMediaCamera *, + droid_media_camera_get_recording_buffer_queue) +HYBRIS_WRAPPER_0_1(DroidMediaBuffer *, droid_media_buffer_destroy) +HYBRIS_WRAPPER_0_3(DroidMediaBuffer *, EGLDisplay, EGLSyncKHR, droid_media_buffer_release) +HYBRIS_WRAPPER_0_2(DroidMediaCamera *, DroidMediaCameraRecordingData *, + droid_media_camera_release_recording_frame) +HYBRIS_WRAPPER_1_1(nsecs_t, DroidMediaCameraRecordingData *, + droid_media_camera_recording_frame_get_timestamp) +HYBRIS_WRAPPER_1_1(size_t, DroidMediaCameraRecordingData *, + droid_media_camera_recording_frame_get_size) +HYBRIS_WRAPPER_1_1(void *, DroidMediaCameraRecordingData *, + droid_media_camera_recording_frame_get_data) +HYBRIS_WRAPPER_1_3(bool, DroidMediaCamera *, DroidMediaCameraFaceDetectionType, bool, + droid_media_camera_enable_face_detection) +HYBRIS_WRAPPER_1_3(DroidMediaBuffer *, uint32_t, uint32_t, uint32_t, droid_media_buffer_create) +HYBRIS_WRAPPER_1_2(void *, DroidMediaBuffer *, uint32_t, droid_media_buffer_lock) +HYBRIS_WRAPPER_1_3(bool, DroidMediaBuffer *, uint32_t, DroidMediaBufferYCbCr *, + droid_media_buffer_lock_ycbcr) +HYBRIS_WRAPPER_0_1(DroidMediaBuffer *, droid_media_buffer_unlock) +HYBRIS_WRAPPER_0_2(DroidMediaBuffer *, void *, droid_media_buffer_set_user_data) +HYBRIS_WRAPPER_1_1(void *, DroidMediaBuffer *, droid_media_buffer_get_user_data) +HYBRIS_WRAPPER_0_2(DroidMediaBuffer *, DroidMediaBufferInfo *, droid_media_buffer_get_info) +HYBRIS_WRAPPER_1_1(uint32_t, DroidMediaBuffer *, droid_media_buffer_get_transform) +HYBRIS_WRAPPER_1_1(uint32_t, DroidMediaBuffer *, droid_media_buffer_get_scaling_mode) +HYBRIS_WRAPPER_1_1(int64_t, DroidMediaBuffer *, droid_media_buffer_get_timestamp) +HYBRIS_WRAPPER_1_1(uint64_t, DroidMediaBuffer *, droid_media_buffer_get_frame_number) +HYBRIS_WRAPPER_1_1(DroidMediaRect, DroidMediaBuffer *, droid_media_buffer_get_crop_rect) +HYBRIS_WRAPPER_1_1(uint32_t, DroidMediaBuffer *, droid_media_buffer_get_width); +HYBRIS_WRAPPER_1_1(uint32_t, DroidMediaBuffer *, droid_media_buffer_get_height); +HYBRIS_WRAPPER_1_1(const void *, DroidMediaBuffer *, droid_media_buffer_get_handle); +HYBRIS_WRAPPER_1_0(int, droid_media_buffer_queue_length); +HYBRIS_WRAPPER_1_1(DroidMediaCodec *, DroidMediaCodecDecoderMetaData *, + droid_media_codec_create_decoder); +HYBRIS_WRAPPER_1_1(DroidMediaCodec *, DroidMediaCodecEncoderMetaData *, + droid_media_codec_create_encoder); +HYBRIS_WRAPPER_1_2(bool, DroidMediaCodecMetaData *, bool, droid_media_codec_is_supported); +HYBRIS_WRAPPER_1_4(unsigned int, DroidMediaCodecMetaData *, int, uint32_t *, unsigned int, + droid_media_codec_get_supported_color_formats); +HYBRIS_WRAPPER_1_1(bool, DroidMediaCodec *, droid_media_codec_start); +HYBRIS_WRAPPER_0_1(DroidMediaCodec *, droid_media_codec_stop); +HYBRIS_WRAPPER_0_1(DroidMediaCodec *, droid_media_codec_destroy); +HYBRIS_WRAPPER_0_3(DroidMediaCodec *, DroidMediaCodecData *, DroidMediaBufferCallbacks *, + droid_media_codec_queue); +HYBRIS_WRAPPER_1_1(DroidMediaBufferQueue *, DroidMediaCodec *, droid_media_codec_get_buffer_queue); +HYBRIS_WRAPPER_0_3(DroidMediaCodec *, DroidMediaCodecCallbacks *, void *, + droid_media_codec_set_callbacks); +HYBRIS_WRAPPER_0_3(DroidMediaCodec *, DroidMediaCodecDataCallbacks *, void *, + droid_media_codec_set_data_callbacks); HYBRIS_WRAPPER_0_1(DroidMediaCodec *, droid_media_codec_flush); HYBRIS_WRAPPER_0_1(DroidMediaCodec *, droid_media_codec_drain); -HYBRIS_WRAPPER_1_1(DroidMediaCodecLoopReturn,DroidMediaCodec*,droid_media_codec_loop); -HYBRIS_WRAPPER_0_3(DroidMediaCodec*,DroidMediaCodecMetaData*,DroidMediaRect*,droid_media_codec_get_output_info); -HYBRIS_WRAPPER_1_2(bool,DroidMediaCodec*,int32_t,droid_media_codec_set_video_encoder_bitrate); +HYBRIS_WRAPPER_1_1(DroidMediaCodecLoopReturn, DroidMediaCodec *, droid_media_codec_loop); +HYBRIS_WRAPPER_0_3(DroidMediaCodec *, DroidMediaCodecMetaData *, DroidMediaRect *, + droid_media_codec_get_output_info); +HYBRIS_WRAPPER_1_2(bool, DroidMediaCodec *, int32_t, droid_media_codec_set_video_encoder_bitrate); HYBRIS_WRAPPER_0_0(_droid_media_init) HYBRIS_WRAPPER_0_0(droid_media_deinit) -HYBRIS_WRAPPER_1_2(DroidMediaBuffer*,DroidMediaBufferQueue*,DroidMediaBufferCallbacks*,droid_media_buffer_queue_acquire_buffer) -HYBRIS_WRAPPER_0_3(DroidMediaBufferQueue*,DroidMediaBufferQueueCallbacks*,void*,droid_media_buffer_queue_set_callbacks) -HYBRIS_WRAPPER_1_2(bool,DroidMediaBufferQueue*,DroidMediaBufferInfo*,droid_media_buffer_queue_acquire_and_release) -HYBRIS_WRAPPER_0_1(DroidMediaCameraConstants*,droid_media_camera_constants_init) -HYBRIS_WRAPPER_0_1(DroidMediaPixelFormatConstants*,droid_media_pixel_format_constants_init) -HYBRIS_WRAPPER_0_1(DroidMediaColourFormatConstants*,droid_media_colour_format_constants_init) -HYBRIS_WRAPPER_1_1(int32_t,DroidMediaCamera*,droid_media_camera_get_video_color_format) -HYBRIS_WRAPPER_1_0(DroidMediaConvert*,droid_media_convert_create); -HYBRIS_WRAPPER_0_1(DroidMediaConvert*,droid_media_convert_destroy); -HYBRIS_WRAPPER_1_3(bool,DroidMediaConvert*,DroidMediaData*,void*,droid_media_convert_to_i420); -HYBRIS_WRAPPER_0_4(DroidMediaConvert*,DroidMediaRect,int32_t,int32_t,droid_media_convert_set_crop_rect); -HYBRIS_WRAPPER_1_1(bool,DroidMediaConvert*,droid_media_convert_is_i420); +HYBRIS_WRAPPER_1_2(DroidMediaBuffer *, DroidMediaBufferQueue *, DroidMediaBufferCallbacks *, + droid_media_buffer_queue_acquire_buffer) +HYBRIS_WRAPPER_0_3(DroidMediaBufferQueue *, DroidMediaBufferQueueCallbacks *, void *, + droid_media_buffer_queue_set_callbacks) +HYBRIS_WRAPPER_1_2(bool, DroidMediaBufferQueue *, DroidMediaBufferInfo *, + droid_media_buffer_queue_acquire_and_release) +HYBRIS_WRAPPER_0_1(DroidMediaCameraConstants *, droid_media_camera_constants_init) +HYBRIS_WRAPPER_0_1(DroidMediaPixelFormatConstants *, droid_media_pixel_format_constants_init) +HYBRIS_WRAPPER_0_1(DroidMediaColourFormatConstants *, droid_media_colour_format_constants_init) +HYBRIS_WRAPPER_1_1(int32_t, DroidMediaCamera *, droid_media_camera_get_video_color_format) +HYBRIS_WRAPPER_1_0(DroidMediaConvert *, droid_media_convert_create); +HYBRIS_WRAPPER_0_1(DroidMediaConvert *, droid_media_convert_destroy); +HYBRIS_WRAPPER_1_3(bool, DroidMediaConvert *, DroidMediaData *, void *, + droid_media_convert_to_i420); +HYBRIS_WRAPPER_0_4(DroidMediaConvert *, DroidMediaRect, int32_t, int32_t, + droid_media_convert_set_crop_rect); +HYBRIS_WRAPPER_1_1(bool, DroidMediaConvert *, droid_media_convert_is_i420); -HYBRIS_WRAPPER_1_2(DroidMediaRecorder*,DroidMediaCamera*,DroidMediaCodecEncoderMetaData*,droid_media_recorder_create); -HYBRIS_WRAPPER_0_1(DroidMediaRecorder*,droid_media_recorder_destroy); -HYBRIS_WRAPPER_1_1(bool,DroidMediaRecorder*,droid_media_recorder_start); -HYBRIS_WRAPPER_0_1(DroidMediaRecorder*,droid_media_recorder_stop); -HYBRIS_WRAPPER_0_3(DroidMediaRecorder*,DroidMediaCodecDataCallbacks*,void*,droid_media_recorder_set_data_callbacks); +HYBRIS_WRAPPER_1_2(DroidMediaRecorder *, DroidMediaCamera *, DroidMediaCodecEncoderMetaData *, + droid_media_recorder_create); +HYBRIS_WRAPPER_0_1(DroidMediaRecorder *, droid_media_recorder_destroy); +HYBRIS_WRAPPER_1_1(bool, DroidMediaRecorder *, droid_media_recorder_start); +HYBRIS_WRAPPER_0_1(DroidMediaRecorder *, droid_media_recorder_stop); +HYBRIS_WRAPPER_0_3(DroidMediaRecorder *, DroidMediaCodecDataCallbacks *, void *, + droid_media_recorder_set_data_callbacks); bool droid_media_init(void) { - if (__init_glue()) { - _droid_media_init(); - return true; - } - return false; + if (__init_glue()) { + _droid_media_init(); + return true; + } + return false; } diff --git a/libminisf.cpp b/libminisf.cpp index 139ff9d..958cc54 100644 --- a/libminisf.cpp +++ b/libminisf.cpp @@ -22,27 +22,24 @@ #include #include #if ANDROID_MAJOR < 8 -#include "allocator.h" +# include "allocator.h" #endif #include "services/services.h" using namespace android; -extern "C" -void startMiniSurfaceFlinger() +extern "C" void startMiniSurfaceFlinger() { sp proc(ProcessState::self()); sp sm = defaultServiceManager(); - if (sm->checkService(String16("SurfaceFlinger")) == NULL) - { + if (sm->checkService(String16("SurfaceFlinger")) == NULL) { MiniSurfaceFlinger::instantiate(); - } - else - { - ALOGW("SurfaceFlinger service already running, so we won't start it here. If you have trouble with media, try disabling the minisf service."); + } else { + ALOGW("SurfaceFlinger service already running, so we won't start it " + "here. If you have trouble with media, try disabling the minisf " + "service."); } ProcessState::self()->startThreadPool(); - } diff --git a/mediabuffers.h b/mediabuffers.h index a7779d2..a31dc31 100644 --- a/mediabuffers.h +++ b/mediabuffers.h @@ -13,16 +13,17 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + #ifndef MEDIA_BUFFERS_H_ #define MEDIA_BUFFERS_H_ #include #include -template -struct Buffers { - android::Listbuffers; +template +struct Buffers +{ + android::List buffers; android::Condition cond; android::Mutex lock; }; diff --git a/minimedia.cpp b/minimedia.cpp index 051efb6..76794af 100644 --- a/minimedia.cpp +++ b/minimedia.cpp @@ -22,24 +22,24 @@ #include #include #if ANDROID_MAJOR <= 11 -#include +# include #endif #if ANDROID_MAJOR >= 6 -#include -#if ANDROID_MAJOR < 7 -#include -#else -#include -#endif -#include -#include +# include +# if ANDROID_MAJOR < 7 +# include +# else +# include +# endif +# include +# include #endif #if ANDROID_MAJOR < 8 -#include "allocator.h" +# include "allocator.h" #endif #include "services/services.h" #if ANDROID_MAJOR >= 5 -#include "services/audiopolicy/audiopolicy.h" +# include "services/audiopolicy/audiopolicy.h" #endif #include @@ -51,8 +51,7 @@ using namespace android; #define BINDER_SERVICE_CHECK_INTERVAL 500000 -int -main(int, char**) +int main(int, char **) { sp proc(ProcessState::self()); sp sm = defaultServiceManager(); @@ -72,32 +71,34 @@ main(int, char**) FakeAudioPolicyService::instantiate(); #endif -// PermissionController and AppOps are needed on Android 4, but aren't allowed to be run here. +// PermissionController and AppOps are needed on Android 4, but aren't allowed +// to be run here. #if ANDROID_MAJOR >= 5 FakePermissionController::instantiate(); FakeAppOps::instantiate(); FakeBatteryStats::instantiate(); -#if ANDROID_MAJOR >= 10 +# if ANDROID_MAJOR >= 10 FakeSensorPrivacyManager::instantiate(); -#endif -#if !defined(SENSORSERVER_DISABLE) +# endif +# if !defined(SENSORSERVER_DISABLE) FakeSensorServer::instantiate(); -#endif +# endif #endif #if ANDROID_MAJOR >= 8 - sp sensorManager = new FakeSensorManager; + sp sensorManager = + new FakeSensorManager; status_t status = sensorManager->registerAsService(); (void)status; #endif CameraService::instantiate(); #if ANDROID_MAJOR >= 6 -#if ANDROID_MAJOR <= 11 +# if ANDROID_MAJOR <= 11 FakeResourceManagerService::instantiate(); -#endif +# endif FakeProcessInfoService::instantiate(); -#if ANDROID_MAJOR < 8 +# if ANDROID_MAJOR < 8 FakeCameraServiceProxy::instantiate(); -#endif +# endif // Camera service needs to be told which users may use the camera sp binder; do { @@ -109,16 +110,17 @@ main(int, char**) usleep(BINDER_SERVICE_CHECK_INTERVAL); } while (true); ALOGD("Allowing use of the camera for users root and bin"); -#if ANDROID_MAJOR >= 7 +# if ANDROID_MAJOR >= 7 sp gCameraService = interface_cast(binder); - std::vector users = {0, 1}; + std::vector users = { 0, 1 }; gCameraService->notifySystemEvent(1, users); -#else +# else sp gCameraService = interface_cast(binder); int32_t users[2]; - users[0] = 0; users[1] = 1; + users[0] = 0; + users[1] = 1; gCameraService->notifySystemEvent(1, users, 2); -#endif +# endif #endif ProcessState::self()->startThreadPool(); diff --git a/minisf.cpp b/minisf.cpp index 233bc52..94f9128 100644 --- a/minisf.cpp +++ b/minisf.cpp @@ -22,29 +22,28 @@ #include #include #if ANDROID_MAJOR < 8 -#include "allocator.h" +# include "allocator.h" #endif #include "services/services.h" using namespace android; -int -main(int, char**) +int main(int, char **) { sp proc(ProcessState::self()); sp sm = defaultServiceManager(); MiniSurfaceFlinger::instantiate(); -// Android 4 will not allow system services to be run from minimediaservice. So keep them here instead. + // Android 4 will not allow system services to be run from minimediaservice. + // So keep them here instead. #if (ANDROID_MAJOR == 4) FakePermissionController::instantiate(); -#if (ANDROID_MINOR == 4) +# if (ANDROID_MINOR == 4) FakeAppOps::instantiate(); +# endif #endif -#endif - ProcessState::self()->startThreadPool(); IPCThreadState::self()->joinThreadPool(); diff --git a/private.cpp b/private.cpp index 4a6af00..6165a61 100644 --- a/private.cpp +++ b/private.cpp @@ -20,105 +20,111 @@ #include "private.h" #include "droidmediabuffer.h" #if (ANDROID_MAJOR == 4 && ANDROID_MINOR < 4) -#include +# include #else -#include +# include #endif #undef LOG_TAG #define LOG_TAG "DroidMediaBufferQueue" #if ANDROID_MAJOR >= 6 -static int slotIndex(const android::BufferItem &item) { return item.mSlot; } +static int slotIndex(const android::BufferItem &item) +{ + return item.mSlot; +} #else -static int slotIndex(const android::BufferQueue::BufferItem &item) { return item.mBuf; } +static int slotIndex(const android::BufferQueue::BufferItem &item) +{ + return item.mBuf; +} #endif -DroidMediaBufferQueueListener::DroidMediaBufferQueueListener(_DroidMediaBufferQueue *queue) : +DroidMediaBufferQueueListener::DroidMediaBufferQueueListener(_DroidMediaBufferQueue *queue) + : #if (ANDROID_MAJOR == 4 && ANDROID_MINOR == 4) || ANDROID_MAJOR >= 5 - ProxyConsumerListener(NULL), + ProxyConsumerListener(NULL), #endif - m_queue(queue) + m_queue(queue) { } -DroidMediaBufferQueueListener::~DroidMediaBufferQueueListener() -{ -} +DroidMediaBufferQueueListener::~DroidMediaBufferQueueListener() { } void DroidMediaBufferQueueListener::onFrameAvailable() { - android::sp<_DroidMediaBufferQueue> queue(m_queue.promote()); - if (queue.get()) { - queue->frameAvailable(); - } + android::sp<_DroidMediaBufferQueue> queue(m_queue.promote()); + if (queue.get()) { + queue->frameAvailable(); + } } void DroidMediaBufferQueueListener::onBuffersReleased() { - android::sp<_DroidMediaBufferQueue> queue(m_queue.promote()); - if (queue.get()) { - queue->buffersReleased(); - } + android::sp<_DroidMediaBufferQueue> queue(m_queue.promote()); + if (queue.get()) { + queue->buffersReleased(); + } } -_DroidMediaBufferQueue::_DroidMediaBufferQueue(const char *name) : - m_listener(new DroidMediaBufferQueueListener(this)), - m_data(0) { +_DroidMediaBufferQueue::_DroidMediaBufferQueue(const char *name) + : m_listener(new DroidMediaBufferQueueListener(this)), m_data(0) +{ - memset(&m_cb, 0x0, sizeof(m_cb)); + memset(&m_cb, 0x0, sizeof(m_cb)); #if (ANDROID_MAJOR == 4 && ANDROID_MINOR < 2) - m_queue = new android::BufferQueue(true, android::BufferQueue::MIN_UNDEQUEUED_BUFFERS); + m_queue = new android::BufferQueue(true, android::BufferQueue::MIN_UNDEQUEUED_BUFFERS); #elif ANDROID_MAJOR < 5 - m_queue = new android::BufferQueue(); + m_queue = new android::BufferQueue(); #else - android::BufferQueue::createBufferQueue(&m_producer, &m_queue); + android::BufferQueue::createBufferQueue(&m_producer, &m_queue); #endif #if (ANDROID_MAJOR == 4 && ANDROID_MINOR < 4) - m_queue->setSynchronousMode(false); + m_queue->setSynchronousMode(false); #else - // We need to acquire up to 2 buffers - // One is being rendered and the other one is waiting to be rendered. - m_queue->setMaxAcquiredBufferCount(2); + // We need to acquire up to 2 buffers + // One is being rendered and the other one is waiting to be rendered. + m_queue->setMaxAcquiredBufferCount(2); #endif - m_queue->setConsumerName(android::String8(name)); - m_queue->setConsumerUsageBits(android::GraphicBuffer::USAGE_HW_TEXTURE); + m_queue->setConsumerName(android::String8(name)); + m_queue->setConsumerUsageBits(android::GraphicBuffer::USAGE_HW_TEXTURE); #if (ANDROID_MAJOR < 8) - m_queue->setDefaultBufferFormat(HAL_PIXEL_FORMAT_YCbCr_420_888); + m_queue->setDefaultBufferFormat(HAL_PIXEL_FORMAT_YCbCr_420_888); #else - m_queue->setDefaultBufferFormat(HAL_PIXEL_FORMAT_YCBCR_420_888); + m_queue->setDefaultBufferFormat(HAL_PIXEL_FORMAT_YCBCR_420_888); #endif } _DroidMediaBufferQueue::~_DroidMediaBufferQueue() { - disconnectListener(); - m_listener.clear(); + disconnectListener(); + m_listener.clear(); } bool _DroidMediaBufferQueue::connectListener() { #if (ANDROID_MAJOR == 4 && ANDROID_MINOR < 4) - if (m_queue->consumerConnect(m_listener) != android::NO_ERROR) { + if (m_queue->consumerConnect(m_listener) != android::NO_ERROR) { #else - if (m_queue->consumerConnect(m_listener, false) != android::NO_ERROR) { + if (m_queue->consumerConnect(m_listener, false) != android::NO_ERROR) { #endif - ALOGE("Failed to set buffer consumer"); + ALOGE("Failed to set buffer consumer"); - return false; - } + return false; + } - return true; + return true; } void _DroidMediaBufferQueue::disconnectListener() { - m_queue->consumerDisconnect(); + m_queue->consumerDisconnect(); } -void _DroidMediaBufferQueue::attachToCameraPreview(android::sp& camera) { +void _DroidMediaBufferQueue::attachToCameraPreview(android::sp &camera) +{ #if ANDROID_MAJOR == 4 && ANDROID_MINOR < 4 camera->setPreviewTexture(m_queue); #elif ANDROID_MAJOR < 5 @@ -128,128 +134,136 @@ void _DroidMediaBufferQueue::attachToCameraPreview(android::sp& #endif } -void _DroidMediaBufferQueue::attachToCameraVideo(android::sp& camera) { +void _DroidMediaBufferQueue::attachToCameraVideo(android::sp &camera) +{ #if ANDROID_MAJOR >= 9 camera->setVideoTarget(m_producer); #endif } -ANativeWindow *_DroidMediaBufferQueue::window() { +ANativeWindow *_DroidMediaBufferQueue::window() +{ #if ANDROID_MAJOR == 4 && ANDROID_MINOR < 4 - android::sp texture = m_queue; - return new android::SurfaceTextureClient(texture); + android::sp texture = m_queue; + return new android::SurfaceTextureClient(texture); #elif ANDROID_MAJOR < 5 - android::sp texture = m_queue; - return new android::Surface(texture, true); + android::sp texture = m_queue; + return new android::Surface(texture, true); #else - android::sp texture = m_producer; - return new android::Surface(texture, true); + android::sp texture = m_producer; + return new android::Surface(texture, true); #endif } -void _DroidMediaBufferQueue::frameAvailable() { - DroidMediaBufferItem item; +void _DroidMediaBufferQueue::frameAvailable() +{ + DroidMediaBufferItem item; #if (ANDROID_MAJOR == 4 && ANDROID_MINOR < 4) - int err = m_queue->acquireBuffer(&item); + int err = m_queue->acquireBuffer(&item); #else - int err = m_queue->acquireBuffer(&item, 0); + int err = m_queue->acquireBuffer(&item, 0); #endif - if (err != android::OK) { - // Invalid operation means we've tried to acquire too many concurrent buffers. That's expected, - // we'll attempt to over acquire a few times at the start and then an equilibrium will be - // reached. - if (err != android::INVALID_OPERATION) { - ALOGE("Failed to acquire item from the queue. Error 0x%x", -err); + if (err != android::OK) { + // Invalid operation means we've tried to acquire too many concurrent buffers. That's + // expected, we'll attempt to over acquire a few times at the start and then an equilibrium + // will be reached. + if (err != android::INVALID_OPERATION) { + ALOGE("Failed to acquire item from the queue. Error 0x%x", -err); + } + return; } - return; - } - m_lock.lock(); + m_lock.lock(); - DroidMediaBufferSlot &slot = m_slots[slotIndex(item)]; + DroidMediaBufferSlot &slot = m_slots[slotIndex(item)]; - if (item.mGraphicBuffer != NULL) { - static_cast(slot) = item; + if (item.mGraphicBuffer != NULL) { + static_cast(slot) = item; - slot.droidBuffer = new DroidMediaBuffer(slot, this); + slot.droidBuffer = new DroidMediaBuffer(slot, this); - // Keep the original reference count for ourselves and give one to the buffer_created - // callback to release with droid_media_buffer_destroy. If there is no buffer_created - // callback or it returns false we dereference both. - slot.droidBuffer->incStrong(0); - - if (!m_data || !m_cb.buffer_created(m_data, slot.droidBuffer.get())) { - slot.droidBuffer->decStrong(0); - slot.droidBuffer.clear(); - } - } else { - slot.mTransform = item.mTransform; - slot.mScalingMode = item.mScalingMode; - slot.mTimestamp = item.mTimestamp; - slot.mFrameNumber = item.mFrameNumber; - slot.mCrop = item.mCrop; - - if (slot.droidBuffer.get()) { - slot.droidBuffer->update(slot); - - // Recreate the user data if it was cleared for some reason like the buffer pool resetting - // itself without the queue being recreated. In reality buffer pools may always outlive - // queue so may never trigger. - if (!slot.droidBuffer->m_userData && m_data) { + // Keep the original reference count for ourselves and give one to the buffer_created + // callback to release with droid_media_buffer_destroy. If there is no buffer_created + // callback or it returns false we dereference both. slot.droidBuffer->incStrong(0); - if (!m_cb.buffer_created(m_data, slot.droidBuffer.get())) { + + if (!m_data || !m_cb.buffer_created(m_data, slot.droidBuffer.get())) { slot.droidBuffer->decStrong(0); slot.droidBuffer.clear(); } - } + } else { + slot.mTransform = item.mTransform; + slot.mScalingMode = item.mScalingMode; + slot.mTimestamp = item.mTimestamp; + slot.mFrameNumber = item.mFrameNumber; + slot.mCrop = item.mCrop; + + if (slot.droidBuffer.get()) { + slot.droidBuffer->update(slot); + + // Recreate the user data if it was cleared for some reason like the + // buffer pool resetting itself without the queue being recreated. + // In reality buffer pools may always outlive queue so may never + // trigger. + if (!slot.droidBuffer->m_userData && m_data) { + slot.droidBuffer->incStrong(0); + if (!m_cb.buffer_created(m_data, slot.droidBuffer.get())) { + slot.droidBuffer->decStrong(0); + slot.droidBuffer.clear(); + } + } + } } - } - if (slot.droidBuffer.get() && m_data && m_cb.frame_available(m_data, slot.droidBuffer.get())) { - m_lock.unlock(); - } else { - m_lock.unlock(); + if (slot.droidBuffer.get() && m_data && m_cb.frame_available(m_data, slot.droidBuffer.get())) { + m_lock.unlock(); + } else { + m_lock.unlock(); - ALOGE("Client wasn't able to handle a received frame."); + ALOGE("Client wasn't able to handle a received frame."); - releaseMediaBuffer(slotIndex(slot), 0, 0); - } + releaseMediaBuffer(slotIndex(slot), 0, 0); + } } -void _DroidMediaBufferQueue::buffersReleased() { - for (int i = 0; i < android::BufferQueue::NUM_BUFFER_SLOTS; ++i) { - DroidMediaBufferSlot &slot = m_slots[i]; - slot.droidBuffer.clear(); - slot.mGraphicBuffer = 0; - } +void _DroidMediaBufferQueue::buffersReleased() +{ + for (int i = 0; i < android::BufferQueue::NUM_BUFFER_SLOTS; ++i) { + DroidMediaBufferSlot &slot = m_slots[i]; + slot.droidBuffer.clear(); + slot.mGraphicBuffer = 0; + } - android::AutoMutex locker(&m_lock); + android::AutoMutex locker(&m_lock); - if (m_data) { - m_cb.buffers_released(m_data); - } + if (m_data) { + m_cb.buffers_released(m_data); + } } -int _DroidMediaBufferQueue::releaseMediaBuffer(int index, EGLDisplay dpy, EGLSyncKHR fence) { +int _DroidMediaBufferQueue::releaseMediaBuffer(int index, EGLDisplay dpy, EGLSyncKHR fence) +{ int err = m_queue->releaseBuffer(index, #if (ANDROID_MAJOR == 4 && ANDROID_MINOR == 4) || ANDROID_MAJOR >= 5 - // TODO: fix this when we do video rendering - m_slots[index].mFrameNumber, + // TODO: fix this when we do video rendering + m_slots[index].mFrameNumber, #endif - dpy, fence + dpy, + fence #if (ANDROID_MAJOR == 4 && (ANDROID_MINOR >= 2)) || ANDROID_MAJOR >= 5 - // TODO: fix this when we do video rendering - , android::Fence::NO_FENCE + // TODO: fix this when we do video rendering + , + android::Fence::NO_FENCE #endif - ); - if (err != android::NO_ERROR) { - ALOGE("error releasing item. Error 0x%x", -err); - } + ); + if (err != android::NO_ERROR) { + ALOGE("error releasing item. Error 0x%x", -err); + } - return err; + return err; } #if ANDROID_MAJOR < 5 @@ -258,50 +272,52 @@ static const int staleBuffer = android::BufferQueue::STALE_BUFFER_SLOT; static const int staleBuffer = android::IGraphicBufferConsumer::STALE_BUFFER_SLOT; #endif -void _DroidMediaBufferQueue::releaseMediaBuffer(DroidMediaBuffer *buffer, - EGLDisplay dpy, EGLSyncKHR fence) { +void _DroidMediaBufferQueue::releaseMediaBuffer(DroidMediaBuffer *buffer, EGLDisplay dpy, + EGLSyncKHR fence) +{ - int err = releaseMediaBuffer(buffer->m_slot, dpy, fence); + int err = releaseMediaBuffer(buffer->m_slot, dpy, fence); - switch (err) { - case android::NO_ERROR: - break; + switch (err) { + case android::NO_ERROR: + break; - case staleBuffer: - ALOGW("Released stale buffer %d", buffer->m_slot); - break; + case staleBuffer: + ALOGW("Released stale buffer %d", buffer->m_slot); + break; - default: - ALOGE("Error 0x%x releasing buffer %d", -err, buffer->m_slot); - break; - } + default: + ALOGE("Error 0x%x releasing buffer %d", -err, buffer->m_slot); + break; + } } -void _DroidMediaBufferQueue::setCallbacks(DroidMediaBufferQueueCallbacks *cb, void *data) { - android::AutoMutex locker(&m_lock); +void _DroidMediaBufferQueue::setCallbacks(DroidMediaBufferQueueCallbacks *cb, void *data) +{ + android::AutoMutex locker(&m_lock); - if (!cb) { - memset(&m_cb, 0x0, sizeof(m_cb)); - } else { - memcpy(&m_cb, cb, sizeof(m_cb)); - } + if (!cb) { + memset(&m_cb, 0x0, sizeof(m_cb)); + } else { + memcpy(&m_cb, cb, sizeof(m_cb)); + } - m_data = data; + m_data = data; } - extern "C" { void droid_media_buffer_queue_set_callbacks(DroidMediaBufferQueue *queue, - DroidMediaBufferQueueCallbacks *cb, void *data) { + DroidMediaBufferQueueCallbacks *cb, void *data) +{ - if (queue) { - queue->setCallbacks(cb, data); - } + if (queue) { + queue->setCallbacks(cb, data); + } } -int droid_media_buffer_queue_length() { - return android::BufferQueue::NUM_BUFFER_SLOTS; +int droid_media_buffer_queue_length() +{ + return android::BufferQueue::NUM_BUFFER_SLOTS; } - }; diff --git a/private.h b/private.h index 6cd4881..13e2f16 100644 --- a/private.h +++ b/private.h @@ -23,93 +23,97 @@ #include #include #if ANDROID_MAJOR >= 9 && ANDROID_MAJOR <= 10 -#include +# include #else -#include +# include #endif #include "droidmediabuffer.h" #include "droidmediacamera.h" #include "droidmediacodec.h" -#if ANDROID_MAJOR >=5 -#include +#if ANDROID_MAJOR >= 5 +# include #endif struct _DroidMediaBufferQueue; class DroidMediaBufferQueueListener : #if (ANDROID_MAJOR == 4 && ANDROID_MINOR < 4) -public android::BufferQueue::ConsumerListener { + public android::BufferQueue::ConsumerListener +{ #else - public android::BufferQueue::ProxyConsumerListener { + public android::BufferQueue::ProxyConsumerListener +{ #endif public: - DroidMediaBufferQueueListener(_DroidMediaBufferQueue *queue); - ~DroidMediaBufferQueueListener(); + DroidMediaBufferQueueListener(_DroidMediaBufferQueue *queue); + ~DroidMediaBufferQueueListener(); - void onFrameAvailable(); - void onBuffersReleased(); + void onFrameAvailable(); + void onBuffersReleased(); #if ANDROID_MAJOR >= 5 - void onFrameAvailable(const android::BufferItem&) { onFrameAvailable(); } - void onSidebandStreamChanged() {} + void onFrameAvailable(const android::BufferItem &) { onFrameAvailable(); } + void onSidebandStreamChanged() { } #endif private: - android::wp<_DroidMediaBufferQueue> m_queue; + android::wp<_DroidMediaBufferQueue> m_queue; }; -class DroidMediaBufferSlot : public DroidMediaBufferItem { +class DroidMediaBufferSlot : public DroidMediaBufferItem +{ public: - android::sp droidBuffer; + android::sp droidBuffer; }; -struct _DroidMediaBufferQueue : public android::RefBase { +struct _DroidMediaBufferQueue : public android::RefBase +{ public: - _DroidMediaBufferQueue(const char *name); - ~_DroidMediaBufferQueue(); + _DroidMediaBufferQueue(const char *name); + ~_DroidMediaBufferQueue(); - bool connectListener(); - void disconnectListener(); + bool connectListener(); + void disconnectListener(); - void attachToCameraPreview(android::sp& camera); - void attachToCameraVideo(android::sp& camera); - ANativeWindow *window(); + void attachToCameraPreview(android::sp &camera); + void attachToCameraVideo(android::sp &camera); + ANativeWindow *window(); - void releaseMediaBuffer(DroidMediaBuffer *buffer, EGLDisplay dpy, EGLSyncKHR fence); + void releaseMediaBuffer(DroidMediaBuffer *buffer, EGLDisplay dpy, EGLSyncKHR fence); - void setCallbacks(DroidMediaBufferQueueCallbacks *cb, void *data); + void setCallbacks(DroidMediaBufferQueueCallbacks *cb, void *data); - void buffersReleased(); + void buffersReleased(); private: - friend class DroidMediaBufferQueueListener; + friend class DroidMediaBufferQueueListener; - void frameAvailable(); + void frameAvailable(); - int releaseMediaBuffer(int index, EGLDisplay dpy, EGLSyncKHR fence); + int releaseMediaBuffer(int index, EGLDisplay dpy, EGLSyncKHR fence); #if ANDROID_MAJOR >= 5 - android::sp m_producer; - android::sp m_queue; + android::sp m_producer; + android::sp m_queue; #else - android::sp m_queue; + android::sp m_queue; #endif - DroidMediaBufferSlot m_slots[android::BufferQueue::NUM_BUFFER_SLOTS]; - - android::sp m_listener; - android::Mutex m_lock; + DroidMediaBufferSlot m_slots[android::BufferQueue::NUM_BUFFER_SLOTS]; - DroidMediaBufferQueueCallbacks m_cb; - void *m_data; + android::sp m_listener; + android::Mutex m_lock; + DroidMediaBufferQueueCallbacks m_cb; + void *m_data; }; android::sp droid_media_camera_get_camera(DroidMediaCamera *camera); -android::sp droid_media_codec_create_encoder_raw(DroidMediaCodecEncoderMetaData *meta, -#if ANDROID_MAJOR >=5 - android::sp looper, +android::sp +droid_media_codec_create_encoder_raw(DroidMediaCodecEncoderMetaData *meta, +#if ANDROID_MAJOR >= 5 + android::sp looper, #endif - android::sp src); - + android::sp src); + #endif /* DROID_MEDIA_PRIVATE_H */ diff --git a/services/audiopolicy/audiopolicy.h b/services/audiopolicy/audiopolicy.h index acf6fdf..bcb72e0 100644 --- a/services/audiopolicy/audiopolicy.h +++ b/services/audiopolicy/audiopolicy.h @@ -16,33 +16,33 @@ */ #if ANDROID_MAJOR == 5 && ANDROID_MINOR == 1 -#include "audiopolicy_5_1_0.h" +# include "audiopolicy_5_1_0.h" #endif #if ANDROID_MAJOR == 6 && ANDROID_MINOR == 0 -#include "audiopolicy_6_0_0.h" +# include "audiopolicy_6_0_0.h" #endif #if ANDROID_MAJOR == 7 -#include "audiopolicy_7_x_x.h" +# include "audiopolicy_7_x_x.h" #endif #if ANDROID_MAJOR == 8 && ANDROID_MINOR == 1 -#include "audiopolicy_8_1_0.h" +# include "audiopolicy_8_1_0.h" #endif #if ANDROID_MAJOR == 9 -#include "audiopolicy_9_0_0.h" +# include "audiopolicy_9_0_0.h" #endif #if ANDROID_MAJOR == 10 -#include "audiopolicy_10_0_0.h" +# include "audiopolicy_10_0_0.h" #endif #if ANDROID_MAJOR == 11 -#include "audiopolicy_11_0_0.h" +# include "audiopolicy_11_0_0.h" #endif #if ANDROID_MAJOR == 13 -#include "audiopolicy_13_0_0.h" +# include "audiopolicy_13_0_0.h" #endif diff --git a/services/audiopolicy/audiopolicy_10_0_0.h b/services/audiopolicy/audiopolicy_10_0_0.h index 91ec5f7..bb65dad 100644 --- a/services/audiopolicy/audiopolicy_10_0_0.h +++ b/services/audiopolicy/audiopolicy_10_0_0.h @@ -33,15 +33,13 @@ #include - namespace android { // ---------------------------------------------------------------------------- -class FakeAudioPolicyService : - public BinderService, - public BnAudioPolicyService, - public IBinder::DeathRecipient +class FakeAudioPolicyService : public BinderService, + public BnAudioPolicyService, + public IBinder::DeathRecipient { friend class BinderService; @@ -49,7 +47,7 @@ class FakeAudioPolicyService : // for BinderService static const char *getServiceName() ANDROID_API { return "media.audio_policy"; } - virtual status_t dump(int fd, const Vector& args) { return NO_ERROR; } + virtual status_t dump(int fd, const Vector &args) { return NO_ERROR; } // // BnAudioPolicyService (see AudioPolicyInterface for method descriptions) @@ -57,368 +55,295 @@ class FakeAudioPolicyService : virtual status_t setDeviceConnectionState(audio_devices_t device, audio_policy_dev_state_t state, - const char *device_address, - const char *device_name, - audio_format_t encodedFormat) { + const char *device_address, const char *device_name, + audio_format_t encodedFormat) + { return NO_ERROR; - } virtual audio_policy_dev_state_t getDeviceConnectionState(audio_devices_t device, - const char *device_address) { + const char *device_address) + { return AUDIO_POLICY_DEVICE_STATE_UNAVAILABLE; } - virtual status_t handleDeviceConfigChange(audio_devices_t device, - const char *device_address, - const char *device_name, - audio_format_t encodedFormat) { + virtual status_t handleDeviceConfigChange(audio_devices_t device, const char *device_address, + const char *device_name, audio_format_t encodedFormat) + { return NO_ERROR; } - virtual status_t setPhoneState(audio_mode_t state) { + virtual status_t setPhoneState(audio_mode_t state) { return NO_ERROR; } + virtual status_t setForceUse(audio_policy_force_use_t usage, audio_policy_forced_cfg_t config) + { return NO_ERROR; } - virtual status_t setForceUse(audio_policy_force_use_t usage, - audio_policy_forced_cfg_t config) { - return NO_ERROR; - } - virtual audio_policy_forced_cfg_t getForceUse(audio_policy_force_use_t usage) { + virtual audio_policy_forced_cfg_t getForceUse(audio_policy_force_use_t usage) + { return AUDIO_POLICY_FORCE_NONE; } - virtual audio_io_handle_t getOutput(audio_stream_type_t stream) { - return AUDIO_IO_HANDLE_NONE; - } - status_t getOutputForAttr(audio_attributes_t *attr, - audio_io_handle_t *output, - audio_session_t session, - audio_stream_type_t *stream, - pid_t pid, - uid_t uid, - const audio_config_t *config, - audio_output_flags_t flags, - audio_port_handle_t *selectedDeviceId, - audio_port_handle_t *portId, - std::vector *secondaryOutputs) override { - return NO_ERROR; - } - virtual status_t startOutput(audio_port_handle_t portId) { - return NO_ERROR; - } - virtual status_t stopOutput(audio_port_handle_t portId) { - return NO_ERROR; - } - virtual void releaseOutput(audio_port_handle_t portId) { - return; - } - virtual status_t getInputForAttr(const audio_attributes_t *attr, - audio_io_handle_t *input, - audio_unique_id_t riid, - audio_session_t session, - pid_t pid, - uid_t uid, - const String16& opPackageName, - const audio_config_base_t *config, - audio_input_flags_t flags, + virtual audio_io_handle_t getOutput(audio_stream_type_t stream) { return AUDIO_IO_HANDLE_NONE; } + status_t getOutputForAttr(audio_attributes_t *attr, audio_io_handle_t *output, + audio_session_t session, audio_stream_type_t *stream, pid_t pid, + uid_t uid, const audio_config_t *config, audio_output_flags_t flags, + audio_port_handle_t *selectedDeviceId, audio_port_handle_t *portId, + std::vector *secondaryOutputs) override + { + return NO_ERROR; + } + virtual status_t startOutput(audio_port_handle_t portId) { return NO_ERROR; } + virtual status_t stopOutput(audio_port_handle_t portId) { return NO_ERROR; } + virtual void releaseOutput(audio_port_handle_t portId) { return; } + virtual status_t getInputForAttr(const audio_attributes_t *attr, audio_io_handle_t *input, + audio_unique_id_t riid, audio_session_t session, pid_t pid, + uid_t uid, const String16 &opPackageName, + const audio_config_base_t *config, audio_input_flags_t flags, audio_port_handle_t *selectedDeviceId = NULL, - audio_port_handle_t *portId = NULL) { - return NO_ERROR; - } - virtual status_t startInput(audio_port_handle_t portId) { + audio_port_handle_t *portId = NULL) + { return NO_ERROR; } - virtual status_t stopInput(audio_port_handle_t portId) { - return NO_ERROR; - } - virtual void releaseInput(audio_port_handle_t portId) { - return; - } - virtual status_t initStreamVolume(audio_stream_type_t stream, - int indexMin, - int indexMax) { + virtual status_t startInput(audio_port_handle_t portId) { return NO_ERROR; } + virtual status_t stopInput(audio_port_handle_t portId) { return NO_ERROR; } + virtual void releaseInput(audio_port_handle_t portId) { return; } + virtual status_t initStreamVolume(audio_stream_type_t stream, int indexMin, int indexMax) + { return NO_ERROR; } - virtual status_t setStreamVolumeIndex(audio_stream_type_t stream, - int index, - audio_devices_t device) { + virtual status_t setStreamVolumeIndex(audio_stream_type_t stream, int index, + audio_devices_t device) + { return NO_ERROR; } - virtual status_t getStreamVolumeIndex(audio_stream_type_t stream, - int *index, - audio_devices_t device) { + virtual status_t getStreamVolumeIndex(audio_stream_type_t stream, int *index, + audio_devices_t device) + { return NO_ERROR; } - virtual status_t setVolumeIndexForAttributes(const audio_attributes_t &attr, - int index, - audio_devices_t device) { + virtual status_t setVolumeIndexForAttributes(const audio_attributes_t &attr, int index, + audio_devices_t device) + { return NO_ERROR; } - virtual status_t getVolumeIndexForAttributes(const audio_attributes_t &attr, - int &index, - audio_devices_t device) { + virtual status_t getVolumeIndexForAttributes(const audio_attributes_t &attr, int &index, + audio_devices_t device) + { return NO_ERROR; } - virtual status_t getMinVolumeIndexForAttributes(const audio_attributes_t &attr, - int &index) { + virtual status_t getMinVolumeIndexForAttributes(const audio_attributes_t &attr, int &index) + { return NO_ERROR; } - virtual status_t getMaxVolumeIndexForAttributes(const audio_attributes_t &attr, - int &index) { + virtual status_t getMaxVolumeIndexForAttributes(const audio_attributes_t &attr, int &index) + { return NO_ERROR; } - virtual uint32_t getStrategyForStream(audio_stream_type_t stream) { + virtual uint32_t getStrategyForStream(audio_stream_type_t stream) + { return PRODUCT_STRATEGY_NONE; } - virtual audio_devices_t getDevicesForStream(audio_stream_type_t stream) { + virtual audio_devices_t getDevicesForStream(audio_stream_type_t stream) + { return AUDIO_DEVICE_NONE; } - virtual audio_io_handle_t getOutputForEffect(const effect_descriptor_t *desc) { - return 0; - } - virtual status_t registerEffect(const effect_descriptor_t *desc, - audio_io_handle_t io, - uint32_t strategy, - audio_session_t session, - int id) { + virtual audio_io_handle_t getOutputForEffect(const effect_descriptor_t *desc) { return 0; } + virtual status_t registerEffect(const effect_descriptor_t *desc, audio_io_handle_t io, + uint32_t strategy, audio_session_t session, int id) + { return NO_ERROR; } virtual status_t unregisterEffect(int id) { return NO_ERROR; } virtual status_t setEffectEnabled(int id, bool enabled) { return NO_ERROR; } - status_t moveEffectsToIo(const std::vector& ids, audio_io_handle_t io) override { + status_t moveEffectsToIo(const std::vector &ids, audio_io_handle_t io) override + { return NO_ERROR; } - virtual bool isStreamActive(audio_stream_type_t stream, uint32_t inPastMs = 0) const { + virtual bool isStreamActive(audio_stream_type_t stream, uint32_t inPastMs = 0) const + { return false; } - virtual bool isStreamActiveRemotely(audio_stream_type_t stream, - uint32_t inPastMs = 0) const { + virtual bool isStreamActiveRemotely(audio_stream_type_t stream, uint32_t inPastMs = 0) const + { return false; } virtual bool isSourceActive(audio_source_t source) const { return false; } virtual status_t queryDefaultPreProcessing(audio_session_t audioSession, - effect_descriptor_t *descriptors, - uint32_t *count) { + effect_descriptor_t *descriptors, uint32_t *count) + { return NO_ERROR; } virtual status_t addSourceDefaultEffect(const effect_uuid_t *type, - const String16& opPackageName, - const effect_uuid_t *uuid, - int32_t priority, - audio_source_t source, - audio_unique_id_t* id) { + const String16 &opPackageName, + const effect_uuid_t *uuid, int32_t priority, + audio_source_t source, audio_unique_id_t *id) + { return NO_ERROR; } virtual status_t addStreamDefaultEffect(const effect_uuid_t *type, - const String16& opPackageName, - const effect_uuid_t *uuid, - int32_t priority, - audio_usage_t usage, - audio_unique_id_t* id) { - return NO_ERROR; - } - virtual status_t removeSourceDefaultEffect(audio_unique_id_t id) { - return NO_ERROR; - } - virtual status_t removeStreamDefaultEffect(audio_unique_id_t id) { + const String16 &opPackageName, + const effect_uuid_t *uuid, int32_t priority, + audio_usage_t usage, audio_unique_id_t *id) + { return NO_ERROR; } + virtual status_t removeSourceDefaultEffect(audio_unique_id_t id) { return NO_ERROR; } + virtual status_t removeStreamDefaultEffect(audio_unique_id_t id) { return NO_ERROR; } - virtual status_t onTransact(uint32_t code, - const Parcel& data, - Parcel* reply, - uint32_t flags) { + virtual status_t onTransact(uint32_t code, const Parcel &data, Parcel *reply, uint32_t flags) + { return NO_ERROR; } // IBinder::DeathRecipient - virtual void binderDied(const wp& who) { - return; - } + virtual void binderDied(const wp &who) { return; } // RefBase - virtual void onFirstRef() { - return; - } + virtual void onFirstRef() { return; } // // Helpers for the struct audio_policy_service_ops implementation. // This is used by the audio policy manager for certain operations that // are implemented by the policy service. // - virtual void setParameters(audio_io_handle_t ioHandle, - const char *keyValuePairs, - int delayMs) { + virtual void setParameters(audio_io_handle_t ioHandle, const char *keyValuePairs, int delayMs) + { return; } - virtual status_t setStreamVolume(audio_stream_type_t stream, - float volume, - audio_io_handle_t output, - int delayMs = 0) { + virtual status_t setStreamVolume(audio_stream_type_t stream, float volume, + audio_io_handle_t output, int delayMs = 0) + { return NO_ERROR; } - virtual status_t setVoiceVolume(float volume, int delayMs = 0) { + virtual status_t setVoiceVolume(float volume, int delayMs = 0) { return NO_ERROR; } + status_t setAllowedCapturePolicy(uint_t uid, audio_flags_mask_t capturePolicy) override + { return NO_ERROR; } - status_t setAllowedCapturePolicy(uint_t uid, - audio_flags_mask_t capturePolicy) override { - return NO_ERROR; - } - virtual bool isOffloadSupported(const audio_offload_info_t &config) { - return false; - } - virtual bool isDirectOutputSupported(const audio_config_base_t& config, - const audio_attributes_t& attributes) { + virtual bool isOffloadSupported(const audio_offload_info_t &config) { return false; } + virtual bool isDirectOutputSupported(const audio_config_base_t &config, + const audio_attributes_t &attributes) + { return false; } - virtual status_t listAudioPorts(audio_port_role_t role, - audio_port_type_t type, - unsigned int *num_ports, - struct audio_port *ports, - unsigned int *generation) { + virtual status_t listAudioPorts(audio_port_role_t role, audio_port_type_t type, + unsigned int *num_ports, struct audio_port *ports, + unsigned int *generation) + { return NO_ERROR; } - virtual status_t getAudioPort(struct audio_port *port) { + virtual status_t getAudioPort(struct audio_port *port) { return NO_ERROR; } + virtual status_t createAudioPatch(const struct audio_patch *patch, audio_patch_handle_t *handle) + { return NO_ERROR; } - virtual status_t createAudioPatch(const struct audio_patch *patch, - audio_patch_handle_t *handle) { - return NO_ERROR; - } - virtual status_t releaseAudioPatch(audio_patch_handle_t handle) { - return NO_ERROR; - } - virtual status_t listAudioPatches(unsigned int *num_patches, - struct audio_patch *patches, - unsigned int *generation) { - return NO_ERROR; - } - virtual status_t setAudioPortConfig(const struct audio_port_config *config) { + virtual status_t releaseAudioPatch(audio_patch_handle_t handle) { return NO_ERROR; } + virtual status_t listAudioPatches(unsigned int *num_patches, struct audio_patch *patches, + unsigned int *generation) + { return NO_ERROR; } + virtual status_t setAudioPortConfig(const struct audio_port_config *config) { return NO_ERROR; } - virtual void registerClient(const sp& client) { - return; - } + virtual void registerClient(const sp &client) { return; } virtual void setAudioPortCallbacksEnabled(bool enabled) { return; } virtual void setAudioVolumeGroupCallbacksEnabled(bool enabled) { return; } virtual status_t acquireSoundTriggerSession(audio_session_t *session, - audio_io_handle_t *ioHandle, - audio_devices_t *device) { + audio_io_handle_t *ioHandle, + audio_devices_t *device) + { return NO_ERROR; } - virtual status_t releaseSoundTriggerSession(audio_session_t session) { - return NO_ERROR; - } + virtual status_t releaseSoundTriggerSession(audio_session_t session) { return NO_ERROR; } - virtual audio_mode_t getPhoneState() { - return AUDIO_MODE_CURRENT; - } + virtual audio_mode_t getPhoneState() { return AUDIO_MODE_CURRENT; } - virtual status_t registerPolicyMixes(const Vector& mixes, - bool registration) { + virtual status_t registerPolicyMixes(const Vector &mixes, bool registration) + { return NO_ERROR; } - virtual status_t setUidDeviceAffinities(uid_t uid, const - Vector& devices) { + virtual status_t setUidDeviceAffinities(uid_t uid, const Vector &devices) + { return NO_ERROR; } - virtual status_t removeUidDeviceAffinities(uid_t uid) { - return NO_ERROR; - } + virtual status_t removeUidDeviceAffinities(uid_t uid) { return NO_ERROR; } virtual status_t startAudioSource(const struct audio_port_config *source, const audio_attributes_t *attributes, - audio_port_handle_t *portId) { - return NO_ERROR; - } - virtual status_t stopAudioSource(audio_port_handle_t portId) { + audio_port_handle_t *portId) + { return NO_ERROR; } + virtual status_t stopAudioSource(audio_port_handle_t portId) { return NO_ERROR; } virtual status_t setMasterMono(bool mono) { return NO_ERROR; } virtual status_t getMasterMono(bool *mono) { return NO_ERROR; } - virtual float getStreamVolumeDB(audio_stream_type_t stream, - int index, audio_devices_t device) { + virtual float getStreamVolumeDB(audio_stream_type_t stream, int index, audio_devices_t device) + { return 0; } virtual status_t getSurroundFormats(unsigned int *numSurroundFormats, audio_format_t *surroundFormats, - bool *surroundFormatsEnabled, - bool reported) { + bool *surroundFormatsEnabled, bool reported) + { return NO_ERROR; } - virtual status_t getHwOffloadEncodingFormatsSupportedForA2DP( - std::vector *formats) { + virtual status_t + getHwOffloadEncodingFormatsSupportedForA2DP(std::vector *formats) + { return NO_ERROR; } - virtual status_t setSurroundFormatEnabled(audio_format_t audioFormat, - bool enabled) { + virtual status_t setSurroundFormatEnabled(audio_format_t audioFormat, bool enabled) + { return NO_ERROR; } - virtual status_t setAssistantUid(uid_t uid) { - return NO_ERROR; - } - virtual status_t setA11yServicesUids(const std::vector& uids) { - return NO_ERROR; - } + virtual status_t setAssistantUid(uid_t uid) { return NO_ERROR; } + virtual status_t setA11yServicesUids(const std::vector &uids) { return NO_ERROR; } - virtual bool isHapticPlaybackSupported() { - return false; - } + virtual bool isHapticPlaybackSupported() { return false; } - virtual status_t listAudioProductStrategies(AudioProductStrategyVector &strategies) { + virtual status_t listAudioProductStrategies(AudioProductStrategyVector &strategies) + { return NO_ERROR; } - virtual status_t getProductStrategyFromAudioAttributes( - const AudioAttributes &aa, - product_strategy_t &productStrategy) { + virtual status_t getProductStrategyFromAudioAttributes(const AudioAttributes &aa, + product_strategy_t &productStrategy) + { return NO_ERROR; } - - virtual status_t listAudioVolumeGroups(AudioVolumeGroupVector &groups) { - return NO_ERROR; - } + virtual status_t listAudioVolumeGroups(AudioVolumeGroupVector &groups) { return NO_ERROR; } virtual status_t getVolumeGroupFromAudioAttributes(const AudioAttributes &aa, - volume_group_t &volumeGroup) { + volume_group_t &volumeGroup) + { return NO_ERROR; } - virtual status_t setRttEnabled(bool enabled) { - return NO_ERROR; - } + virtual status_t setRttEnabled(bool enabled) { return NO_ERROR; } - status_t doStopOutput(audio_port_handle_t portId) { - return NO_ERROR; - } - void doReleaseOutput(audio_port_handle_t portId) { - return; - } + status_t doStopOutput(audio_port_handle_t portId) { return NO_ERROR; } + void doReleaseOutput(audio_port_handle_t portId) { return; } - status_t clientCreateAudioPatch(const struct audio_patch *patch, - audio_patch_handle_t *handle, - int delayMs) { - return NO_ERROR; - } - status_t clientReleaseAudioPatch(audio_patch_handle_t handle, - int delayMs) { + status_t clientCreateAudioPatch(const struct audio_patch *patch, audio_patch_handle_t *handle, + int delayMs) + { return NO_ERROR; } - virtual status_t clientSetAudioPortConfig(const struct audio_port_config *config, - int delayMs) { + status_t clientReleaseAudioPatch(audio_patch_handle_t handle, int delayMs) { return NO_ERROR; } + virtual status_t clientSetAudioPortConfig(const struct audio_port_config *config, int delayMs) + { return NO_ERROR; } @@ -428,53 +353,39 @@ class FakeAudioPolicyService : void onAudioPatchListUpdate() { return; } void doOnAudioPatchListUpdate() { return; } - void onDynamicPolicyMixStateUpdate(const String8& regId, int32_t state) { - return; - } - void doOnDynamicPolicyMixStateUpdate(const String8& regId, int32_t state) { - return; - } - void onRecordingConfigurationUpdate(int event, - const record_client_info_t *clientInfo, + void onDynamicPolicyMixStateUpdate(const String8 ®Id, int32_t state) { return; } + void doOnDynamicPolicyMixStateUpdate(const String8 ®Id, int32_t state) { return; } + void onRecordingConfigurationUpdate(int event, const record_client_info_t *clientInfo, const audio_config_base_t *clientConfig, std::vector clientEffects, const audio_config_base_t *deviceConfig, std::vector effects, - audio_patch_handle_t patchHandle, - audio_source_t source) { + audio_patch_handle_t patchHandle, audio_source_t source) + { return; } - void doOnRecordingConfigurationUpdate(int event, - const record_client_info_t *clientInfo, + void doOnRecordingConfigurationUpdate(int event, const record_client_info_t *clientInfo, const audio_config_base_t *clientConfig, std::vector clientEffects, const audio_config_base_t *deviceConfig, std::vector effects, - audio_patch_handle_t patchHandle, - audio_source_t source) { + audio_patch_handle_t patchHandle, audio_source_t source) + { return; } - void onAudioVolumeGroupChanged(volume_group_t group, int flags) { - return; - } - void doOnAudioVolumeGroupChanged(volume_group_t group, int flags) { - return; - } - void setEffectSuspended(int effectId, - audio_session_t sessionId, - bool suspended) { - return; - } + void onAudioVolumeGroupChanged(volume_group_t group, int flags) { return; } + void doOnAudioVolumeGroupChanged(volume_group_t group, int flags) { return; } + void setEffectSuspended(int effectId, audio_session_t sessionId, bool suspended) { return; } #ifdef AUDIOPOLICY_LINEAGE_AUDIOSESSIONINFO - status_t listAudioSessions(audio_stream_type_t streams, - Vector< sp> &sessions) { + status_t listAudioSessions(audio_stream_type_t streams, Vector> &sessions) + { return NO_ERROR; } #endif }; -} +} // namespace android #endif // FAKE_ANDROID_AUDIOPOLICYSERVICE_H diff --git a/services/audiopolicy/audiopolicy_11_0_0.h b/services/audiopolicy/audiopolicy_11_0_0.h index 8cbe2f9..a3c0565 100644 --- a/services/audiopolicy/audiopolicy_11_0_0.h +++ b/services/audiopolicy/audiopolicy_11_0_0.h @@ -33,15 +33,13 @@ #include - namespace android { // ---------------------------------------------------------------------------- -class FakeAudioPolicyService : - public BinderService, - public BnAudioPolicyService, - public IBinder::DeathRecipient +class FakeAudioPolicyService : public BinderService, + public BnAudioPolicyService, + public IBinder::DeathRecipient { friend class BinderService; @@ -49,427 +47,350 @@ class FakeAudioPolicyService : // for BinderService static const char *getServiceName() ANDROID_API { return "media.audio_policy"; } - virtual status_t dump(int fd, const Vector& args) { return NO_ERROR; } + virtual status_t dump(int fd, const Vector &args) { return NO_ERROR; } // // BnAudioPolicyService (see AudioPolicyInterface for method descriptions) // - void onNewAudioModulesAvailable() override { - return; - } + void onNewAudioModulesAvailable() override { return; } virtual status_t setDeviceConnectionState(audio_devices_t device, audio_policy_dev_state_t state, - const char *device_address, - const char *device_name, - audio_format_t encodedFormat) { + const char *device_address, const char *device_name, + audio_format_t encodedFormat) + { return NO_ERROR; - } virtual audio_policy_dev_state_t getDeviceConnectionState(audio_devices_t device, - const char *device_address) { + const char *device_address) + { return AUDIO_POLICY_DEVICE_STATE_UNAVAILABLE; } - virtual status_t handleDeviceConfigChange(audio_devices_t device, - const char *device_address, - const char *device_name, - audio_format_t encodedFormat) { - return NO_ERROR; - } - virtual status_t setPhoneState(audio_mode_t state, uid_t uid) { + virtual status_t handleDeviceConfigChange(audio_devices_t device, const char *device_address, + const char *device_name, audio_format_t encodedFormat) + { return NO_ERROR; } - virtual status_t setForceUse(audio_policy_force_use_t usage, - audio_policy_forced_cfg_t config) { + virtual status_t setPhoneState(audio_mode_t state, uid_t uid) { return NO_ERROR; } + virtual status_t setForceUse(audio_policy_force_use_t usage, audio_policy_forced_cfg_t config) + { return NO_ERROR; } - virtual audio_policy_forced_cfg_t getForceUse(audio_policy_force_use_t usage) { + virtual audio_policy_forced_cfg_t getForceUse(audio_policy_force_use_t usage) + { return AUDIO_POLICY_FORCE_NONE; } - virtual audio_io_handle_t getOutput(audio_stream_type_t stream) { - return AUDIO_IO_HANDLE_NONE; - } - status_t getOutputForAttr(audio_attributes_t *attr, - audio_io_handle_t *output, - audio_session_t session, - audio_stream_type_t *stream, - pid_t pid, - uid_t uid, - const audio_config_t *config, - audio_output_flags_t flags, - audio_port_handle_t *selectedDeviceId, - audio_port_handle_t *portId, - std::vector *secondaryOutputs) override { - return NO_ERROR; - } - virtual status_t startOutput(audio_port_handle_t portId) { - return NO_ERROR; - } - virtual status_t stopOutput(audio_port_handle_t portId) { - return NO_ERROR; - } - virtual void releaseOutput(audio_port_handle_t portId) { - return; - } - virtual status_t getInputForAttr(const audio_attributes_t *attr, - audio_io_handle_t *input, - audio_unique_id_t riid, - audio_session_t session, - pid_t pid, - uid_t uid, - const String16& opPackageName, - const audio_config_base_t *config, - audio_input_flags_t flags, + virtual audio_io_handle_t getOutput(audio_stream_type_t stream) { return AUDIO_IO_HANDLE_NONE; } + status_t getOutputForAttr(audio_attributes_t *attr, audio_io_handle_t *output, + audio_session_t session, audio_stream_type_t *stream, pid_t pid, + uid_t uid, const audio_config_t *config, audio_output_flags_t flags, + audio_port_handle_t *selectedDeviceId, audio_port_handle_t *portId, + std::vector *secondaryOutputs) override + { + return NO_ERROR; + } + virtual status_t startOutput(audio_port_handle_t portId) { return NO_ERROR; } + virtual status_t stopOutput(audio_port_handle_t portId) { return NO_ERROR; } + virtual void releaseOutput(audio_port_handle_t portId) { return; } + virtual status_t getInputForAttr(const audio_attributes_t *attr, audio_io_handle_t *input, + audio_unique_id_t riid, audio_session_t session, pid_t pid, + uid_t uid, const String16 &opPackageName, + const audio_config_base_t *config, audio_input_flags_t flags, audio_port_handle_t *selectedDeviceId = NULL, - audio_port_handle_t *portId = NULL) { + audio_port_handle_t *portId = NULL) + { return NO_ERROR; } - virtual status_t startInput(audio_port_handle_t portId) { + virtual status_t startInput(audio_port_handle_t portId) { return NO_ERROR; } + virtual status_t stopInput(audio_port_handle_t portId) { return NO_ERROR; } + virtual void releaseInput(audio_port_handle_t portId) { return; } + virtual status_t initStreamVolume(audio_stream_type_t stream, int indexMin, int indexMax) + { return NO_ERROR; } - virtual status_t stopInput(audio_port_handle_t portId) { + virtual status_t setStreamVolumeIndex(audio_stream_type_t stream, int index, + audio_devices_t device) + { return NO_ERROR; } - virtual void releaseInput(audio_port_handle_t portId) { - return; - } - virtual status_t initStreamVolume(audio_stream_type_t stream, - int indexMin, - int indexMax) { - return NO_ERROR; - } - virtual status_t setStreamVolumeIndex(audio_stream_type_t stream, - int index, - audio_devices_t device) { - return NO_ERROR; - } - virtual status_t getStreamVolumeIndex(audio_stream_type_t stream, - int *index, - audio_devices_t device) { + virtual status_t getStreamVolumeIndex(audio_stream_type_t stream, int *index, + audio_devices_t device) + { return NO_ERROR; } - virtual status_t setVolumeIndexForAttributes(const audio_attributes_t &attr, - int index, - audio_devices_t device) { + virtual status_t setVolumeIndexForAttributes(const audio_attributes_t &attr, int index, + audio_devices_t device) + { return NO_ERROR; } - virtual status_t getVolumeIndexForAttributes(const audio_attributes_t &attr, - int &index, - audio_devices_t device) { + virtual status_t getVolumeIndexForAttributes(const audio_attributes_t &attr, int &index, + audio_devices_t device) + { return NO_ERROR; } - virtual status_t getMinVolumeIndexForAttributes(const audio_attributes_t &attr, - int &index) { + virtual status_t getMinVolumeIndexForAttributes(const audio_attributes_t &attr, int &index) + { return NO_ERROR; } - virtual status_t getMaxVolumeIndexForAttributes(const audio_attributes_t &attr, - int &index) { + virtual status_t getMaxVolumeIndexForAttributes(const audio_attributes_t &attr, int &index) + { return NO_ERROR; } - virtual uint32_t getStrategyForStream(audio_stream_type_t stream) { + virtual uint32_t getStrategyForStream(audio_stream_type_t stream) + { return PRODUCT_STRATEGY_NONE; } - virtual audio_devices_t getDevicesForStream(audio_stream_type_t stream) { + virtual audio_devices_t getDevicesForStream(audio_stream_type_t stream) + { return AUDIO_DEVICE_NONE; } virtual status_t getDevicesForAttributes(const AudioAttributes &aa, - AudioDeviceTypeAddrVector *devices) const { + AudioDeviceTypeAddrVector *devices) const + { return NO_ERROR; } - virtual audio_io_handle_t getOutputForEffect(const effect_descriptor_t *desc) { - return 0; - } - virtual status_t registerEffect(const effect_descriptor_t *desc, - audio_io_handle_t io, - uint32_t strategy, - audio_session_t session, - int id) { + virtual audio_io_handle_t getOutputForEffect(const effect_descriptor_t *desc) { return 0; } + virtual status_t registerEffect(const effect_descriptor_t *desc, audio_io_handle_t io, + uint32_t strategy, audio_session_t session, int id) + { return NO_ERROR; } virtual status_t unregisterEffect(int id) { return NO_ERROR; } virtual status_t setEffectEnabled(int id, bool enabled) { return NO_ERROR; } - status_t moveEffectsToIo(const std::vector& ids, audio_io_handle_t io) override { + status_t moveEffectsToIo(const std::vector &ids, audio_io_handle_t io) override + { return NO_ERROR; } - virtual bool isStreamActive(audio_stream_type_t stream, uint32_t inPastMs = 0) const { + virtual bool isStreamActive(audio_stream_type_t stream, uint32_t inPastMs = 0) const + { return false; } - virtual bool isStreamActiveRemotely(audio_stream_type_t stream, - uint32_t inPastMs = 0) const { + virtual bool isStreamActiveRemotely(audio_stream_type_t stream, uint32_t inPastMs = 0) const + { return false; } virtual bool isSourceActive(audio_source_t source) const { return false; } virtual status_t queryDefaultPreProcessing(audio_session_t audioSession, - effect_descriptor_t *descriptors, - uint32_t *count) { + effect_descriptor_t *descriptors, uint32_t *count) + { return NO_ERROR; } virtual status_t addSourceDefaultEffect(const effect_uuid_t *type, - const String16& opPackageName, - const effect_uuid_t *uuid, - int32_t priority, - audio_source_t source, - audio_unique_id_t* id) { + const String16 &opPackageName, + const effect_uuid_t *uuid, int32_t priority, + audio_source_t source, audio_unique_id_t *id) + { return NO_ERROR; } virtual status_t addStreamDefaultEffect(const effect_uuid_t *type, - const String16& opPackageName, - const effect_uuid_t *uuid, - int32_t priority, - audio_usage_t usage, - audio_unique_id_t* id) { - return NO_ERROR; - } - virtual status_t removeSourceDefaultEffect(audio_unique_id_t id) { - return NO_ERROR; - } - virtual status_t removeStreamDefaultEffect(audio_unique_id_t id) { + const String16 &opPackageName, + const effect_uuid_t *uuid, int32_t priority, + audio_usage_t usage, audio_unique_id_t *id) + { return NO_ERROR; } + virtual status_t removeSourceDefaultEffect(audio_unique_id_t id) { return NO_ERROR; } + virtual status_t removeStreamDefaultEffect(audio_unique_id_t id) { return NO_ERROR; } - virtual status_t onTransact(uint32_t code, - const Parcel& data, - Parcel* reply, - uint32_t flags) { + virtual status_t onTransact(uint32_t code, const Parcel &data, Parcel *reply, uint32_t flags) + { return NO_ERROR; } // IBinder::DeathRecipient - virtual void binderDied(const wp& who) { - return; - } + virtual void binderDied(const wp &who) { return; } // RefBase - virtual void onFirstRef() { - return; - } + virtual void onFirstRef() { return; } // // Helpers for the struct audio_policy_service_ops implementation. // This is used by the audio policy manager for certain operations that // are implemented by the policy service. // - virtual void setParameters(audio_io_handle_t ioHandle, - const char *keyValuePairs, - int delayMs) { + virtual void setParameters(audio_io_handle_t ioHandle, const char *keyValuePairs, int delayMs) + { return; } - virtual status_t setStreamVolume(audio_stream_type_t stream, - float volume, - audio_io_handle_t output, - int delayMs = 0) { - return NO_ERROR; - } - virtual status_t setVoiceVolume(float volume, int delayMs = 0) { + virtual status_t setStreamVolume(audio_stream_type_t stream, float volume, + audio_io_handle_t output, int delayMs = 0) + { return NO_ERROR; } - status_t setSupportedSystemUsages(const std::vector& systemUsages) { + virtual status_t setVoiceVolume(float volume, int delayMs = 0) { return NO_ERROR; } + status_t setSupportedSystemUsages(const std::vector &systemUsages) + { return NO_ERROR; } - status_t setAllowedCapturePolicy(uint_t uid, - audio_flags_mask_t capturePolicy) override { + status_t setAllowedCapturePolicy(uint_t uid, audio_flags_mask_t capturePolicy) override + { return NO_ERROR; } - virtual bool isOffloadSupported(const audio_offload_info_t &config) { - return false; - } - virtual bool isDirectOutputSupported(const audio_config_base_t& config, - const audio_attributes_t& attributes) { + virtual bool isOffloadSupported(const audio_offload_info_t &config) { return false; } + virtual bool isDirectOutputSupported(const audio_config_base_t &config, + const audio_attributes_t &attributes) + { return false; } - virtual status_t listAudioPorts(audio_port_role_t role, - audio_port_type_t type, - unsigned int *num_ports, - struct audio_port *ports, - unsigned int *generation) { - return NO_ERROR; - } - virtual status_t getAudioPort(struct audio_port *port) { - return NO_ERROR; - } - virtual status_t createAudioPatch(const struct audio_patch *patch, - audio_patch_handle_t *handle) { - return NO_ERROR; - } - virtual status_t releaseAudioPatch(audio_patch_handle_t handle) { + virtual status_t listAudioPorts(audio_port_role_t role, audio_port_type_t type, + unsigned int *num_ports, struct audio_port *ports, + unsigned int *generation) + { return NO_ERROR; } - virtual status_t listAudioPatches(unsigned int *num_patches, - struct audio_patch *patches, - unsigned int *generation) { + virtual status_t getAudioPort(struct audio_port *port) { return NO_ERROR; } + virtual status_t createAudioPatch(const struct audio_patch *patch, audio_patch_handle_t *handle) + { return NO_ERROR; } - virtual status_t setAudioPortConfig(const struct audio_port_config *config) { + virtual status_t releaseAudioPatch(audio_patch_handle_t handle) { return NO_ERROR; } + virtual status_t listAudioPatches(unsigned int *num_patches, struct audio_patch *patches, + unsigned int *generation) + { return NO_ERROR; } + virtual status_t setAudioPortConfig(const struct audio_port_config *config) { return NO_ERROR; } - virtual void registerClient(const sp& client) { - return; - } + virtual void registerClient(const sp &client) { return; } virtual void setAudioPortCallbacksEnabled(bool enabled) { return; } virtual void setAudioVolumeGroupCallbacksEnabled(bool enabled) { return; } virtual status_t acquireSoundTriggerSession(audio_session_t *session, - audio_io_handle_t *ioHandle, - audio_devices_t *device) { + audio_io_handle_t *ioHandle, + audio_devices_t *device) + { return NO_ERROR; } - virtual status_t releaseSoundTriggerSession(audio_session_t session) { - return NO_ERROR; - } + virtual status_t releaseSoundTriggerSession(audio_session_t session) { return NO_ERROR; } - virtual audio_mode_t getPhoneState() { - return AUDIO_MODE_CURRENT; - } + virtual audio_mode_t getPhoneState() { return AUDIO_MODE_CURRENT; } - virtual status_t registerPolicyMixes(const Vector& mixes, - bool registration) { + virtual status_t registerPolicyMixes(const Vector &mixes, bool registration) + { return NO_ERROR; } - virtual status_t setUidDeviceAffinities(uid_t uid, const - Vector& devices) { + virtual status_t setUidDeviceAffinities(uid_t uid, const Vector &devices) + { return NO_ERROR; } - virtual status_t removeUidDeviceAffinities(uid_t uid) { - return NO_ERROR; - } + virtual status_t removeUidDeviceAffinities(uid_t uid) { return NO_ERROR; } virtual status_t setPreferredDeviceForStrategy(product_strategy_t strategy, - const AudioDeviceTypeAddr &device) { + const AudioDeviceTypeAddr &device) + { return NO_ERROR; } - virtual status_t removePreferredDeviceForStrategy(product_strategy_t strategy) { + virtual status_t removePreferredDeviceForStrategy(product_strategy_t strategy) + { return NO_ERROR; } - virtual status_t getPreferredDeviceForStrategy(product_strategy_t strategy, - AudioDeviceTypeAddr &device) { + AudioDeviceTypeAddr &device) + { return NO_ERROR; } virtual status_t setUserIdDeviceAffinities(int userId, - const Vector& devices) { + const Vector &devices) + { return NO_ERROR; } - virtual status_t removeUserIdDeviceAffinities(int userId) { - return NO_ERROR; - } + virtual status_t removeUserIdDeviceAffinities(int userId) { return NO_ERROR; } virtual status_t startAudioSource(const struct audio_port_config *source, const audio_attributes_t *attributes, - audio_port_handle_t *portId) { - return NO_ERROR; - } - virtual status_t stopAudioSource(audio_port_handle_t portId) { + audio_port_handle_t *portId) + { return NO_ERROR; } + virtual status_t stopAudioSource(audio_port_handle_t portId) { return NO_ERROR; } virtual status_t setMasterMono(bool mono) { return NO_ERROR; } virtual status_t getMasterMono(bool *mono) { return NO_ERROR; } - virtual float getStreamVolumeDB( audio_stream_type_t stream, - int index, audio_devices_t device) { + virtual float getStreamVolumeDB(audio_stream_type_t stream, int index, audio_devices_t device) + { return 0; } virtual status_t getSurroundFormats(unsigned int *numSurroundFormats, audio_format_t *surroundFormats, - bool *surroundFormatsEnabled, - bool reported) { + bool *surroundFormatsEnabled, bool reported) + { return NO_ERROR; } - virtual status_t getHwOffloadEncodingFormatsSupportedForA2DP( - std::vector *formats) { + virtual status_t + getHwOffloadEncodingFormatsSupportedForA2DP(std::vector *formats) + { return NO_ERROR; } - virtual status_t setSurroundFormatEnabled(audio_format_t audioFormat, - bool enabled) { + virtual status_t setSurroundFormatEnabled(audio_format_t audioFormat, bool enabled) + { return NO_ERROR; } - virtual status_t setAssistantUid(uid_t uid) { - return NO_ERROR; - } - virtual status_t setA11yServicesUids(const std::vector& uids) { - return NO_ERROR; - } + virtual status_t setAssistantUid(uid_t uid) { return NO_ERROR; } + virtual status_t setA11yServicesUids(const std::vector &uids) { return NO_ERROR; } - virtual status_t setCurrentImeUid(uid_t uid) { - return NO_ERROR; - } + virtual status_t setCurrentImeUid(uid_t uid) { return NO_ERROR; } - virtual bool isHapticPlaybackSupported() { - return false; - } + virtual bool isHapticPlaybackSupported() { return false; } - virtual status_t listAudioProductStrategies(AudioProductStrategyVector &strategies) { + virtual status_t listAudioProductStrategies(AudioProductStrategyVector &strategies) + { return NO_ERROR; } - virtual status_t getProductStrategyFromAudioAttributes( - const AudioAttributes &aa, - product_strategy_t &productStrategy) { + virtual status_t getProductStrategyFromAudioAttributes(const AudioAttributes &aa, + product_strategy_t &productStrategy) + { return NO_ERROR; } - - virtual status_t listAudioVolumeGroups(AudioVolumeGroupVector &groups) { - return NO_ERROR; - } + virtual status_t listAudioVolumeGroups(AudioVolumeGroupVector &groups) { return NO_ERROR; } virtual status_t getVolumeGroupFromAudioAttributes(const AudioAttributes &aa, - volume_group_t &volumeGroup) { + volume_group_t &volumeGroup) + { return NO_ERROR; } - status_t registerSoundTriggerCaptureStateListener( - const sp& listener, - bool* result) override { + status_t + registerSoundTriggerCaptureStateListener(const sp &listener, + bool *result) override + { return NO_ERROR; } - virtual status_t setRttEnabled(bool enabled) { - return NO_ERROR; - } + virtual status_t setRttEnabled(bool enabled) { return NO_ERROR; } - bool isCallScreenModeSupported() override { - return false; - } + bool isCallScreenModeSupported() override { return false; } - void doOnNewAudioModulesAvailable() { - return; - } + void doOnNewAudioModulesAvailable() { return; } - status_t doStopOutput(audio_port_handle_t portId) { - return NO_ERROR; - } - void doReleaseOutput(audio_port_handle_t portId) { - return; - } + status_t doStopOutput(audio_port_handle_t portId) { return NO_ERROR; } + void doReleaseOutput(audio_port_handle_t portId) { return; } - status_t clientCreateAudioPatch(const struct audio_patch *patch, - audio_patch_handle_t *handle, - int delayMs) { - return NO_ERROR; - } - status_t clientReleaseAudioPatch(audio_patch_handle_t handle, - int delayMs) { + status_t clientCreateAudioPatch(const struct audio_patch *patch, audio_patch_handle_t *handle, + int delayMs) + { return NO_ERROR; } - virtual status_t clientSetAudioPortConfig(const struct audio_port_config *config, - int delayMs) { + status_t clientReleaseAudioPatch(audio_patch_handle_t handle, int delayMs) { return NO_ERROR; } + virtual status_t clientSetAudioPortConfig(const struct audio_port_config *config, int delayMs) + { return NO_ERROR; } @@ -479,53 +400,39 @@ class FakeAudioPolicyService : void onAudioPatchListUpdate() { return; } void doOnAudioPatchListUpdate() { return; } - void onDynamicPolicyMixStateUpdate(const String8& regId, int32_t state) { - return; - } - void doOnDynamicPolicyMixStateUpdate(const String8& regId, int32_t state) { - return; - } - void onRecordingConfigurationUpdate(int event, - const record_client_info_t *clientInfo, + void onDynamicPolicyMixStateUpdate(const String8 ®Id, int32_t state) { return; } + void doOnDynamicPolicyMixStateUpdate(const String8 ®Id, int32_t state) { return; } + void onRecordingConfigurationUpdate(int event, const record_client_info_t *clientInfo, const audio_config_base_t *clientConfig, std::vector clientEffects, const audio_config_base_t *deviceConfig, std::vector effects, - audio_patch_handle_t patchHandle, - audio_source_t source) { + audio_patch_handle_t patchHandle, audio_source_t source) + { return; } - void doOnRecordingConfigurationUpdate(int event, - const record_client_info_t *clientInfo, + void doOnRecordingConfigurationUpdate(int event, const record_client_info_t *clientInfo, const audio_config_base_t *clientConfig, std::vector clientEffects, const audio_config_base_t *deviceConfig, std::vector effects, - audio_patch_handle_t patchHandle, - audio_source_t source) { + audio_patch_handle_t patchHandle, audio_source_t source) + { return; } - void onAudioVolumeGroupChanged(volume_group_t group, int flags) { - return; - } - void doOnAudioVolumeGroupChanged(volume_group_t group, int flags) { - return; - } - void setEffectSuspended(int effectId, - audio_session_t sessionId, - bool suspended) { - return; - } + void onAudioVolumeGroupChanged(volume_group_t group, int flags) { return; } + void doOnAudioVolumeGroupChanged(volume_group_t group, int flags) { return; } + void setEffectSuspended(int effectId, audio_session_t sessionId, bool suspended) { return; } #ifdef AUDIOPOLICY_LINEAGE_AUDIOSESSIONINFO - status_t listAudioSessions(audio_stream_type_t streams, - Vector< sp> &sessions) { + status_t listAudioSessions(audio_stream_type_t streams, Vector> &sessions) + { return NO_ERROR; } #endif }; -} +} // namespace android #endif // FAKE_ANDROID_AUDIOPOLICYSERVICE_H diff --git a/services/audiopolicy/audiopolicy_13_0_0.h b/services/audiopolicy/audiopolicy_13_0_0.h index f4b6b81..32442a4 100644 --- a/services/audiopolicy/audiopolicy_13_0_0.h +++ b/services/audiopolicy/audiopolicy_13_0_0.h @@ -35,16 +35,14 @@ #include - namespace android { // ---------------------------------------------------------------------------- -class FakeAudioPolicyService : - public BinderService, - public media::BnAudioPolicyService, - public IBinder::DeathRecipient, - public SpatializerPolicyCallback +class FakeAudioPolicyService : public BinderService, + public media::BnAudioPolicyService, + public IBinder::DeathRecipient, + public SpatializerPolicyCallback { friend class BinderService; @@ -52,477 +50,482 @@ class FakeAudioPolicyService : // for BinderService static const char *getServiceName() ANDROID_API { return "media.audio_policy"; } - status_t dump(int fd, const Vector& args) { return NO_ERROR; } + status_t dump(int fd, const Vector &args) { return NO_ERROR; } // // BnAudioPolicyService (see AudioPolicyInterface for method descriptions) // - ::binder::Status onNewAudioModulesAvailable() override { - return ::binder::Status::ok(); - } - ::binder::Status setDeviceConnectionState(media::AudioPolicyDeviceState, - const media::audio::common::AudioPort &, - const media::audio::common::AudioFormatDescription &) override { + ::binder::Status onNewAudioModulesAvailable() override { return ::binder::Status::ok(); } + ::binder::Status + setDeviceConnectionState(media::AudioPolicyDeviceState, const media::audio::common::AudioPort &, + const media::audio::common::AudioFormatDescription &) override + { return ::binder::Status::ok(); } ::binder::Status getDeviceConnectionState(const media::audio::common::AudioDevice &, - media::AudioPolicyDeviceState *state) override { + media::AudioPolicyDeviceState *state) override + { *state = ::media::AudioPolicyDeviceState::UNAVAILABLE; return ::binder::Status::ok(); } - ::binder::Status handleDeviceConfigChange(const media::audio::common::AudioDevice &, - const std::string &, - const media::audio::common::AudioFormatDescription &) override { + ::binder::Status + handleDeviceConfigChange(const media::audio::common::AudioDevice &, const std::string &, + const media::audio::common::AudioFormatDescription &) override + { return ::binder::Status::ok(); } - ::binder::Status setPhoneState(media::audio::common::AudioMode state, int32_t uid) override { + ::binder::Status setPhoneState(media::audio::common::AudioMode state, int32_t uid) override + { return ::binder::Status::ok(); } ::binder::Status setForceUse(media::AudioPolicyForceUse, - media::AudioPolicyForcedConfig) override { + media::AudioPolicyForcedConfig) override + { return ::binder::Status::ok(); } ::binder::Status getForceUse(media::AudioPolicyForceUse, - media::AudioPolicyForcedConfig *config) override { + media::AudioPolicyForcedConfig *config) override + { *config = media::AudioPolicyForcedConfig::NONE; return ::binder::Status::ok(); } - ::binder::Status getOutput(media::audio::common::AudioStreamType, - int32_t *output) override { + ::binder::Status getOutput(media::audio::common::AudioStreamType, int32_t *output) override + { *output = 0; return ::binder::Status::ok(); } - ::binder::Status getOutputForAttr(const media::AudioAttributesInternal &, - int32_t, - const AttributionSourceState &, - const media::audio::common::AudioConfig &, - int32_t, - int32_t, - media::GetOutputForAttrResponse *output) override { - return ::binder::Status::ok(); - } - ::binder::Status startOutput(int32_t portId) override { - return ::binder::Status::ok(); - } - ::binder::Status stopOutput(int32_t portId) override { - return ::binder::Status::ok(); - } - ::binder::Status releaseOutput(int32_t portId) override { - return ::binder::Status::ok(); - } - ::binder::Status getInputForAttr(const media::AudioAttributesInternal &, - int32_t, - int32_t, - int32_t, - const AttributionSourceState &, - const media::audio::common::AudioConfigBase &, - int32_t, - int32_t, - media::GetInputForAttrResponse *input) override { - return ::binder::Status::ok(); - } - ::binder::Status startInput(int32_t portId) override { - return ::binder::Status::ok(); - } - ::binder::Status stopInput(int32_t portId) override { + ::binder::Status getOutputForAttr(const media::AudioAttributesInternal &, int32_t, + const AttributionSourceState &, + const media::audio::common::AudioConfig &, int32_t, int32_t, + media::GetOutputForAttrResponse *output) override + { return ::binder::Status::ok(); } - ::binder::Status releaseInput(int32_t portId) override { + ::binder::Status startOutput(int32_t portId) override { return ::binder::Status::ok(); } + ::binder::Status stopOutput(int32_t portId) override { return ::binder::Status::ok(); } + ::binder::Status releaseOutput(int32_t portId) override { return ::binder::Status::ok(); } + ::binder::Status getInputForAttr(const media::AudioAttributesInternal &, int32_t, int32_t, + int32_t, const AttributionSourceState &, + const media::audio::common::AudioConfigBase &, int32_t, + int32_t, media::GetInputForAttrResponse *input) override + { return ::binder::Status::ok(); } - ::binder::Status initStreamVolume(media::audio::common::AudioStreamType, - int32_t, - int32_t) override { + ::binder::Status startInput(int32_t portId) override { return ::binder::Status::ok(); } + ::binder::Status stopInput(int32_t portId) override { return ::binder::Status::ok(); } + ::binder::Status releaseInput(int32_t portId) override { return ::binder::Status::ok(); } + ::binder::Status initStreamVolume(media::audio::common::AudioStreamType, int32_t, + int32_t) override + { return ::binder::Status::ok(); } ::binder::Status setStreamVolumeIndex(media::audio::common::AudioStreamType, - const media::audio::common::AudioDeviceDescription &, - int32_t) override { + const media::audio::common::AudioDeviceDescription &, + int32_t) override + { return ::binder::Status::ok(); } ::binder::Status getStreamVolumeIndex(media::audio::common::AudioStreamType, - const media::audio::common::AudioDeviceDescription &, - int32_t *volume) override { + const media::audio::common::AudioDeviceDescription &, + int32_t *volume) override + { return ::binder::Status::ok(); } - ::binder::Status setVolumeIndexForAttributes(const media::AudioAttributesInternal &, - const media::audio::common::AudioDeviceDescription &, - int32_t) override { + ::binder::Status + setVolumeIndexForAttributes(const media::AudioAttributesInternal &, + const media::audio::common::AudioDeviceDescription &, + int32_t) override + { return ::binder::Status::ok(); } - ::binder::Status getVolumeIndexForAttributes(const media::AudioAttributesInternal &, - const media::audio::common::AudioDeviceDescription &, - int32_t *index) override { + ::binder::Status + getVolumeIndexForAttributes(const media::AudioAttributesInternal &, + const media::audio::common::AudioDeviceDescription &, + int32_t *index) override + { return ::binder::Status::ok(); } ::binder::Status getMinVolumeIndexForAttributes(const media::AudioAttributesInternal &, - int32_t *index) override { + int32_t *index) override + { return ::binder::Status::ok(); } ::binder::Status getMaxVolumeIndexForAttributes(const media::AudioAttributesInternal &, - int32_t *index) override { + int32_t *index) override + { return ::binder::Status::ok(); } ::binder::Status getStrategyForStream(media::audio::common::AudioStreamType stream, - int32_t *strategy) override { + int32_t *strategy) override + { *strategy = PRODUCT_STRATEGY_NONE; return ::binder::Status::ok(); } - ::binder::Status getDevicesForAttributes(const media::AudioAttributesEx &, - bool, - std::vector *devices) override { -// devices->AudioDevice::NONE; + ::binder::Status + getDevicesForAttributes(const media::AudioAttributesEx &, bool, + std::vector *devices) override + { + // devices->AudioDevice::NONE; return ::binder::Status::ok(); } - ::binder::Status getOutputForEffect(const media::EffectDescriptor &, - int32_t *output) override { + ::binder::Status getOutputForEffect(const media::EffectDescriptor &, int32_t *output) override + { *output = 0; return ::binder::Status::ok(); } - ::binder::Status registerEffect(const media::EffectDescriptor &, - int32_t, - int32_t, - int32_t, - int32_t) override { + ::binder::Status registerEffect(const media::EffectDescriptor &, int32_t, int32_t, int32_t, + int32_t) override + { return ::binder::Status::ok(); } - ::binder::Status unregisterEffect(int32_t) override { + ::binder::Status unregisterEffect(int32_t) override { return ::binder::Status::ok(); } + ::binder::Status setEffectEnabled(int32_t, bool) override { return ::binder::Status::ok(); } + ::binder::Status moveEffectsToIo(const std::vector &, int32_t) override + { return ::binder::Status::ok(); } - ::binder::Status setEffectEnabled(int32_t, - bool) override { - return ::binder::Status::ok(); - } - ::binder::Status moveEffectsToIo(const std::vector &, - int32_t) override { - return ::binder::Status::ok(); - } - ::binder::Status isStreamActive(media::audio::common::AudioStreamType, - int32_t, - bool *active) override { + ::binder::Status isStreamActive(media::audio::common::AudioStreamType, int32_t, + bool *active) override + { *active = false; return ::binder::Status::ok(); } - ::binder::Status isStreamActiveRemotely(media::audio::common::AudioStreamType, - int32_t, - bool *active) override { + ::binder::Status isStreamActiveRemotely(media::audio::common::AudioStreamType, int32_t, + bool *active) override + { *active = false; return ::binder::Status::ok(); } - ::binder::Status isSourceActive(media::audio::common::AudioSource, - bool *active) override { + ::binder::Status isSourceActive(media::audio::common::AudioSource, bool *active) override + { *active = false; return ::binder::Status::ok(); } - ::binder::Status queryDefaultPreProcessing(int32_t, - media::audio::common::Int *, - std::vector *) override { + ::binder::Status queryDefaultPreProcessing(int32_t, media::audio::common::Int *, + std::vector *) override + { return ::binder::Status::ok(); } ::binder::Status addSourceDefaultEffect(const media::audio::common::AudioUuid &, - const std::string &, - const media::audio::common::AudioUuid &, - int32_t, - media::audio::common::AudioSource, - int32_t *) override { + const std::string &, + const media::audio::common::AudioUuid &, int32_t, + media::audio::common::AudioSource, int32_t *) override + { return ::binder::Status::ok(); } ::binder::Status addStreamDefaultEffect(const media::audio::common::AudioUuid &, - const std::string &, - const media::audio::common::AudioUuid &, - int32_t, - media::audio::common::AudioUsage, - int32_t *) override { + const std::string &, + const media::audio::common::AudioUuid &, int32_t, + media::audio::common::AudioUsage, int32_t *) override + { return ::binder::Status::ok(); } - ::binder::Status removeSourceDefaultEffect(int32_t) override { + ::binder::Status removeSourceDefaultEffect(int32_t) override { return ::binder::Status::ok(); } + ::binder::Status removeStreamDefaultEffect(int32_t) override { return ::binder::Status::ok(); } + ::binder::Status setSupportedSystemUsages( + const std::vector &systemUsages) override + { return ::binder::Status::ok(); } - ::binder::Status removeStreamDefaultEffect(int32_t) override { + ::binder::Status setAllowedCapturePolicy(int32_t uid, int32_t capturePolicy) override + { return ::binder::Status::ok(); } - ::binder::Status setSupportedSystemUsages(const std::vector& systemUsages) override { + ::binder::Status getOffloadSupport(const media::audio::common::AudioOffloadInfo &info, + media::AudioOffloadMode *_aidl_return) override + { return ::binder::Status::ok(); } - ::binder::Status setAllowedCapturePolicy(int32_t uid, - int32_t capturePolicy) override { + ::binder::Status isDirectOutputSupported(const media::audio::common::AudioConfigBase &config, + const media::AudioAttributesInternal &attributes, + bool *_aidl_return) override + { return ::binder::Status::ok(); } - ::binder::Status getOffloadSupport(const media::audio::common::AudioOffloadInfo& info, - media::AudioOffloadMode* _aidl_return) override { + ::binder::Status listAudioPorts(media::AudioPortRole role, media::AudioPortType type, + media::audio::common::Int *count, + std::vector *ports, + int32_t *_aidl_return) override + { return ::binder::Status::ok(); } - ::binder::Status isDirectOutputSupported(const media::audio::common::AudioConfigBase& config, - const media::AudioAttributesInternal& attributes, - bool* _aidl_return) override { + ::binder::Status getAudioPort(int portId, media::AudioPort *_aidl_return) override + { return ::binder::Status::ok(); } - ::binder::Status listAudioPorts(media::AudioPortRole role, - media::AudioPortType type, - media::audio::common::Int* count, - std::vector* ports, - int32_t* _aidl_return) override { + ::binder::Status createAudioPatch(const media::AudioPatch &patch, int32_t handle, + int32_t *_aidl_return) override + { return ::binder::Status::ok(); } - ::binder::Status getAudioPort(int portId, - media::AudioPort* _aidl_return) override { + ::binder::Status releaseAudioPatch(int32_t handle) override { return ::binder::Status::ok(); } + ::binder::Status listAudioPatches(media::audio::common::Int *count, + std::vector *patches, + int32_t *_aidl_return) override + { return ::binder::Status::ok(); } - ::binder::Status createAudioPatch(const media::AudioPatch& patch, - int32_t handle, - int32_t* _aidl_return) override { + ::binder::Status setAudioPortConfig(const media::AudioPortConfig &config) override + { return ::binder::Status::ok(); } - ::binder::Status releaseAudioPatch(int32_t handle) override { + ::binder::Status registerClient(const sp &client) override + { return ::binder::Status::ok(); } - ::binder::Status listAudioPatches(media::audio::common::Int* count, - std::vector* patches, - int32_t* _aidl_return) override { + ::binder::Status setAudioPortCallbacksEnabled(bool enabled) override + { return ::binder::Status::ok(); } - ::binder::Status setAudioPortConfig(const media::AudioPortConfig& config) override { + ::binder::Status setAudioVolumeGroupCallbacksEnabled(bool enabled) override + { return ::binder::Status::ok(); } - ::binder::Status registerClient(const sp& client) override { + ::binder::Status acquireSoundTriggerSession(media::SoundTriggerSession *_aidl_return) override + { return ::binder::Status::ok(); } - ::binder::Status setAudioPortCallbacksEnabled(bool enabled) override { + ::binder::Status releaseSoundTriggerSession(int32_t session) override + { return ::binder::Status::ok(); } - ::binder::Status setAudioVolumeGroupCallbacksEnabled(bool enabled) override { + ::binder::Status getPhoneState(media::audio::common::AudioMode *_aidl_return) override + { return ::binder::Status::ok(); } - ::binder::Status acquireSoundTriggerSession(media::SoundTriggerSession* _aidl_return) override { + ::binder::Status registerPolicyMixes(const std::vector &mixes, + bool registration) override + { return ::binder::Status::ok(); } - ::binder::Status releaseSoundTriggerSession(int32_t session) override { + ::binder::Status + setUidDeviceAffinities(int32_t uid, + const std::vector &devices) override + { return ::binder::Status::ok(); } - ::binder::Status getPhoneState(media::audio::common::AudioMode* _aidl_return) override { + ::binder::Status removeUidDeviceAffinities(int32_t uid) override + { return ::binder::Status::ok(); } - ::binder::Status registerPolicyMixes(const std::vector& mixes, - bool registration) override { + ::binder::Status setUserIdDeviceAffinities( + int32_t userId, const std::vector &devices) override + { return ::binder::Status::ok(); } - ::binder::Status setUidDeviceAffinities(int32_t uid, - const std::vector& devices) override { + ::binder::Status removeUserIdDeviceAffinities(int32_t userId) override + { return ::binder::Status::ok(); } - ::binder::Status removeUidDeviceAffinities(int32_t uid) override { - return ::binder::Status::ok(); - } - ::binder::Status setUserIdDeviceAffinities(int32_t userId, - const std::vector& devices) override { - return ::binder::Status::ok(); - } - ::binder::Status removeUserIdDeviceAffinities(int32_t userId) override { - return ::binder::Status::ok(); - } - ::binder::Status startAudioSource(const media::AudioPortConfig& source, - const media::AudioAttributesInternal& attributes, - int32_t* _aidl_return) override { - return ::binder::Status::ok(); - } - ::binder::Status stopAudioSource(int32_t portId) override { - return ::binder::Status::ok(); - } - ::binder::Status setMasterMono(bool mono) override { - return ::binder::Status::ok(); - } - ::binder::Status getMasterMono(bool* _aidl_return) override { + ::binder::Status startAudioSource(const media::AudioPortConfig &source, + const media::AudioAttributesInternal &attributes, + int32_t *_aidl_return) override + { return ::binder::Status::ok(); } + ::binder::Status stopAudioSource(int32_t portId) override { return ::binder::Status::ok(); } + ::binder::Status setMasterMono(bool mono) override { return ::binder::Status::ok(); } + ::binder::Status getMasterMono(bool *_aidl_return) override { return ::binder::Status::ok(); } ::binder::Status getStreamVolumeDB(media::audio::common::AudioStreamType stream, int32_t index, - const media::audio::common::AudioDeviceDescription& device, - float* _aidl_return) override { + const media::audio::common::AudioDeviceDescription &device, + float *_aidl_return) override + { return ::binder::Status::ok(); } - ::binder::Status getSurroundFormats(media::audio::common::Int* count, - std::vector* formats, - std::vector* formatsEnabled) override { + ::binder::Status + getSurroundFormats(media::audio::common::Int *count, + std::vector *formats, + std::vector *formatsEnabled) override + { return ::binder::Status::ok(); } - ::binder::Status getReportedSurroundFormats(media::audio::common::Int* count, - std::vector* formats) override { + ::binder::Status getReportedSurroundFormats( + media::audio::common::Int *count, + std::vector *formats) override + { return ::binder::Status::ok(); } ::binder::Status getHwOffloadFormatsSupportedForBluetoothMedia( - const media::audio::common::AudioDeviceDescription& device, - std::vector* _aidl_return) override { - return ::binder::Status::ok(); - } - ::binder::Status setSurroundFormatEnabled(const media::audio::common::AudioFormatDescription& audioFormat, - bool enabled) override { - return ::binder::Status::ok(); - } - ::binder::Status setAssistantServicesUids(const std::vector& uids) override { + const media::audio::common::AudioDeviceDescription &device, + std::vector *_aidl_return) override + { return ::binder::Status::ok(); } - ::binder::Status setActiveAssistantServicesUids(const std::vector& activeUids) override { + ::binder::Status + setSurroundFormatEnabled(const media::audio::common::AudioFormatDescription &audioFormat, + bool enabled) override + { return ::binder::Status::ok(); } - ::binder::Status setA11yServicesUids(const std::vector& uids) override { + ::binder::Status setAssistantServicesUids(const std::vector &uids) override + { return ::binder::Status::ok(); } - ::binder::Status setCurrentImeUid(int32_t uid) override { + ::binder::Status setActiveAssistantServicesUids(const std::vector &activeUids) override + { return ::binder::Status::ok(); } - ::binder::Status isHapticPlaybackSupported(bool* _aidl_return) override { + ::binder::Status setA11yServicesUids(const std::vector &uids) override + { return ::binder::Status::ok(); } - ::binder::Status isUltrasoundSupported(bool* _aidl_return) override { + ::binder::Status setCurrentImeUid(int32_t uid) override { return ::binder::Status::ok(); } + ::binder::Status isHapticPlaybackSupported(bool *_aidl_return) override + { return ::binder::Status::ok(); } - ::binder::Status listAudioProductStrategies( - std::vector* _aidl_return) override { + ::binder::Status isUltrasoundSupported(bool *_aidl_return) override + { return ::binder::Status::ok(); } - ::binder::Status getProductStrategyFromAudioAttributes(const media::AudioAttributesEx& aa, - bool fallbackOnDefault, - int32_t* _aidl_return) override { + ::binder::Status + listAudioProductStrategies(std::vector *_aidl_return) override + { return ::binder::Status::ok(); } - ::binder::Status listAudioVolumeGroups(std::vector* _aidl_return) override { + ::binder::Status getProductStrategyFromAudioAttributes(const media::AudioAttributesEx &aa, + bool fallbackOnDefault, + int32_t *_aidl_return) override + { return ::binder::Status::ok(); } - ::binder::Status getVolumeGroupFromAudioAttributes(const media::AudioAttributesEx& aa, - bool fallbackOnDefault, - int32_t* _aidl_return) override { + ::binder::Status + listAudioVolumeGroups(std::vector *_aidl_return) override + { return ::binder::Status::ok(); } - ::binder::Status setRttEnabled(bool enabled) override { + ::binder::Status getVolumeGroupFromAudioAttributes(const media::AudioAttributesEx &aa, + bool fallbackOnDefault, + int32_t *_aidl_return) override + { return ::binder::Status::ok(); } - ::binder::Status isCallScreenModeSupported(bool* _aidl_return) override { + ::binder::Status setRttEnabled(bool enabled) override { return ::binder::Status::ok(); } + ::binder::Status isCallScreenModeSupported(bool *_aidl_return) override + { return ::binder::Status::ok(); } - ::binder::Status setDevicesRoleForStrategy(int32_t strategy, - media::DeviceRole role, - const std::vector& devices) override { + ::binder::Status setDevicesRoleForStrategy( + int32_t strategy, media::DeviceRole role, + const std::vector &devices) override + { return ::binder::Status::ok(); } - ::binder::Status removeDevicesRoleForStrategy(int32_t strategy, - media::DeviceRole role) override { + ::binder::Status removeDevicesRoleForStrategy(int32_t strategy, media::DeviceRole role) override + { return ::binder::Status::ok(); } - ::binder::Status getDevicesForRoleAndStrategy(int32_t strategy, - media::DeviceRole role, - std::vector* _aidl_return) override { + ::binder::Status getDevicesForRoleAndStrategy( + int32_t strategy, media::DeviceRole role, + std::vector *_aidl_return) override + { return ::binder::Status::ok(); } - ::binder::Status setDevicesRoleForCapturePreset(media::audio::common::AudioSource audioSource, - media::DeviceRole role, - const std::vector& devices) override { + ::binder::Status setDevicesRoleForCapturePreset( + media::audio::common::AudioSource audioSource, media::DeviceRole role, + const std::vector &devices) override + { return ::binder::Status::ok(); } - ::binder::Status addDevicesRoleForCapturePreset(media::audio::common::AudioSource audioSource, - media::DeviceRole role, - const std::vector& devices) override { + ::binder::Status addDevicesRoleForCapturePreset( + media::audio::common::AudioSource audioSource, media::DeviceRole role, + const std::vector &devices) override + { return ::binder::Status::ok(); } - ::binder::Status removeDevicesRoleForCapturePreset(media::audio::common::AudioSource audioSource, - media::DeviceRole role, - const std::vector& devices) override { + ::binder::Status removeDevicesRoleForCapturePreset( + media::audio::common::AudioSource audioSource, media::DeviceRole role, + const std::vector &devices) override + { return ::binder::Status::ok(); } ::binder::Status clearDevicesRoleForCapturePreset(media::audio::common::AudioSource audioSource, - media::DeviceRole role) override { + media::DeviceRole role) override + { return ::binder::Status::ok(); } - ::binder::Status getDevicesForRoleAndCapturePreset(media::audio::common::AudioSource audioSource, - media::DeviceRole role, - std::vector* _aidl_return) override { + ::binder::Status getDevicesForRoleAndCapturePreset( + media::audio::common::AudioSource audioSource, media::DeviceRole role, + std::vector *_aidl_return) override + { return ::binder::Status::ok(); } - ::binder::Status registerSoundTriggerCaptureStateListener(const sp& listener, - bool* _aidl_return) override { + ::binder::Status + registerSoundTriggerCaptureStateListener(const sp &listener, + bool *_aidl_return) override + { return ::binder::Status::ok(); } - ::binder::Status getSpatializer(const sp& callback, - media::GetSpatializerResponse* _aidl_return) override { + ::binder::Status getSpatializer(const sp &callback, + media::GetSpatializerResponse *_aidl_return) override + { return ::binder::Status::ok(); } - ::binder::Status canBeSpatialized(const std::optional& attr, - const std::optional& config, - const std::vector& devices, - bool* _aidl_return) override { + ::binder::Status + canBeSpatialized(const std::optional &attr, + const std::optional &config, + const std::vector &devices, + bool *_aidl_return) override + { return ::binder::Status::ok(); } - ::binder::Status getDirectPlaybackSupport(const media::AudioAttributesInternal& attr, - const media::audio::common::AudioConfig& config, - media::AudioDirectMode* _aidl_return) override { + ::binder::Status getDirectPlaybackSupport(const media::AudioAttributesInternal &attr, + const media::audio::common::AudioConfig &config, + media::AudioDirectMode *_aidl_return) override + { return ::binder::Status::ok(); } - ::binder::Status getDirectProfilesForAttributes(const media::AudioAttributesInternal& attr, - std::vector* _aidl_return) override { + ::binder::Status getDirectProfilesForAttributes( + const media::AudioAttributesInternal &attr, + std::vector *_aidl_return) override + { return ::binder::Status::ok(); } - status_t onTransact(uint32_t code, - const Parcel& data, - Parcel* reply, - uint32_t flags) override { + status_t onTransact(uint32_t code, const Parcel &data, Parcel *reply, uint32_t flags) override + { return NO_ERROR; } // IBinder::DeathRecipient - void binderDied(const wp& who) { - return; - } + void binderDied(const wp &who) { return; } // RefBase - void onFirstRef() { - return; - } + void onFirstRef() { return; } // // Helpers for the struct audio_policy_service_ops implementation. // This is used by the audio policy manager for certain operations that // are implemented by the policy service. // - virtual void setParameters(audio_io_handle_t ioHandle, - const char *keyValuePairs, - int delayMs) { + virtual void setParameters(audio_io_handle_t ioHandle, const char *keyValuePairs, int delayMs) + { return; } - virtual status_t setStreamVolume(audio_stream_type_t stream, - float volume, - audio_io_handle_t output, - int delayMs = 0) { - return NO_ERROR; - } - virtual status_t setVoiceVolume(float volume, int delayMs = 0) { + virtual status_t setStreamVolume(audio_stream_type_t stream, float volume, + audio_io_handle_t output, int delayMs = 0) + { return NO_ERROR; } + virtual status_t setVoiceVolume(float volume, int delayMs = 0) { return NO_ERROR; } - void doOnNewAudioModulesAvailable() { - return; - } + void doOnNewAudioModulesAvailable() { return; } - status_t doStopOutput(audio_port_handle_t portId) { - return NO_ERROR; - } - void doReleaseOutput(audio_port_handle_t portId) { - return; - } + status_t doStopOutput(audio_port_handle_t portId) { return NO_ERROR; } + void doReleaseOutput(audio_port_handle_t portId) { return; } - status_t clientCreateAudioPatch(const struct audio_patch *patch, - audio_patch_handle_t *handle, - int delayMs) { - return NO_ERROR; - } - status_t clientReleaseAudioPatch(audio_patch_handle_t handle, - int delayMs) { + status_t clientCreateAudioPatch(const struct audio_patch *patch, audio_patch_handle_t *handle, + int delayMs) + { return NO_ERROR; } - virtual status_t clientSetAudioPortConfig(const struct audio_port_config *config, - int delayMs) { + status_t clientReleaseAudioPatch(audio_patch_handle_t handle, int delayMs) { return NO_ERROR; } + virtual status_t clientSetAudioPortConfig(const struct audio_port_config *config, int delayMs) + { return NO_ERROR; } @@ -532,81 +535,49 @@ class FakeAudioPolicyService : void onAudioPatchListUpdate() { return; } void doOnAudioPatchListUpdate() { return; } - void onDynamicPolicyMixStateUpdate(const String8& regId, int32_t state) { - return; - } - void doOnDynamicPolicyMixStateUpdate(const String8& regId, int32_t state) { - return; - } - void onRecordingConfigurationUpdate(int event, - const record_client_info_t *clientInfo, + void onDynamicPolicyMixStateUpdate(const String8 ®Id, int32_t state) { return; } + void doOnDynamicPolicyMixStateUpdate(const String8 ®Id, int32_t state) { return; } + void onRecordingConfigurationUpdate(int event, const record_client_info_t *clientInfo, const audio_config_base_t *clientConfig, std::vector clientEffects, const audio_config_base_t *deviceConfig, std::vector effects, - audio_patch_handle_t patchHandle, - audio_source_t source) { + audio_patch_handle_t patchHandle, audio_source_t source) + { return; } - void doOnRecordingConfigurationUpdate(int event, - const record_client_info_t *clientInfo, + void doOnRecordingConfigurationUpdate(int event, const record_client_info_t *clientInfo, const audio_config_base_t *clientConfig, std::vector clientEffects, const audio_config_base_t *deviceConfig, std::vector effects, - audio_patch_handle_t patchHandle, - audio_source_t source) { + audio_patch_handle_t patchHandle, audio_source_t source) + { return; } - void onAudioVolumeGroupChanged(volume_group_t group, int flags) { - return; - } - void doOnAudioVolumeGroupChanged(volume_group_t group, int flags) { - return; - } - void onRoutingUpdated() { - return; - } - void doOnRoutingUpdated() { - return; - } - void onVolumeRangeInitRequest() { - return; - } - void doOnVolumeRangeInitRequest() { - return; - } - void onCheckSpatializer() { - return; - } - void onCheckSpatializer_l() { - return; - } - void doOnCheckSpatializer() { - return; - } - void onUpdateActiveSpatializerTracks_l() { - return; - } - void doOnUpdateActiveSpatializerTracks() { - return; - } + void onAudioVolumeGroupChanged(volume_group_t group, int flags) { return; } + void doOnAudioVolumeGroupChanged(volume_group_t group, int flags) { return; } + void onRoutingUpdated() { return; } + void doOnRoutingUpdated() { return; } + void onVolumeRangeInitRequest() { return; } + void doOnVolumeRangeInitRequest() { return; } + void onCheckSpatializer() { return; } + void onCheckSpatializer_l() { return; } + void doOnCheckSpatializer() { return; } + void onUpdateActiveSpatializerTracks_l() { return; } + void doOnUpdateActiveSpatializerTracks() { return; } - void setEffectSuspended(int effectId, - audio_session_t sessionId, - bool suspended) { - return; - } + void setEffectSuspended(int effectId, audio_session_t sessionId, bool suspended) { return; } #ifdef AUDIOPOLICY_LINEAGE_AUDIOSESSIONINFO - status_t listAudioSessions(audio_stream_type_t streams, - Vector< sp> &sessions) { + status_t listAudioSessions(audio_stream_type_t streams, Vector> &sessions) + { return NO_ERROR; } #endif }; -} +} // namespace android #endif // FAKE_ANDROID_AUDIOPOLICYSERVICE_H diff --git a/services/audiopolicy/audiopolicy_5_1_0.h b/services/audiopolicy/audiopolicy_5_1_0.h index 80b681b..d5bcebb 100644 --- a/services/audiopolicy/audiopolicy_5_1_0.h +++ b/services/audiopolicy/audiopolicy_5_1_0.h @@ -34,10 +34,9 @@ namespace android { // ---------------------------------------------------------------------------- -class FakeAudioPolicyService : - public BinderService, - public BnAudioPolicyService, - public IBinder::DeathRecipient +class FakeAudioPolicyService : public BinderService, + public BnAudioPolicyService, + public IBinder::DeathRecipient { friend class BinderService; @@ -45,7 +44,7 @@ class FakeAudioPolicyService : // for BinderService static const char *getServiceName() ANDROID_API { return "media.audio_policy"; } - virtual status_t dump(int fd, const Vector& args) { return NO_ERROR; } + virtual status_t dump(int fd, const Vector &args) { return NO_ERROR; } // // BnAudioPolicyService (see AudioPolicyInterface for method descriptions) @@ -53,233 +52,203 @@ class FakeAudioPolicyService : virtual status_t setDeviceConnectionState(audio_devices_t device, audio_policy_dev_state_t state, - const char *device_address) { + const char *device_address) + { return NO_ERROR; } virtual audio_policy_dev_state_t getDeviceConnectionState(audio_devices_t device, - const char *device_address) { + const char *device_address) + { return AUDIO_POLICY_DEVICE_STATE_UNAVAILABLE; } virtual status_t setPhoneState(audio_mode_t state) { return NO_ERROR; } - virtual status_t setForceUse(audio_policy_force_use_t usage, - audio_policy_forced_cfg_t config) { + virtual status_t setForceUse(audio_policy_force_use_t usage, audio_policy_forced_cfg_t config) + { return NO_ERROR; } - virtual audio_policy_forced_cfg_t getForceUse(audio_policy_force_use_t usage) { + virtual audio_policy_forced_cfg_t getForceUse(audio_policy_force_use_t usage) + { return AUDIO_POLICY_FORCE_NONE; } - virtual audio_io_handle_t getOutput(audio_stream_type_t stream, - uint32_t samplingRate = 0, + virtual audio_io_handle_t getOutput(audio_stream_type_t stream, uint32_t samplingRate = 0, audio_format_t format = AUDIO_FORMAT_DEFAULT, audio_channel_mask_t channelMask = 0, - audio_output_flags_t flags = - AUDIO_OUTPUT_FLAG_NONE, - const audio_offload_info_t *offloadInfo = NULL) { + audio_output_flags_t flags = AUDIO_OUTPUT_FLAG_NONE, + const audio_offload_info_t *offloadInfo = NULL) + { return AUDIO_IO_HANDLE_NONE; } - virtual status_t getOutputForAttr(const audio_attributes_t *attr, - audio_io_handle_t *output, - audio_session_t session, - audio_stream_type_t *stream, + virtual status_t getOutputForAttr(const audio_attributes_t *attr, audio_io_handle_t *output, + audio_session_t session, audio_stream_type_t *stream, uint32_t samplingRate = 0, audio_format_t format = AUDIO_FORMAT_DEFAULT, audio_channel_mask_t channelMask = 0, audio_output_flags_t flags = AUDIO_OUTPUT_FLAG_NONE, - const audio_offload_info_t *offloadInfo = NULL) { - return NO_ERROR; + const audio_offload_info_t *offloadInfo = NULL) + { + return NO_ERROR; } - virtual status_t startOutput(audio_io_handle_t output, - audio_stream_type_t stream, - audio_session_t session) { + virtual status_t startOutput(audio_io_handle_t output, audio_stream_type_t stream, + audio_session_t session) + { return NO_ERROR; } - virtual status_t stopOutput(audio_io_handle_t output, - audio_stream_type_t stream, - audio_session_t session) { + virtual status_t stopOutput(audio_io_handle_t output, audio_stream_type_t stream, + audio_session_t session) + { return NO_ERROR; } - virtual void releaseOutput(audio_io_handle_t output, - audio_stream_type_t stream, - audio_session_t session) { + virtual void releaseOutput(audio_io_handle_t output, audio_stream_type_t stream, + audio_session_t session) + { return; } - virtual status_t getInputForAttr(const audio_attributes_t *attr, - audio_io_handle_t *input, - audio_session_t session, - uint32_t samplingRate, - audio_format_t format, - audio_channel_mask_t channelMask, - audio_input_flags_t flags) { + virtual status_t getInputForAttr(const audio_attributes_t *attr, audio_io_handle_t *input, + audio_session_t session, uint32_t samplingRate, + audio_format_t format, audio_channel_mask_t channelMask, + audio_input_flags_t flags) + { return NO_ERROR; } - virtual status_t startInput(audio_io_handle_t input, - audio_session_t session) { + virtual status_t startInput(audio_io_handle_t input, audio_session_t session) + { return NO_ERROR; } - virtual status_t stopInput(audio_io_handle_t input, - audio_session_t session) { + virtual status_t stopInput(audio_io_handle_t input, audio_session_t session) + { return NO_ERROR; } - virtual void releaseInput(audio_io_handle_t input, - audio_session_t session) { - return; - } - virtual status_t initStreamVolume(audio_stream_type_t stream, - int indexMin, - int indexMax){ + virtual void releaseInput(audio_io_handle_t input, audio_session_t session) { return; } + virtual status_t initStreamVolume(audio_stream_type_t stream, int indexMin, int indexMax) + { return NO_ERROR; } - virtual status_t setStreamVolumeIndex(audio_stream_type_t stream, - int index, - audio_devices_t device) { + virtual status_t setStreamVolumeIndex(audio_stream_type_t stream, int index, + audio_devices_t device) + { return NO_ERROR; } - virtual status_t getStreamVolumeIndex(audio_stream_type_t stream, - int *index, - audio_devices_t device) { + virtual status_t getStreamVolumeIndex(audio_stream_type_t stream, int *index, + audio_devices_t device) + { return NO_ERROR; } - virtual uint32_t getStrategyForStream(audio_stream_type_t stream) { - return 0; - } - virtual audio_devices_t getDevicesForStream(audio_stream_type_t stream) { + virtual uint32_t getStrategyForStream(audio_stream_type_t stream) { return 0; } + virtual audio_devices_t getDevicesForStream(audio_stream_type_t stream) + { return AUDIO_DEVICE_NONE; } - virtual audio_io_handle_t getOutputForEffect(const effect_descriptor_t *desc) { - return 0; - } - virtual status_t registerEffect(const effect_descriptor_t *desc, - audio_io_handle_t io, - uint32_t strategy, - int session, - int id) { + virtual audio_io_handle_t getOutputForEffect(const effect_descriptor_t *desc) { return 0; } + virtual status_t registerEffect(const effect_descriptor_t *desc, audio_io_handle_t io, + uint32_t strategy, int session, int id) + { return NO_ERROR; } virtual status_t unregisterEffect(int id) { return NO_ERROR; } virtual status_t setEffectEnabled(int id, bool enabled) { return NO_ERROR; } - virtual bool isStreamActive(audio_stream_type_t stream, - uint32_t inPastMs = 0) const { + virtual bool isStreamActive(audio_stream_type_t stream, uint32_t inPastMs = 0) const + { return false; } - virtual bool isStreamActiveRemotely(audio_stream_type_t stream, - uint32_t inPastMs = 0) const { + virtual bool isStreamActiveRemotely(audio_stream_type_t stream, uint32_t inPastMs = 0) const + { return false; } virtual bool isSourceActive(audio_source_t source) const { return false; } - virtual status_t queryDefaultPreProcessing(int audioSession, - effect_descriptor_t *descriptors, - uint32_t *count) { + virtual status_t queryDefaultPreProcessing(int audioSession, effect_descriptor_t *descriptors, + uint32_t *count) + { return NO_ERROR; } - virtual status_t onTransact( - uint32_t code, - const Parcel& data, - Parcel* reply, - uint32_t flags) { + virtual status_t onTransact(uint32_t code, const Parcel &data, Parcel *reply, uint32_t flags) + { return NO_ERROR; } // IBinder::DeathRecipient - virtual void binderDied(const wp& who) { return; } + virtual void binderDied(const wp &who) { return; } // RefBase - virtual void onFirstRef() { return; } + virtual void onFirstRef() { return; } // // Helpers for the struct audio_policy_service_ops implementation. // This is used by the audio policy manager for certain operations that // are implemented by the policy service. // - virtual void setParameters(audio_io_handle_t ioHandle, - const char *keyValuePairs, - int delayMs) { + virtual void setParameters(audio_io_handle_t ioHandle, const char *keyValuePairs, int delayMs) + { return; } - virtual status_t setStreamVolume(audio_stream_type_t stream, - float volume, - audio_io_handle_t output, - int delayMs = 0) { + virtual status_t setStreamVolume(audio_stream_type_t stream, float volume, + audio_io_handle_t output, int delayMs = 0) + { return NO_ERROR; } - virtual status_t startTone(audio_policy_tone_t tone, audio_stream_type_t stream) { + virtual status_t startTone(audio_policy_tone_t tone, audio_stream_type_t stream) + { return NO_ERROR; } virtual status_t stopTone() { return NO_ERROR; } - virtual status_t setVoiceVolume(float volume, int delayMs = 0) { - return NO_ERROR; - } - virtual bool isOffloadSupported(const audio_offload_info_t &config) { - return false; - } - virtual status_t listAudioPorts(audio_port_role_t role, - audio_port_type_t type, - unsigned int *num_ports, - struct audio_port *ports, - unsigned int *generation) { - return NO_ERROR; - } - virtual status_t getAudioPort(struct audio_port *port) { - return NO_ERROR; - } - virtual status_t createAudioPatch(const struct audio_patch *patch, - audio_patch_handle_t *handle) { + virtual status_t setVoiceVolume(float volume, int delayMs = 0) { return NO_ERROR; } + virtual bool isOffloadSupported(const audio_offload_info_t &config) { return false; } + virtual status_t listAudioPorts(audio_port_role_t role, audio_port_type_t type, + unsigned int *num_ports, struct audio_port *ports, + unsigned int *generation) + { return NO_ERROR; } - virtual status_t releaseAudioPatch(audio_patch_handle_t handle) { + virtual status_t getAudioPort(struct audio_port *port) { return NO_ERROR; } + virtual status_t createAudioPatch(const struct audio_patch *patch, audio_patch_handle_t *handle) + { return NO_ERROR; } - virtual status_t listAudioPatches(unsigned int *num_patches, - struct audio_patch *patches, - unsigned int *generation) { + virtual status_t releaseAudioPatch(audio_patch_handle_t handle) { return NO_ERROR; } + virtual status_t listAudioPatches(unsigned int *num_patches, struct audio_patch *patches, + unsigned int *generation) + { return NO_ERROR; } - virtual status_t setAudioPortConfig(const struct audio_port_config *config) { - return NO_ERROR; - } - virtual void registerClient(const sp& client) { - return; - } - virtual void setAudioPortCallbacksEnabled(bool enabled){ return; } + virtual status_t setAudioPortConfig(const struct audio_port_config *config) { return NO_ERROR; } + virtual void registerClient(const sp &client) { return; } + virtual void setAudioPortCallbacksEnabled(bool enabled) { return; } virtual status_t acquireSoundTriggerSession(audio_session_t *session, - audio_io_handle_t *ioHandle, - audio_devices_t *device) { + audio_io_handle_t *ioHandle, + audio_devices_t *device) + { return NO_ERROR; } - virtual status_t releaseSoundTriggerSession(audio_session_t session) { + virtual status_t releaseSoundTriggerSession(audio_session_t session) { return NO_ERROR; } + virtual audio_mode_t getPhoneState() { return AUDIO_MODE_CURRENT; } + virtual status_t registerPolicyMixes(Vector mixes, bool registration) + { return NO_ERROR; - } - virtual audio_mode_t getPhoneState() { - return AUDIO_MODE_CURRENT; - } - virtual status_t registerPolicyMixes(Vector mixes, bool registration) { - return NO_ERROR;; + ; } virtual status_t startAudioSource(const struct audio_port_config *source, const audio_attributes_t *attributes, - audio_io_handle_t *handle){ + audio_io_handle_t *handle) + { return NO_ERROR; } virtual status_t stopAudioSource(audio_io_handle_t handle) { return NO_ERROR; } - status_t doStopOutput(audio_io_handle_t output, - audio_stream_type_t stream, - audio_session_t session) { + status_t doStopOutput(audio_io_handle_t output, audio_stream_type_t stream, + audio_session_t session) + { return NO_ERROR; } - void doReleaseOutput(audio_io_handle_t output, - audio_stream_type_t stream, - audio_session_t session) { + void doReleaseOutput(audio_io_handle_t output, audio_stream_type_t stream, + audio_session_t session) + { return; } - status_t clientCreateAudioPatch(const struct audio_patch *patch, - audio_patch_handle_t *handle, - int delayMs) { + status_t clientCreateAudioPatch(const struct audio_patch *patch, audio_patch_handle_t *handle, + int delayMs) + { return NO_ERROR; } - status_t clientReleaseAudioPatch(audio_patch_handle_t handle, - int delayMs) { - return NO_ERROR; - } - virtual status_t clientSetAudioPortConfig(const struct audio_port_config *config, - int delayMs) { + status_t clientReleaseAudioPatch(audio_patch_handle_t handle, int delayMs) { return NO_ERROR; } + virtual status_t clientSetAudioPortConfig(const struct audio_port_config *config, int delayMs) + { return NO_ERROR; } void removeNotificationClient(uid_t uid) { return; } @@ -287,12 +256,8 @@ class FakeAudioPolicyService : void doOnAudioPortListUpdate() { return; } void onAudioPatchListUpdate() { return; } void doOnAudioPatchListUpdate() { return; } - void onDynamicPolicyMixStateUpdate(String8 regId, int32_t state) { - return; - } - void doOnDynamicPolicyMixStateUpdate(String8 regId, int32_t state) { - return; - } + void onDynamicPolicyMixStateUpdate(String8 regId, int32_t state) { return; } + void doOnDynamicPolicyMixStateUpdate(String8 regId, int32_t state) { return; } }; }; // namespace android #endif // ANDROID_AUDIOPOLICYSERVICE_H diff --git a/services/audiopolicy/audiopolicy_6_0_0.h b/services/audiopolicy/audiopolicy_6_0_0.h index 83dcefe..1a59be5 100644 --- a/services/audiopolicy/audiopolicy_6_0_0.h +++ b/services/audiopolicy/audiopolicy_6_0_0.h @@ -34,10 +34,9 @@ namespace android { // ---------------------------------------------------------------------------- -class FakeAudioPolicyService : - public BinderService, - public BnAudioPolicyService, - public IBinder::DeathRecipient +class FakeAudioPolicyService : public BinderService, + public BnAudioPolicyService, + public IBinder::DeathRecipient { friend class BinderService; @@ -45,7 +44,7 @@ class FakeAudioPolicyService : // for BinderService static const char *getServiceName() ANDROID_API { return "media.audio_policy"; } - virtual status_t dump(int fd, const Vector& args) { return NO_ERROR; } + virtual status_t dump(int fd, const Vector &args) { return NO_ERROR; } // // BnAudioPolicyService (see AudioPolicyInterface for method descriptions) @@ -53,238 +52,205 @@ class FakeAudioPolicyService : virtual status_t setDeviceConnectionState(audio_devices_t device, audio_policy_dev_state_t state, - const char *device_address, - const char *device_name) { + const char *device_address, const char *device_name) + { return NO_ERROR; } virtual audio_policy_dev_state_t getDeviceConnectionState(audio_devices_t device, - const char *device_address) { + const char *device_address) + { return AUDIO_POLICY_DEVICE_STATE_UNAVAILABLE; } virtual status_t setPhoneState(audio_mode_t state) { return NO_ERROR; } - virtual status_t setForceUse(audio_policy_force_use_t usage, - audio_policy_forced_cfg_t config) { + virtual status_t setForceUse(audio_policy_force_use_t usage, audio_policy_forced_cfg_t config) + { return NO_ERROR; } - virtual audio_policy_forced_cfg_t getForceUse(audio_policy_force_use_t usage) { + virtual audio_policy_forced_cfg_t getForceUse(audio_policy_force_use_t usage) + { return AUDIO_POLICY_FORCE_NONE; } - virtual audio_io_handle_t getOutput(audio_stream_type_t stream, - uint32_t samplingRate = 0, + virtual audio_io_handle_t getOutput(audio_stream_type_t stream, uint32_t samplingRate = 0, audio_format_t format = AUDIO_FORMAT_DEFAULT, audio_channel_mask_t channelMask = 0, - audio_output_flags_t flags = - AUDIO_OUTPUT_FLAG_NONE, - const audio_offload_info_t *offloadInfo = NULL) { + audio_output_flags_t flags = AUDIO_OUTPUT_FLAG_NONE, + const audio_offload_info_t *offloadInfo = NULL) + { return AUDIO_IO_HANDLE_NONE; } - virtual status_t getOutputForAttr(const audio_attributes_t *attr, - audio_io_handle_t *output, - audio_session_t session, - audio_stream_type_t *stream, - uid_t uid, - uint32_t samplingRate = 0, + virtual status_t getOutputForAttr(const audio_attributes_t *attr, audio_io_handle_t *output, + audio_session_t session, audio_stream_type_t *stream, + uid_t uid, uint32_t samplingRate = 0, audio_format_t format = AUDIO_FORMAT_DEFAULT, audio_channel_mask_t channelMask = 0, audio_output_flags_t flags = AUDIO_OUTPUT_FLAG_NONE, audio_port_handle_t selectedDeviceId = AUDIO_PORT_HANDLE_NONE, - const audio_offload_info_t *offloadInfo = NULL) { - return NO_ERROR; + const audio_offload_info_t *offloadInfo = NULL) + { + return NO_ERROR; } - virtual status_t startOutput(audio_io_handle_t output, - audio_stream_type_t stream, - audio_session_t session) { + virtual status_t startOutput(audio_io_handle_t output, audio_stream_type_t stream, + audio_session_t session) + { return NO_ERROR; } - virtual status_t stopOutput(audio_io_handle_t output, - audio_stream_type_t stream, - audio_session_t session) { + virtual status_t stopOutput(audio_io_handle_t output, audio_stream_type_t stream, + audio_session_t session) + { return NO_ERROR; } - virtual void releaseOutput(audio_io_handle_t output, - audio_stream_type_t stream, - audio_session_t session) { + virtual void releaseOutput(audio_io_handle_t output, audio_stream_type_t stream, + audio_session_t session) + { return; } - virtual status_t getInputForAttr(const audio_attributes_t *attr, - audio_io_handle_t *input, - audio_session_t session, - uid_t uid, - uint32_t samplingRate, - audio_format_t format, - audio_channel_mask_t channelMask, + virtual status_t getInputForAttr(const audio_attributes_t *attr, audio_io_handle_t *input, + audio_session_t session, uid_t uid, uint32_t samplingRate, + audio_format_t format, audio_channel_mask_t channelMask, audio_input_flags_t flags, - audio_port_handle_t selectedDeviceId = AUDIO_PORT_HANDLE_NONE) { + audio_port_handle_t selectedDeviceId = AUDIO_PORT_HANDLE_NONE) + { return NO_ERROR; } - virtual status_t startInput(audio_io_handle_t input, - audio_session_t session) { + virtual status_t startInput(audio_io_handle_t input, audio_session_t session) + { return NO_ERROR; } - virtual status_t stopInput(audio_io_handle_t input, - audio_session_t session) { + virtual status_t stopInput(audio_io_handle_t input, audio_session_t session) + { return NO_ERROR; } - virtual void releaseInput(audio_io_handle_t input, - audio_session_t session) { - return; - } - virtual status_t initStreamVolume(audio_stream_type_t stream, - int indexMin, - int indexMax){ + virtual void releaseInput(audio_io_handle_t input, audio_session_t session) { return; } + virtual status_t initStreamVolume(audio_stream_type_t stream, int indexMin, int indexMax) + { return NO_ERROR; } - virtual status_t setStreamVolumeIndex(audio_stream_type_t stream, - int index, - audio_devices_t device) { + virtual status_t setStreamVolumeIndex(audio_stream_type_t stream, int index, + audio_devices_t device) + { return NO_ERROR; } - virtual status_t getStreamVolumeIndex(audio_stream_type_t stream, - int *index, - audio_devices_t device) { + virtual status_t getStreamVolumeIndex(audio_stream_type_t stream, int *index, + audio_devices_t device) + { return NO_ERROR; } - virtual uint32_t getStrategyForStream(audio_stream_type_t stream) { - return 0; - } - virtual audio_devices_t getDevicesForStream(audio_stream_type_t stream) { + virtual uint32_t getStrategyForStream(audio_stream_type_t stream) { return 0; } + virtual audio_devices_t getDevicesForStream(audio_stream_type_t stream) + { return AUDIO_DEVICE_NONE; } - virtual audio_io_handle_t getOutputForEffect(const effect_descriptor_t *desc) { - return 0; - } - virtual status_t registerEffect(const effect_descriptor_t *desc, - audio_io_handle_t io, - uint32_t strategy, - int session, - int id) { + virtual audio_io_handle_t getOutputForEffect(const effect_descriptor_t *desc) { return 0; } + virtual status_t registerEffect(const effect_descriptor_t *desc, audio_io_handle_t io, + uint32_t strategy, int session, int id) + { return NO_ERROR; } virtual status_t unregisterEffect(int id) { return NO_ERROR; } virtual status_t setEffectEnabled(int id, bool enabled) { return NO_ERROR; } - virtual bool isStreamActive(audio_stream_type_t stream, - uint32_t inPastMs = 0) const { + virtual bool isStreamActive(audio_stream_type_t stream, uint32_t inPastMs = 0) const + { return false; } - virtual bool isStreamActiveRemotely(audio_stream_type_t stream, - uint32_t inPastMs = 0) const { + virtual bool isStreamActiveRemotely(audio_stream_type_t stream, uint32_t inPastMs = 0) const + { return false; } virtual bool isSourceActive(audio_source_t source) const { return false; } - virtual status_t queryDefaultPreProcessing(int audioSession, - effect_descriptor_t *descriptors, - uint32_t *count) { + virtual status_t queryDefaultPreProcessing(int audioSession, effect_descriptor_t *descriptors, + uint32_t *count) + { return NO_ERROR; } - virtual status_t onTransact( - uint32_t code, - const Parcel& data, - Parcel* reply, - uint32_t flags) { + virtual status_t onTransact(uint32_t code, const Parcel &data, Parcel *reply, uint32_t flags) + { return NO_ERROR; } // IBinder::DeathRecipient - virtual void binderDied(const wp& who) { return; } + virtual void binderDied(const wp &who) { return; } // RefBase - virtual void onFirstRef() { return; } + virtual void onFirstRef() { return; } // // Helpers for the struct audio_policy_service_ops implementation. // This is used by the audio policy manager for certain operations that // are implemented by the policy service. // - virtual void setParameters(audio_io_handle_t ioHandle, - const char *keyValuePairs, - int delayMs) { + virtual void setParameters(audio_io_handle_t ioHandle, const char *keyValuePairs, int delayMs) + { return; } - virtual status_t setStreamVolume(audio_stream_type_t stream, - float volume, - audio_io_handle_t output, - int delayMs = 0) { + virtual status_t setStreamVolume(audio_stream_type_t stream, float volume, + audio_io_handle_t output, int delayMs = 0) + { return NO_ERROR; } - virtual status_t startTone(audio_policy_tone_t tone, audio_stream_type_t stream) { + virtual status_t startTone(audio_policy_tone_t tone, audio_stream_type_t stream) + { return NO_ERROR; } virtual status_t stopTone() { return NO_ERROR; } - virtual status_t setVoiceVolume(float volume, int delayMs = 0) { - return NO_ERROR; - } - virtual bool isOffloadSupported(const audio_offload_info_t &config) { - return false; - } - virtual status_t listAudioPorts(audio_port_role_t role, - audio_port_type_t type, - unsigned int *num_ports, - struct audio_port *ports, - unsigned int *generation) { - return NO_ERROR; - } - virtual status_t getAudioPort(struct audio_port *port) { - return NO_ERROR; - } - virtual status_t createAudioPatch(const struct audio_patch *patch, - audio_patch_handle_t *handle) { + virtual status_t setVoiceVolume(float volume, int delayMs = 0) { return NO_ERROR; } + virtual bool isOffloadSupported(const audio_offload_info_t &config) { return false; } + virtual status_t listAudioPorts(audio_port_role_t role, audio_port_type_t type, + unsigned int *num_ports, struct audio_port *ports, + unsigned int *generation) + { return NO_ERROR; } - virtual status_t releaseAudioPatch(audio_patch_handle_t handle) { + virtual status_t getAudioPort(struct audio_port *port) { return NO_ERROR; } + virtual status_t createAudioPatch(const struct audio_patch *patch, audio_patch_handle_t *handle) + { return NO_ERROR; } - virtual status_t listAudioPatches(unsigned int *num_patches, - struct audio_patch *patches, - unsigned int *generation) { + virtual status_t releaseAudioPatch(audio_patch_handle_t handle) { return NO_ERROR; } + virtual status_t listAudioPatches(unsigned int *num_patches, struct audio_patch *patches, + unsigned int *generation) + { return NO_ERROR; } - virtual status_t setAudioPortConfig(const struct audio_port_config *config) { - return NO_ERROR; - } - virtual void registerClient(const sp& client) { - return; - } - virtual void setAudioPortCallbacksEnabled(bool enabled){ return; } + virtual status_t setAudioPortConfig(const struct audio_port_config *config) { return NO_ERROR; } + virtual void registerClient(const sp &client) { return; } + virtual void setAudioPortCallbacksEnabled(bool enabled) { return; } virtual status_t acquireSoundTriggerSession(audio_session_t *session, - audio_io_handle_t *ioHandle, - audio_devices_t *device) { + audio_io_handle_t *ioHandle, + audio_devices_t *device) + { return NO_ERROR; } - virtual status_t releaseSoundTriggerSession(audio_session_t session) { + virtual status_t releaseSoundTriggerSession(audio_session_t session) { return NO_ERROR; } + virtual audio_mode_t getPhoneState() { return AUDIO_MODE_CURRENT; } + virtual status_t registerPolicyMixes(Vector mixes, bool registration) + { return NO_ERROR; - } - virtual audio_mode_t getPhoneState() { - return AUDIO_MODE_CURRENT; - } - virtual status_t registerPolicyMixes(Vector mixes, bool registration) { - return NO_ERROR;; + ; } virtual status_t startAudioSource(const struct audio_port_config *source, const audio_attributes_t *attributes, - audio_io_handle_t *handle){ + audio_io_handle_t *handle) + { return NO_ERROR; } virtual status_t stopAudioSource(audio_io_handle_t handle) { return NO_ERROR; } - status_t doStopOutput(audio_io_handle_t output, - audio_stream_type_t stream, - audio_session_t session) { + status_t doStopOutput(audio_io_handle_t output, audio_stream_type_t stream, + audio_session_t session) + { return NO_ERROR; } - void doReleaseOutput(audio_io_handle_t output, - audio_stream_type_t stream, - audio_session_t session) { + void doReleaseOutput(audio_io_handle_t output, audio_stream_type_t stream, + audio_session_t session) + { return; } - status_t clientCreateAudioPatch(const struct audio_patch *patch, - audio_patch_handle_t *handle, - int delayMs) { + status_t clientCreateAudioPatch(const struct audio_patch *patch, audio_patch_handle_t *handle, + int delayMs) + { return NO_ERROR; } - status_t clientReleaseAudioPatch(audio_patch_handle_t handle, - int delayMs) { - return NO_ERROR; - } - virtual status_t clientSetAudioPortConfig(const struct audio_port_config *config, - int delayMs) { + status_t clientReleaseAudioPatch(audio_patch_handle_t handle, int delayMs) { return NO_ERROR; } + virtual status_t clientSetAudioPortConfig(const struct audio_port_config *config, int delayMs) + { return NO_ERROR; } void removeNotificationClient(uid_t uid) { return; } @@ -292,20 +258,15 @@ class FakeAudioPolicyService : void doOnAudioPortListUpdate() { return; } void onAudioPatchListUpdate() { return; } void doOnAudioPatchListUpdate() { return; } - void onDynamicPolicyMixStateUpdate(String8 regId, int32_t state) { - return; - } - void doOnDynamicPolicyMixStateUpdate(String8 regId, int32_t state) { - return; - } + void onDynamicPolicyMixStateUpdate(String8 regId, int32_t state) { return; } + void doOnDynamicPolicyMixStateUpdate(String8 regId, int32_t state) { return; } #ifdef AUDIOPOLICY_LINEAGE_AUDIOSESSIONINFO - status_t listAudioSessions(audio_stream_type_t streams, - Vector< sp> &sessions) { + status_t listAudioSessions(audio_stream_type_t streams, Vector> &sessions) + { return NO_ERROR; } #endif - }; }; // namespace android #endif // ANDROID_AUDIOPOLICYSERVICE_H diff --git a/services/audiopolicy/audiopolicy_7_x_x.h b/services/audiopolicy/audiopolicy_7_x_x.h index 69cb1c1..055c9c8 100644 --- a/services/audiopolicy/audiopolicy_7_x_x.h +++ b/services/audiopolicy/audiopolicy_7_x_x.h @@ -30,15 +30,13 @@ #include #include - namespace android { // ---------------------------------------------------------------------------- -class FakeAudioPolicyService : - public BinderService, - public BnAudioPolicyService, - public IBinder::DeathRecipient +class FakeAudioPolicyService : public BinderService, + public BnAudioPolicyService, + public IBinder::DeathRecipient { friend class BinderService; @@ -46,7 +44,7 @@ class FakeAudioPolicyService : // for BinderService static const char *getServiceName() ANDROID_API { return "media.audio_policy"; } - virtual status_t dump(int fd, const Vector& args) { return NO_ERROR; } + virtual status_t dump(int fd, const Vector &args) { return NO_ERROR; } // // BnAudioPolicyService (see AudioPolicyInterface for method descriptions) @@ -54,241 +52,206 @@ class FakeAudioPolicyService : virtual status_t setDeviceConnectionState(audio_devices_t device, audio_policy_dev_state_t state, - const char *device_address, - const char *device_name) { + const char *device_address, const char *device_name) + { return NO_ERROR; } virtual audio_policy_dev_state_t getDeviceConnectionState(audio_devices_t device, - const char *device_address) { + const char *device_address) + { return AUDIO_POLICY_DEVICE_STATE_UNAVAILABLE; } virtual status_t setPhoneState(audio_mode_t state) { return NO_ERROR; } - virtual status_t setForceUse(audio_policy_force_use_t usage, - audio_policy_forced_cfg_t config) { + virtual status_t setForceUse(audio_policy_force_use_t usage, audio_policy_forced_cfg_t config) + { return NO_ERROR; } - virtual audio_policy_forced_cfg_t getForceUse(audio_policy_force_use_t usage) { + virtual audio_policy_forced_cfg_t getForceUse(audio_policy_force_use_t usage) + { return AUDIO_POLICY_FORCE_NONE; } - virtual audio_io_handle_t getOutput(audio_stream_type_t stream, - uint32_t samplingRate = 0, + virtual audio_io_handle_t getOutput(audio_stream_type_t stream, uint32_t samplingRate = 0, audio_format_t format = AUDIO_FORMAT_DEFAULT, audio_channel_mask_t channelMask = 0, - audio_output_flags_t flags = - AUDIO_OUTPUT_FLAG_NONE, - const audio_offload_info_t *offloadInfo = NULL) { + audio_output_flags_t flags = AUDIO_OUTPUT_FLAG_NONE, + const audio_offload_info_t *offloadInfo = NULL) + { return AUDIO_IO_HANDLE_NONE; } - virtual status_t getOutputForAttr(const audio_attributes_t *attr, - audio_io_handle_t *output, - audio_session_t session, - audio_stream_type_t *stream, - uid_t uid, - uint32_t samplingRate = 0, + virtual status_t getOutputForAttr(const audio_attributes_t *attr, audio_io_handle_t *output, + audio_session_t session, audio_stream_type_t *stream, + uid_t uid, uint32_t samplingRate = 0, audio_format_t format = AUDIO_FORMAT_DEFAULT, audio_channel_mask_t channelMask = 0, audio_output_flags_t flags = AUDIO_OUTPUT_FLAG_NONE, audio_port_handle_t selectedDeviceId = AUDIO_PORT_HANDLE_NONE, - const audio_offload_info_t *offloadInfo = NULL) { + const audio_offload_info_t *offloadInfo = NULL) + { return NO_ERROR; } - virtual status_t startOutput(audio_io_handle_t output, - audio_stream_type_t stream, - audio_session_t session) { + virtual status_t startOutput(audio_io_handle_t output, audio_stream_type_t stream, + audio_session_t session) + { return NO_ERROR; } - virtual status_t stopOutput(audio_io_handle_t output, - audio_stream_type_t stream, - audio_session_t session) { + virtual status_t stopOutput(audio_io_handle_t output, audio_stream_type_t stream, + audio_session_t session) + { return NO_ERROR; } - virtual void releaseOutput(audio_io_handle_t output, - audio_stream_type_t stream, - audio_session_t session) { + virtual void releaseOutput(audio_io_handle_t output, audio_stream_type_t stream, + audio_session_t session) + { return; } - virtual status_t getInputForAttr(const audio_attributes_t *attr, - audio_io_handle_t *input, - audio_session_t session, - pid_t pid, - uid_t uid, - uint32_t samplingRate, - audio_format_t format, - audio_channel_mask_t channelMask, - audio_input_flags_t flags, - audio_port_handle_t selectedDeviceId = AUDIO_PORT_HANDLE_NONE) { + virtual status_t getInputForAttr(const audio_attributes_t *attr, audio_io_handle_t *input, + audio_session_t session, pid_t pid, uid_t uid, + uint32_t samplingRate, audio_format_t format, + audio_channel_mask_t channelMask, audio_input_flags_t flags, + audio_port_handle_t selectedDeviceId = AUDIO_PORT_HANDLE_NONE) + { return NO_ERROR; } - virtual status_t startInput(audio_io_handle_t input, - audio_session_t session) { + virtual status_t startInput(audio_io_handle_t input, audio_session_t session) + { return NO_ERROR; } - virtual status_t stopInput(audio_io_handle_t input, - audio_session_t session) { + virtual status_t stopInput(audio_io_handle_t input, audio_session_t session) + { return NO_ERROR; } - virtual void releaseInput(audio_io_handle_t input, - audio_session_t session) { - return; - } - virtual status_t initStreamVolume(audio_stream_type_t stream, - int indexMin, - int indexMax) { + virtual void releaseInput(audio_io_handle_t input, audio_session_t session) { return; } + virtual status_t initStreamVolume(audio_stream_type_t stream, int indexMin, int indexMax) + { return NO_ERROR; } - virtual status_t setStreamVolumeIndex(audio_stream_type_t stream, - int index, - audio_devices_t device) { + virtual status_t setStreamVolumeIndex(audio_stream_type_t stream, int index, + audio_devices_t device) + { return NO_ERROR; } - virtual status_t getStreamVolumeIndex(audio_stream_type_t stream, - int *index, - audio_devices_t device) { + virtual status_t getStreamVolumeIndex(audio_stream_type_t stream, int *index, + audio_devices_t device) + { return NO_ERROR; } - virtual uint32_t getStrategyForStream(audio_stream_type_t stream) { - return 0; - } - virtual audio_devices_t getDevicesForStream(audio_stream_type_t stream) { + virtual uint32_t getStrategyForStream(audio_stream_type_t stream) { return 0; } + virtual audio_devices_t getDevicesForStream(audio_stream_type_t stream) + { return AUDIO_DEVICE_NONE; } - virtual audio_io_handle_t getOutputForEffect(const effect_descriptor_t *desc) { - return 0; - } - virtual status_t registerEffect(const effect_descriptor_t *desc, - audio_io_handle_t io, - uint32_t strategy, - audio_session_t session, - int id) { + virtual audio_io_handle_t getOutputForEffect(const effect_descriptor_t *desc) { return 0; } + virtual status_t registerEffect(const effect_descriptor_t *desc, audio_io_handle_t io, + uint32_t strategy, audio_session_t session, int id) + { return NO_ERROR; } virtual status_t unregisterEffect(int id) { return NO_ERROR; } virtual status_t setEffectEnabled(int id, bool enabled) { return NO_ERROR; } - virtual bool isStreamActive(audio_stream_type_t stream, - uint32_t inPastMs = 0) const { + virtual bool isStreamActive(audio_stream_type_t stream, uint32_t inPastMs = 0) const + { return false; } - virtual bool isStreamActiveRemotely(audio_stream_type_t stream, - uint32_t inPastMs = 0) const { + virtual bool isStreamActiveRemotely(audio_stream_type_t stream, uint32_t inPastMs = 0) const + { return false; } virtual bool isSourceActive(audio_source_t source) const { return false; } virtual status_t queryDefaultPreProcessing(audio_session_t audioSession, - effect_descriptor_t *descriptors, - uint32_t *count) { + effect_descriptor_t *descriptors, uint32_t *count) + { return NO_ERROR; } - virtual status_t onTransact( - uint32_t code, - const Parcel& data, - Parcel* reply, - uint32_t flags) { + virtual status_t onTransact(uint32_t code, const Parcel &data, Parcel *reply, uint32_t flags) + { return NO_ERROR; } // IBinder::DeathRecipient - virtual void binderDied(const wp& who) { return; } + virtual void binderDied(const wp &who) { return; } // RefBase - virtual void onFirstRef() { return; } + virtual void onFirstRef() { return; } // // Helpers for the struct audio_policy_service_ops implementation. // This is used by the audio policy manager for certain operations that // are implemented by the policy service. // - virtual void setParameters(audio_io_handle_t ioHandle, - const char *keyValuePairs, - int delayMs) { + virtual void setParameters(audio_io_handle_t ioHandle, const char *keyValuePairs, int delayMs) + { return; } - virtual status_t setStreamVolume(audio_stream_type_t stream, - float volume, - audio_io_handle_t output, - int delayMs = 0) { + virtual status_t setStreamVolume(audio_stream_type_t stream, float volume, + audio_io_handle_t output, int delayMs = 0) + { return NO_ERROR; } - virtual status_t startTone(audio_policy_tone_t tone, audio_stream_type_t stream) { + virtual status_t startTone(audio_policy_tone_t tone, audio_stream_type_t stream) + { return NO_ERROR; } virtual status_t stopTone() { return NO_ERROR; } - virtual status_t setVoiceVolume(float volume, int delayMs = 0) { - return NO_ERROR; - } - virtual bool isOffloadSupported(const audio_offload_info_t &config) { - return false; - } - virtual status_t listAudioPorts(audio_port_role_t role, - audio_port_type_t type, - unsigned int *num_ports, - struct audio_port *ports, - unsigned int *generation) { + virtual status_t setVoiceVolume(float volume, int delayMs = 0) { return NO_ERROR; } + virtual bool isOffloadSupported(const audio_offload_info_t &config) { return false; } + virtual status_t listAudioPorts(audio_port_role_t role, audio_port_type_t type, + unsigned int *num_ports, struct audio_port *ports, + unsigned int *generation) + { return NO_ERROR; } - virtual status_t getAudioPort(struct audio_port *port) { + virtual status_t getAudioPort(struct audio_port *port) { return NO_ERROR; } + virtual status_t createAudioPatch(const struct audio_patch *patch, audio_patch_handle_t *handle) + { return NO_ERROR; } - virtual status_t createAudioPatch(const struct audio_patch *patch, - audio_patch_handle_t *handle) { + virtual status_t releaseAudioPatch(audio_patch_handle_t handle) { return NO_ERROR; } + virtual status_t listAudioPatches(unsigned int *num_patches, struct audio_patch *patches, + unsigned int *generation) + { return NO_ERROR; } - virtual status_t releaseAudioPatch(audio_patch_handle_t handle) { - return NO_ERROR; - } - virtual status_t listAudioPatches(unsigned int *num_patches, - struct audio_patch *patches, - unsigned int *generation) { - return NO_ERROR; - } - virtual status_t setAudioPortConfig(const struct audio_port_config *config) { - return NO_ERROR; - } - virtual void registerClient(const sp& client) { - return; - } + virtual status_t setAudioPortConfig(const struct audio_port_config *config) { return NO_ERROR; } + virtual void registerClient(const sp &client) { return; } virtual void setAudioPortCallbacksEnabled(bool enabled) { return; } virtual status_t acquireSoundTriggerSession(audio_session_t *session, - audio_io_handle_t *ioHandle, - audio_devices_t *device) { - return NO_ERROR; - } - virtual status_t releaseSoundTriggerSession(audio_session_t session) { + audio_io_handle_t *ioHandle, + audio_devices_t *device) + { return NO_ERROR; } - virtual audio_mode_t getPhoneState() { - return AUDIO_MODE_CURRENT; - } - virtual status_t registerPolicyMixes(Vector mixes, bool registration) { + virtual status_t releaseSoundTriggerSession(audio_session_t session) { return NO_ERROR; } + virtual audio_mode_t getPhoneState() { return AUDIO_MODE_CURRENT; } + virtual status_t registerPolicyMixes(Vector mixes, bool registration) + { return NO_ERROR; } virtual status_t startAudioSource(const struct audio_port_config *source, const audio_attributes_t *attributes, - audio_io_handle_t *handle) { + audio_io_handle_t *handle) + { return NO_ERROR; } virtual status_t stopAudioSource(audio_io_handle_t handle) { return NO_ERROR; } virtual status_t setMasterMono(bool mono) { return NO_ERROR; } virtual status_t getMasterMono(bool *mono) { return NO_ERROR; } - status_t doStopOutput(audio_io_handle_t output, - audio_stream_type_t stream, - audio_session_t session) { + status_t doStopOutput(audio_io_handle_t output, audio_stream_type_t stream, + audio_session_t session) + { return NO_ERROR; } - void doReleaseOutput(audio_io_handle_t output, - audio_stream_type_t stream, - audio_session_t session) { + void doReleaseOutput(audio_io_handle_t output, audio_stream_type_t stream, + audio_session_t session) + { return; } - status_t clientCreateAudioPatch(const struct audio_patch *patch, - audio_patch_handle_t *handle, - int delayMs) { + status_t clientCreateAudioPatch(const struct audio_patch *patch, audio_patch_handle_t *handle, + int delayMs) + { return NO_ERROR; } - status_t clientReleaseAudioPatch(audio_patch_handle_t handle, - int delayMs) { - return NO_ERROR; - } - virtual status_t clientSetAudioPortConfig(const struct audio_port_config *config, - int delayMs) { + status_t clientReleaseAudioPatch(audio_patch_handle_t handle, int delayMs) { return NO_ERROR; } + virtual status_t clientSetAudioPortConfig(const struct audio_port_config *config, int delayMs) + { return NO_ERROR; } void removeNotificationClient(uid_t uid) { return; } @@ -296,70 +259,62 @@ class FakeAudioPolicyService : void doOnAudioPortListUpdate() { return; } void onAudioPatchListUpdate() { return; } void doOnAudioPatchListUpdate() { return; } - void onDynamicPolicyMixStateUpdate(String8 regId, int32_t state) { - return; - } - void doOnDynamicPolicyMixStateUpdate(String8 regId, int32_t state) { - return; - } - void onRecordingConfigurationUpdate(int event, audio_session_t session, - audio_source_t source, + void onDynamicPolicyMixStateUpdate(String8 regId, int32_t state) { return; } + void doOnDynamicPolicyMixStateUpdate(String8 regId, int32_t state) { return; } + void onRecordingConfigurationUpdate(int event, audio_session_t session, audio_source_t source, const audio_config_base_t *clientConfig, const audio_config_base_t *deviceConfig, - audio_patch_handle_t patchHandle) { + audio_patch_handle_t patchHandle) + { return; } - void doOnRecordingConfigurationUpdate(int event, audio_session_t session, - audio_source_t source, + void doOnRecordingConfigurationUpdate(int event, audio_session_t session, audio_source_t source, const audio_config_base_t *clientConfig, const audio_config_base_t *deviceConfig, - audio_patch_handle_t patchHandle) { + audio_patch_handle_t patchHandle) + { return; } #ifdef AUDIOPOLICY_LINEAGE_AUDIOSESSIONINFO - status_t listAudioSessions(audio_stream_type_t streams, - Vector< sp> &sessions) { + status_t listAudioSessions(audio_stream_type_t streams, Vector> &sessions) + { return NO_ERROR; } #endif #ifdef AUDIOPOLICY_MTK_AUDIO_ADD - virtual status_t SetPolicyManagerParameters(int par1, int par2, int par3, - int par4) { - return NO_ERROR; - } - virtual status_t StartOutputSamplerate(audio_io_handle_t output, - audio_stream_type_t stream, - audio_session_t session, int samplerate) { - return NO_ERROR; - } - virtual status_t StopOutputSamplerate(audio_io_handle_t output, - audio_stream_type_t stream, - audio_session_t session, - int samplerate) { - return NO_ERROR; - } - virtual status_t SampleRateRequestFocus(audio_io_handle_t output, - audio_stream_type_t stream, - int *samplerate) { - return NO_ERROR; - } - virtual status_t SampleRateUnrequestFocus(audio_io_handle_t output, - audio_stream_type_t stream, - int samplerate) { - return NO_ERROR; - } + virtual status_t SetPolicyManagerParameters(int par1, int par2, int par3, int par4) + { + return NO_ERROR; + } + virtual status_t StartOutputSamplerate(audio_io_handle_t output, audio_stream_type_t stream, + audio_session_t session, int samplerate) + { + return NO_ERROR; + } + virtual status_t StopOutputSamplerate(audio_io_handle_t output, audio_stream_type_t stream, + audio_session_t session, int samplerate) + { + return NO_ERROR; + } + virtual status_t SampleRateRequestFocus(audio_io_handle_t output, audio_stream_type_t stream, + int *samplerate) + { + return NO_ERROR; + } + virtual status_t SampleRateUnrequestFocus(audio_io_handle_t output, audio_stream_type_t stream, + int samplerate) + { + return NO_ERROR; + } - virtual status_t doStopOutputSamplerate(audio_io_handle_t output, - audio_stream_type_t stream, - audio_session_t session, - int samplerate) { - return NO_ERROR; - } - virtual status_t getCustomAudioVolume(void* pCustomVol) { + virtual status_t doStopOutputSamplerate(audio_io_handle_t output, audio_stream_type_t stream, + audio_session_t session, int samplerate) + { return NO_ERROR; } + virtual status_t getCustomAudioVolume(void *pCustomVol) { return NO_ERROR; } #endif }; diff --git a/services/audiopolicy/audiopolicy_8_1_0.h b/services/audiopolicy/audiopolicy_8_1_0.h index 1225ddb..db2ba99 100644 --- a/services/audiopolicy/audiopolicy_8_1_0.h +++ b/services/audiopolicy/audiopolicy_8_1_0.h @@ -29,15 +29,13 @@ #include #include - namespace android { // ---------------------------------------------------------------------------- -class FakeAudioPolicyService : - public BinderService, - public BnAudioPolicyService, - public IBinder::DeathRecipient +class FakeAudioPolicyService : public BinderService, + public BnAudioPolicyService, + public IBinder::DeathRecipient { friend class BinderService; @@ -45,7 +43,7 @@ class FakeAudioPolicyService : // for BinderService static const char *getServiceName() ANDROID_API { return "media.audio_policy"; } - virtual status_t dump(int fd, const Vector& args) { return NO_ERROR; } + virtual status_t dump(int fd, const Vector &args) { return NO_ERROR; } // // BnAudioPolicyService (see AudioPolicyInterface for method descriptions) @@ -53,249 +51,211 @@ class FakeAudioPolicyService : virtual status_t setDeviceConnectionState(audio_devices_t device, audio_policy_dev_state_t state, - const char *device_address, - const char *device_name) { + const char *device_address, const char *device_name) + { return NO_ERROR; } - virtual audio_policy_dev_state_t getDeviceConnectionState( - audio_devices_t device, - const char *device_address) { + virtual audio_policy_dev_state_t getDeviceConnectionState(audio_devices_t device, + const char *device_address) + { return AUDIO_POLICY_DEVICE_STATE_UNAVAILABLE; } - virtual status_t handleDeviceConfigChange(audio_devices_t device, - const char *device_address, - const char *device_name) { - return NO_ERROR; - } - virtual status_t setPhoneState(audio_mode_t state) { + virtual status_t handleDeviceConfigChange(audio_devices_t device, const char *device_address, + const char *device_name) + { return NO_ERROR; } - virtual status_t setForceUse(audio_policy_force_use_t usage, - audio_policy_forced_cfg_t config) { + virtual status_t setPhoneState(audio_mode_t state) { return NO_ERROR; } + virtual status_t setForceUse(audio_policy_force_use_t usage, audio_policy_forced_cfg_t config) + { return NO_ERROR; } - virtual audio_policy_forced_cfg_t getForceUse(audio_policy_force_use_t usage) { + virtual audio_policy_forced_cfg_t getForceUse(audio_policy_force_use_t usage) + { return AUDIO_POLICY_FORCE_NONE; } - virtual audio_io_handle_t getOutput(audio_stream_type_t stream, - uint32_t samplingRate = 0, + virtual audio_io_handle_t getOutput(audio_stream_type_t stream, uint32_t samplingRate = 0, audio_format_t format = AUDIO_FORMAT_DEFAULT, audio_channel_mask_t channelMask = 0, - audio_output_flags_t flags = - AUDIO_OUTPUT_FLAG_NONE, - const audio_offload_info_t *offloadInfo = NULL) { + audio_output_flags_t flags = AUDIO_OUTPUT_FLAG_NONE, + const audio_offload_info_t *offloadInfo = NULL) + { return AUDIO_IO_HANDLE_NONE; } - virtual status_t getOutputForAttr(const audio_attributes_t *attr, - audio_io_handle_t *output, - audio_session_t session, - audio_stream_type_t *stream, - uid_t uid, - const audio_config_t *config, + virtual status_t getOutputForAttr(const audio_attributes_t *attr, audio_io_handle_t *output, + audio_session_t session, audio_stream_type_t *stream, + uid_t uid, const audio_config_t *config, audio_output_flags_t flags, audio_port_handle_t *selectedDeviceId, - audio_port_handle_t *portId) { + audio_port_handle_t *portId) + { return NO_ERROR; } - virtual status_t startOutput(audio_io_handle_t output, - audio_stream_type_t stream, - audio_session_t session) { + virtual status_t startOutput(audio_io_handle_t output, audio_stream_type_t stream, + audio_session_t session) + { return NO_ERROR; } - virtual status_t stopOutput(audio_io_handle_t output, - audio_stream_type_t stream, - audio_session_t session) { + virtual status_t stopOutput(audio_io_handle_t output, audio_stream_type_t stream, + audio_session_t session) + { return NO_ERROR; } - virtual void releaseOutput(audio_io_handle_t output, - audio_stream_type_t stream, - audio_session_t session) { + virtual void releaseOutput(audio_io_handle_t output, audio_stream_type_t stream, + audio_session_t session) + { return; } - virtual status_t getInputForAttr(const audio_attributes_t *attr, - audio_io_handle_t *input, - audio_session_t session, - pid_t pid, - uid_t uid, - const audio_config_base_t *config, - audio_input_flags_t flags, + virtual status_t getInputForAttr(const audio_attributes_t *attr, audio_io_handle_t *input, + audio_session_t session, pid_t pid, uid_t uid, + const audio_config_base_t *config, audio_input_flags_t flags, audio_port_handle_t *selectedDeviceId = NULL, - audio_port_handle_t *portId = NULL) { + audio_port_handle_t *portId = NULL) + { return NO_ERROR; } - virtual status_t startInput(audio_io_handle_t input, - audio_session_t session) { + virtual status_t startInput(audio_io_handle_t input, audio_session_t session) + { return NO_ERROR; } - virtual status_t stopInput(audio_io_handle_t input, - audio_session_t session) { + virtual status_t stopInput(audio_io_handle_t input, audio_session_t session) + { return NO_ERROR; } - virtual void releaseInput(audio_io_handle_t input, - audio_session_t session) { - return; - } - virtual status_t initStreamVolume(audio_stream_type_t stream, - int indexMin, - int indexMax) { + virtual void releaseInput(audio_io_handle_t input, audio_session_t session) { return; } + virtual status_t initStreamVolume(audio_stream_type_t stream, int indexMin, int indexMax) + { return NO_ERROR; } - virtual status_t setStreamVolumeIndex(audio_stream_type_t stream, - int index, - audio_devices_t device) { + virtual status_t setStreamVolumeIndex(audio_stream_type_t stream, int index, + audio_devices_t device) + { return NO_ERROR; } - virtual status_t getStreamVolumeIndex(audio_stream_type_t stream, - int *index, - audio_devices_t device) { + virtual status_t getStreamVolumeIndex(audio_stream_type_t stream, int *index, + audio_devices_t device) + { return NO_ERROR; } - virtual uint32_t getStrategyForStream(audio_stream_type_t stream) { - return 0; - } - virtual audio_devices_t getDevicesForStream(audio_stream_type_t stream) { + virtual uint32_t getStrategyForStream(audio_stream_type_t stream) { return 0; } + virtual audio_devices_t getDevicesForStream(audio_stream_type_t stream) + { return AUDIO_DEVICE_NONE; } - virtual audio_io_handle_t getOutputForEffect(const effect_descriptor_t *desc) { - return 0; - } - virtual status_t registerEffect(const effect_descriptor_t *desc, - audio_io_handle_t io, - uint32_t strategy, - audio_session_t session, - int id) { + virtual audio_io_handle_t getOutputForEffect(const effect_descriptor_t *desc) { return 0; } + virtual status_t registerEffect(const effect_descriptor_t *desc, audio_io_handle_t io, + uint32_t strategy, audio_session_t session, int id) + { return NO_ERROR; } virtual status_t unregisterEffect(int id) { return NO_ERROR; } virtual status_t setEffectEnabled(int id, bool enabled) { return NO_ERROR; } - virtual bool isStreamActive(audio_stream_type_t stream, - uint32_t inPastMs = 0) const { + virtual bool isStreamActive(audio_stream_type_t stream, uint32_t inPastMs = 0) const + { return false; } - virtual bool isStreamActiveRemotely(audio_stream_type_t stream, - uint32_t inPastMs = 0) const { + virtual bool isStreamActiveRemotely(audio_stream_type_t stream, uint32_t inPastMs = 0) const + { return false; } virtual bool isSourceActive(audio_source_t source) const { return false; } virtual status_t queryDefaultPreProcessing(audio_session_t audioSession, - effect_descriptor_t *descriptors, - uint32_t *count) { + effect_descriptor_t *descriptors, uint32_t *count) + { return NO_ERROR; } - virtual status_t onTransact( - uint32_t code, - const Parcel& data, - Parcel* reply, - uint32_t flags) { + virtual status_t onTransact(uint32_t code, const Parcel &data, Parcel *reply, uint32_t flags) + { return NO_ERROR; } // IBinder::DeathRecipient - virtual void binderDied(const wp& who) { return; } + virtual void binderDied(const wp &who) { return; } // RefBase - virtual void onFirstRef() { return; } + virtual void onFirstRef() { return; } // // Helpers for the struct audio_policy_service_ops implementation. // This is used by the audio policy manager for certain operations that // are implemented by the policy service. // - virtual void setParameters(audio_io_handle_t ioHandle, - const char *keyValuePairs, - int delayMs) { + virtual void setParameters(audio_io_handle_t ioHandle, const char *keyValuePairs, int delayMs) + { return; } - virtual status_t setStreamVolume(audio_stream_type_t stream, - float volume, - audio_io_handle_t output, - int delayMs = 0) { + virtual status_t setStreamVolume(audio_stream_type_t stream, float volume, + audio_io_handle_t output, int delayMs = 0) + { return NO_ERROR; } - virtual status_t startTone(audio_policy_tone_t tone, audio_stream_type_t stream) { + virtual status_t startTone(audio_policy_tone_t tone, audio_stream_type_t stream) + { return NO_ERROR; } virtual status_t stopTone() { return NO_ERROR; } - virtual status_t setVoiceVolume(float volume, int delayMs = 0) { - return NO_ERROR; - } - virtual bool isOffloadSupported(const audio_offload_info_t &config) { - return false; - } - virtual status_t listAudioPorts(audio_port_role_t role, - audio_port_type_t type, - unsigned int *num_ports, - struct audio_port *ports, - unsigned int *generation) { - return NO_ERROR; - } - virtual status_t getAudioPort(struct audio_port *port) { - return NO_ERROR; - } - virtual status_t createAudioPatch(const struct audio_patch *patch, - audio_patch_handle_t *handle) { - return NO_ERROR; - } - virtual status_t releaseAudioPatch(audio_patch_handle_t handle) { + virtual status_t setVoiceVolume(float volume, int delayMs = 0) { return NO_ERROR; } + virtual bool isOffloadSupported(const audio_offload_info_t &config) { return false; } + virtual status_t listAudioPorts(audio_port_role_t role, audio_port_type_t type, + unsigned int *num_ports, struct audio_port *ports, + unsigned int *generation) + { return NO_ERROR; } - virtual status_t listAudioPatches(unsigned int *num_patches, - struct audio_patch *patches, - unsigned int *generation) { + virtual status_t getAudioPort(struct audio_port *port) { return NO_ERROR; } + virtual status_t createAudioPatch(const struct audio_patch *patch, audio_patch_handle_t *handle) + { return NO_ERROR; } - virtual status_t setAudioPortConfig(const struct audio_port_config *config) { + virtual status_t releaseAudioPatch(audio_patch_handle_t handle) { return NO_ERROR; } + virtual status_t listAudioPatches(unsigned int *num_patches, struct audio_patch *patches, + unsigned int *generation) + { return NO_ERROR; } - virtual void registerClient(const sp& client) { - return; - } + virtual status_t setAudioPortConfig(const struct audio_port_config *config) { return NO_ERROR; } + virtual void registerClient(const sp &client) { return; } virtual void setAudioPortCallbacksEnabled(bool enabled) { return; } virtual status_t acquireSoundTriggerSession(audio_session_t *session, - audio_io_handle_t *ioHandle, - audio_devices_t *device) { - return NO_ERROR; - } - virtual status_t releaseSoundTriggerSession(audio_session_t session) { + audio_io_handle_t *ioHandle, + audio_devices_t *device) + { return NO_ERROR; } - virtual audio_mode_t getPhoneState() { - return AUDIO_MODE_CURRENT; - } - virtual status_t registerPolicyMixes(const Vector& mixes, - bool registration) { + virtual status_t releaseSoundTriggerSession(audio_session_t session) { return NO_ERROR; } + virtual audio_mode_t getPhoneState() { return AUDIO_MODE_CURRENT; } + virtual status_t registerPolicyMixes(const Vector &mixes, bool registration) + { return NO_ERROR; } virtual status_t startAudioSource(const struct audio_port_config *source, const audio_attributes_t *attributes, - audio_patch_handle_t *handle) { + audio_patch_handle_t *handle) + { return NO_ERROR; } virtual status_t stopAudioSource(audio_patch_handle_t handle) { return NO_ERROR; } virtual status_t setMasterMono(bool mono) { return NO_ERROR; } virtual status_t getMasterMono(bool *mono) { return NO_ERROR; } - virtual float getStreamVolumeDB(audio_stream_type_t stream, - int index, audio_devices_t device) { + virtual float getStreamVolumeDB(audio_stream_type_t stream, int index, audio_devices_t device) + { return NO_ERROR; } - status_t doStopOutput(audio_io_handle_t output, - audio_stream_type_t stream, - audio_session_t session) { + status_t doStopOutput(audio_io_handle_t output, audio_stream_type_t stream, + audio_session_t session) + { return NO_ERROR; } - void doReleaseOutput(audio_io_handle_t output, - audio_stream_type_t stream, - audio_session_t session) { + void doReleaseOutput(audio_io_handle_t output, audio_stream_type_t stream, + audio_session_t session) + { return; } - status_t clientCreateAudioPatch(const struct audio_patch *patch, - audio_patch_handle_t *handle, - int delayMs) { - return NO_ERROR; - } - status_t clientReleaseAudioPatch(audio_patch_handle_t handle, - int delayMs) { + status_t clientCreateAudioPatch(const struct audio_patch *patch, audio_patch_handle_t *handle, + int delayMs) + { return NO_ERROR; } - virtual status_t clientSetAudioPortConfig(const struct audio_port_config *config, - int delayMs) { + status_t clientReleaseAudioPatch(audio_patch_handle_t handle, int delayMs) { return NO_ERROR; } + virtual status_t clientSetAudioPortConfig(const struct audio_port_config *config, int delayMs) + { return NO_ERROR; } void removeNotificationClient(uid_t uid) { return; } @@ -303,28 +263,26 @@ class FakeAudioPolicyService : void doOnAudioPortListUpdate() { return; } void onAudioPatchListUpdate() { return; } void doOnAudioPatchListUpdate() { return; } - void onDynamicPolicyMixStateUpdate(const String8& regId, int32_t state) { - return; - } - void doOnDynamicPolicyMixStateUpdate(const String8& regId, int32_t state) { - return; - } + void onDynamicPolicyMixStateUpdate(const String8 ®Id, int32_t state) { return; } + void doOnDynamicPolicyMixStateUpdate(const String8 ®Id, int32_t state) { return; } void onRecordingConfigurationUpdate(int event, const record_client_info_t *clientInfo, const audio_config_base_t *clientConfig, const audio_config_base_t *deviceConfig, - audio_patch_handle_t patchHandle) { + audio_patch_handle_t patchHandle) + { return; } void doOnRecordingConfigurationUpdate(int event, const record_client_info_t *clientInfo, const audio_config_base_t *clientConfig, const audio_config_base_t *deviceConfig, - audio_patch_handle_t patchHandle) { + audio_patch_handle_t patchHandle) + { return; } #ifdef AUDIOPOLICY_LINEAGE_AUDIOSESSIONINFO - status_t listAudioSessions(audio_stream_type_t streams, - Vector< sp> &sessions) { + status_t listAudioSessions(audio_stream_type_t streams, Vector> &sessions) + { return NO_ERROR; } #endif diff --git a/services/audiopolicy/audiopolicy_9_0_0.h b/services/audiopolicy/audiopolicy_9_0_0.h index 8a09880..db6a62c 100644 --- a/services/audiopolicy/audiopolicy_9_0_0.h +++ b/services/audiopolicy/audiopolicy_9_0_0.h @@ -38,10 +38,9 @@ using namespace std; // ---------------------------------------------------------------------------- -class FakeAudioPolicyService : - public BinderService, - public BnAudioPolicyService, - public IBinder::DeathRecipient +class FakeAudioPolicyService : public BinderService, + public BnAudioPolicyService, + public IBinder::DeathRecipient { friend class BinderService; @@ -49,7 +48,7 @@ class FakeAudioPolicyService : // for BinderService static const char *getServiceName() ANDROID_API { return "media.audio_policy"; } - virtual status_t dump(int fd, const Vector& args) { return NO_ERROR; } + virtual status_t dump(int fd, const Vector &args) { return NO_ERROR; } // // BnAudioPolicyService (see AudioPolicyInterface for method descriptions) @@ -57,258 +56,209 @@ class FakeAudioPolicyService : virtual status_t setDeviceConnectionState(audio_devices_t device, audio_policy_dev_state_t state, - const char *device_address, - const char *device_name) { + const char *device_address, const char *device_name) + { return NO_ERROR; } - virtual audio_policy_dev_state_t getDeviceConnectionState( - audio_devices_t device, - const char *device_address) { + virtual audio_policy_dev_state_t getDeviceConnectionState(audio_devices_t device, + const char *device_address) + { return AUDIO_POLICY_DEVICE_STATE_UNAVAILABLE; } - virtual status_t handleDeviceConfigChange(audio_devices_t device, - const char *device_address, - const char *device_name) { + virtual status_t handleDeviceConfigChange(audio_devices_t device, const char *device_address, + const char *device_name) + { return NO_ERROR; } - virtual status_t setPhoneState(audio_mode_t state) { + virtual status_t setPhoneState(audio_mode_t state) { return NO_ERROR; } + virtual status_t setForceUse(audio_policy_force_use_t usage, audio_policy_forced_cfg_t config) + { return NO_ERROR; } - virtual status_t setForceUse(audio_policy_force_use_t usage, - audio_policy_forced_cfg_t config) { - return NO_ERROR; - } - virtual audio_policy_forced_cfg_t getForceUse(audio_policy_force_use_t usage) { + virtual audio_policy_forced_cfg_t getForceUse(audio_policy_force_use_t usage) + { return AUDIO_POLICY_FORCE_NONE; } - virtual audio_io_handle_t getOutput(audio_stream_type_t stream) { - return AUDIO_IO_HANDLE_NONE; - } - virtual status_t getOutputForAttr(const audio_attributes_t *attr, - audio_io_handle_t *output, - audio_session_t session, - audio_stream_type_t *stream, - pid_t pid, - uid_t uid, - const audio_config_t *config, + virtual audio_io_handle_t getOutput(audio_stream_type_t stream) { return AUDIO_IO_HANDLE_NONE; } + virtual status_t getOutputForAttr(const audio_attributes_t *attr, audio_io_handle_t *output, + audio_session_t session, audio_stream_type_t *stream, + pid_t pid, uid_t uid, const audio_config_t *config, audio_output_flags_t flags, audio_port_handle_t *selectedDeviceId, - audio_port_handle_t *portId) { + audio_port_handle_t *portId) + { return NO_ERROR; } - virtual status_t startOutput(audio_io_handle_t output, - audio_stream_type_t stream, - audio_session_t session) { + virtual status_t startOutput(audio_io_handle_t output, audio_stream_type_t stream, + audio_session_t session) + { return NO_ERROR; } - virtual status_t stopOutput(audio_io_handle_t output, - audio_stream_type_t stream, - audio_session_t session) { + virtual status_t stopOutput(audio_io_handle_t output, audio_stream_type_t stream, + audio_session_t session) + { return NO_ERROR; } - virtual void releaseOutput(audio_io_handle_t output, - audio_stream_type_t stream, - audio_session_t session) { + virtual void releaseOutput(audio_io_handle_t output, audio_stream_type_t stream, + audio_session_t session) + { return; } - virtual status_t getInputForAttr(const audio_attributes_t *attr, - audio_io_handle_t *input, - audio_session_t session, - pid_t pid, - uid_t uid, - const String16& opPackageName, - const audio_config_base_t *config, - audio_input_flags_t flags, + virtual status_t getInputForAttr(const audio_attributes_t *attr, audio_io_handle_t *input, + audio_session_t session, pid_t pid, uid_t uid, + const String16 &opPackageName, + const audio_config_base_t *config, audio_input_flags_t flags, audio_port_handle_t *selectedDeviceId = NULL, - audio_port_handle_t *portId = NULL) { - return NO_ERROR; - } - virtual status_t startInput(audio_port_handle_t portId, - bool *silenced) { + audio_port_handle_t *portId = NULL) + { return NO_ERROR; } - virtual status_t stopInput(audio_port_handle_t portId) { + virtual status_t startInput(audio_port_handle_t portId, bool *silenced) { return NO_ERROR; } + virtual status_t stopInput(audio_port_handle_t portId) { return NO_ERROR; } + virtual void releaseInput(audio_port_handle_t portId) { return; } + virtual status_t initStreamVolume(audio_stream_type_t stream, int indexMin, int indexMax) + { return NO_ERROR; } - virtual void releaseInput(audio_port_handle_t portId) { - return; - } - virtual status_t initStreamVolume(audio_stream_type_t stream, - int indexMin, - int indexMax) { + virtual status_t setStreamVolumeIndex(audio_stream_type_t stream, int index, + audio_devices_t device) + { return NO_ERROR; } - virtual status_t setStreamVolumeIndex(audio_stream_type_t stream, - int index, - audio_devices_t device) { + virtual status_t getStreamVolumeIndex(audio_stream_type_t stream, int *index, + audio_devices_t device) + { return NO_ERROR; } - virtual status_t getStreamVolumeIndex(audio_stream_type_t stream, - int *index, - audio_devices_t device) { - return NO_ERROR; - } - virtual uint32_t getStrategyForStream(audio_stream_type_t stream) { - return 0; - } - virtual audio_devices_t getDevicesForStream(audio_stream_type_t stream) { + virtual uint32_t getStrategyForStream(audio_stream_type_t stream) { return 0; } + virtual audio_devices_t getDevicesForStream(audio_stream_type_t stream) + { return AUDIO_DEVICE_NONE; } - virtual audio_io_handle_t getOutputForEffect(const effect_descriptor_t *desc) { - return 0; - } - virtual status_t registerEffect(const effect_descriptor_t *desc, - audio_io_handle_t io, - uint32_t strategy, - audio_session_t session, - int id) { + virtual audio_io_handle_t getOutputForEffect(const effect_descriptor_t *desc) { return 0; } + virtual status_t registerEffect(const effect_descriptor_t *desc, audio_io_handle_t io, + uint32_t strategy, audio_session_t session, int id) + { return NO_ERROR; } virtual status_t unregisterEffect(int id) { return NO_ERROR; } virtual status_t setEffectEnabled(int id, bool enabled) { return NO_ERROR; } - virtual bool isStreamActive(audio_stream_type_t stream, - uint32_t inPastMs = 0) const { + virtual bool isStreamActive(audio_stream_type_t stream, uint32_t inPastMs = 0) const + { return false; } - virtual bool isStreamActiveRemotely(audio_stream_type_t stream, - uint32_t inPastMs = 0) const { + virtual bool isStreamActiveRemotely(audio_stream_type_t stream, uint32_t inPastMs = 0) const + { return false; } virtual bool isSourceActive(audio_source_t source) const { return false; } virtual status_t queryDefaultPreProcessing(audio_session_t audioSession, - effect_descriptor_t *descriptors, - uint32_t *count) { + effect_descriptor_t *descriptors, uint32_t *count) + { return NO_ERROR; } - virtual status_t onTransact(uint32_t code, - const Parcel& data, - Parcel* reply, - uint32_t flags) { + virtual status_t onTransact(uint32_t code, const Parcel &data, Parcel *reply, uint32_t flags) + { return NO_ERROR; } // IBinder::DeathRecipient - virtual void binderDied(const wp& who) { - return; - } + virtual void binderDied(const wp &who) { return; } // RefBase - virtual void onFirstRef() { - return; - } + virtual void onFirstRef() { return; } // // Helpers for the struct audio_policy_service_ops implementation. // This is used by the audio policy manager for certain operations that // are implemented by the policy service. // - virtual void setParameters(audio_io_handle_t ioHandle, - const char *keyValuePairs, - int delayMs) { + virtual void setParameters(audio_io_handle_t ioHandle, const char *keyValuePairs, int delayMs) + { return; } - virtual status_t setStreamVolume(audio_stream_type_t stream, - float volume, - audio_io_handle_t output, - int delayMs = 0) { + virtual status_t setStreamVolume(audio_stream_type_t stream, float volume, + audio_io_handle_t output, int delayMs = 0) + { return NO_ERROR; } - virtual status_t startTone(audio_policy_tone_t tone, audio_stream_type_t stream) { + virtual status_t startTone(audio_policy_tone_t tone, audio_stream_type_t stream) + { return NO_ERROR; } virtual status_t stopTone() { return NO_ERROR; } - virtual status_t setVoiceVolume(float volume, int delayMs = 0) { - return NO_ERROR; - } - virtual bool isOffloadSupported(const audio_offload_info_t &config) { - return false; - } - virtual status_t listAudioPorts(audio_port_role_t role, - audio_port_type_t type, - unsigned int *num_ports, - struct audio_port *ports, - unsigned int *generation) { - return NO_ERROR; - } - virtual status_t getAudioPort(struct audio_port *port) { - return NO_ERROR; - } - virtual status_t createAudioPatch(const struct audio_patch *patch, - audio_patch_handle_t *handle) { + virtual status_t setVoiceVolume(float volume, int delayMs = 0) { return NO_ERROR; } + virtual bool isOffloadSupported(const audio_offload_info_t &config) { return false; } + virtual status_t listAudioPorts(audio_port_role_t role, audio_port_type_t type, + unsigned int *num_ports, struct audio_port *ports, + unsigned int *generation) + { return NO_ERROR; } - virtual status_t releaseAudioPatch(audio_patch_handle_t handle) { + virtual status_t getAudioPort(struct audio_port *port) { return NO_ERROR; } + virtual status_t createAudioPatch(const struct audio_patch *patch, audio_patch_handle_t *handle) + { return NO_ERROR; } - virtual status_t listAudioPatches(unsigned int *num_patches, - struct audio_patch *patches, - unsigned int *generation) { + virtual status_t releaseAudioPatch(audio_patch_handle_t handle) { return NO_ERROR; } + virtual status_t listAudioPatches(unsigned int *num_patches, struct audio_patch *patches, + unsigned int *generation) + { return NO_ERROR; } - virtual status_t setAudioPortConfig(const struct audio_port_config *config) { - return NO_ERROR; - } - virtual void registerClient(const sp& client) { - return; - } + virtual status_t setAudioPortConfig(const struct audio_port_config *config) { return NO_ERROR; } + virtual void registerClient(const sp &client) { return; } virtual void setAudioPortCallbacksEnabled(bool enabled) { return; } virtual status_t acquireSoundTriggerSession(audio_session_t *session, audio_io_handle_t *ioHandle, - audio_devices_t *device) { - return NO_ERROR; - } - virtual status_t releaseSoundTriggerSession(audio_session_t session) { + audio_devices_t *device) + { return NO_ERROR; } - virtual audio_mode_t getPhoneState() { - return AUDIO_MODE_CURRENT; - } - virtual status_t registerPolicyMixes(const Vector& mixes, - bool registration) { + virtual status_t releaseSoundTriggerSession(audio_session_t session) { return NO_ERROR; } + virtual audio_mode_t getPhoneState() { return AUDIO_MODE_CURRENT; } + virtual status_t registerPolicyMixes(const Vector &mixes, bool registration) + { return NO_ERROR; } virtual status_t startAudioSource(const struct audio_port_config *source, const audio_attributes_t *attributes, - audio_patch_handle_t *handle) { - return NO_ERROR; - } - virtual status_t stopAudioSource(audio_patch_handle_t handle) { + audio_patch_handle_t *handle) + { return NO_ERROR; } + virtual status_t stopAudioSource(audio_patch_handle_t handle) { return NO_ERROR; } virtual status_t setMasterMono(bool mono) { return NO_ERROR; } virtual status_t getMasterMono(bool *mono) { return NO_ERROR; } - virtual float getStreamVolumeDB(audio_stream_type_t stream, - int index, audio_devices_t device) { + virtual float getStreamVolumeDB(audio_stream_type_t stream, int index, audio_devices_t device) + { return 0; } virtual status_t getSurroundFormats(unsigned int *numSurroundFormats, audio_format_t *surroundFormats, - bool *surroundFormatsEnabled, - bool reported) { + bool *surroundFormatsEnabled, bool reported) + { return NO_ERROR; } - virtual status_t setSurroundFormatEnabled(audio_format_t audioFormat, - bool enabled) { + virtual status_t setSurroundFormatEnabled(audio_format_t audioFormat, bool enabled) + { return NO_ERROR; } - status_t doStopOutput(audio_io_handle_t output, - audio_stream_type_t stream, - audio_session_t session) { + status_t doStopOutput(audio_io_handle_t output, audio_stream_type_t stream, + audio_session_t session) + { return NO_ERROR; } - void doReleaseOutput(audio_io_handle_t output, - audio_stream_type_t stream, - audio_session_t session) { + void doReleaseOutput(audio_io_handle_t output, audio_stream_type_t stream, + audio_session_t session) + { return; } - status_t clientCreateAudioPatch(const struct audio_patch *patch, - audio_patch_handle_t *handle, - int delayMs) { - return NO_ERROR; - } - status_t clientReleaseAudioPatch(audio_patch_handle_t handle, - int delayMs) { + status_t clientCreateAudioPatch(const struct audio_patch *patch, audio_patch_handle_t *handle, + int delayMs) + { return NO_ERROR; } - virtual status_t clientSetAudioPortConfig(const struct audio_port_config *config, - int delayMs) { + status_t clientReleaseAudioPatch(audio_patch_handle_t handle, int delayMs) { return NO_ERROR; } + virtual status_t clientSetAudioPortConfig(const struct audio_port_config *config, int delayMs) + { return NO_ERROR; } void removeNotificationClient(uid_t uid) { return; } @@ -316,30 +266,26 @@ class FakeAudioPolicyService : void doOnAudioPortListUpdate() { return; } void onAudioPatchListUpdate() { return; } void doOnAudioPatchListUpdate() { return; } - void onDynamicPolicyMixStateUpdate(const String8& regId, int32_t state) { - return; - } - void doOnDynamicPolicyMixStateUpdate(const String8& regId, int32_t state) { - return; - } - void onRecordingConfigurationUpdate(int event, - const record_client_info_t *clientInfo, + void onDynamicPolicyMixStateUpdate(const String8 ®Id, int32_t state) { return; } + void doOnDynamicPolicyMixStateUpdate(const String8 ®Id, int32_t state) { return; } + void onRecordingConfigurationUpdate(int event, const record_client_info_t *clientInfo, const audio_config_base_t *clientConfig, const audio_config_base_t *deviceConfig, - audio_patch_handle_t patchHandle) { + audio_patch_handle_t patchHandle) + { return; } - void doOnRecordingConfigurationUpdate(int event, - const record_client_info_t *clientInfo, + void doOnRecordingConfigurationUpdate(int event, const record_client_info_t *clientInfo, const audio_config_base_t *clientConfig, const audio_config_base_t *deviceConfig, - audio_patch_handle_t patchHandle) { + audio_patch_handle_t patchHandle) + { return; } #ifdef AUDIOPOLICY_LINEAGE_AUDIOSESSIONINFO - status_t listAudioSessions(audio_stream_type_t streams, - Vector< sp> &sessions) { + status_t listAudioSessions(audio_stream_type_t streams, Vector> &sessions) + { return NO_ERROR; } #endif diff --git a/services/services.h b/services/services.h index fbc913d..375df47 100644 --- a/services/services.h +++ b/services/services.h @@ -17,60 +17,60 @@ #ifdef USE_SERVICES_VENDOR_EXTENSION -#if ANDROID_MAJOR == 5 && ANDROID_MINOR == 1 -#include "services_5_1_0_custom.h" -#else -#error "No droidmedia vendor extension defined for this Android version." -#endif +# if ANDROID_MAJOR == 5 && ANDROID_MINOR == 1 +# include "services_5_1_0_custom.h" +# else +# error "No droidmedia vendor extension defined for this Android version." +# endif #else -#if ANDROID_MAJOR == 4 && ANDROID_MINOR == 1 && ANDROID_MICRO == 2 -#include "services_4_1_2.h" -#endif +# if ANDROID_MAJOR == 4 && ANDROID_MINOR == 1 && ANDROID_MICRO == 2 +# include "services_4_1_2.h" +# endif -#if ANDROID_MAJOR == 4 && ANDROID_MINOR == 2 && ANDROID_MICRO == 2 -#include "services_4_2_2.h" -#endif +# if ANDROID_MAJOR == 4 && ANDROID_MINOR == 2 && ANDROID_MICRO == 2 +# include "services_4_2_2.h" +# endif -#if ANDROID_MAJOR == 4 && ANDROID_MINOR == 4 && ANDROID_MICRO == 4 -#include "services_4_4_4.h" -#endif +# if ANDROID_MAJOR == 4 && ANDROID_MINOR == 4 && ANDROID_MICRO == 4 +# include "services_4_4_4.h" +# endif -#if ANDROID_MAJOR == 5 && ANDROID_MINOR == 1 -#include "services_5_1_0.h" -#endif +# if ANDROID_MAJOR == 5 && ANDROID_MINOR == 1 +# include "services_5_1_0.h" +# endif -#if ANDROID_MAJOR == 6 && ANDROID_MINOR == 0 -#include "services_6_0_0.h" -#endif +# if ANDROID_MAJOR == 6 && ANDROID_MINOR == 0 +# include "services_6_0_0.h" +# endif -#if ANDROID_MAJOR == 7 && ANDROID_MINOR == 0 -#include "services_7_0_0.h" -#endif +# if ANDROID_MAJOR == 7 && ANDROID_MINOR == 0 +# include "services_7_0_0.h" +# endif -#if ANDROID_MAJOR == 7 && ANDROID_MINOR == 1 -#include "services_7_1_0.h" -#endif +# if ANDROID_MAJOR == 7 && ANDROID_MINOR == 1 +# include "services_7_1_0.h" +# endif -#if ANDROID_MAJOR == 8 && ANDROID_MINOR == 1 -#include "services_8_1_0.h" -#endif +# if ANDROID_MAJOR == 8 && ANDROID_MINOR == 1 +# include "services_8_1_0.h" +# endif -#if ANDROID_MAJOR == 9 -#include "services_9_0_0.h" -#endif +# if ANDROID_MAJOR == 9 +# include "services_9_0_0.h" +# endif -#if ANDROID_MAJOR == 10 -#include "services_10_0_0.h" -#endif +# if ANDROID_MAJOR == 10 +# include "services_10_0_0.h" +# endif -#if ANDROID_MAJOR == 11 -#include "services_11_0_0.h" -#endif +# if ANDROID_MAJOR == 11 +# include "services_11_0_0.h" +# endif -#if ANDROID_MAJOR == 13 -#include "services_13_0_0.h" -#endif +# if ANDROID_MAJOR == 13 +# include "services_13_0_0.h" +# endif #endif diff --git a/services/services_10_0_0.h b/services/services_10_0_0.h index 58755af..84d5891 100644 --- a/services/services_10_0_0.h +++ b/services/services_10_0_0.h @@ -24,75 +24,63 @@ class FakeSensorEventConnection : public android::BnSensorEventConnection { android::sp mChannel; + public: - FakeSensorEventConnection() { - mChannel = new android::BitTube(0); - } + FakeSensorEventConnection() { mChannel = new android::BitTube(0); } - android::sp getSensorChannel() const { - return mChannel; - } + android::sp getSensorChannel() const { return mChannel; } - android::status_t enableDisable(int, bool, nsecs_t, - nsecs_t, int) { - return 0; - } + android::status_t enableDisable(int, bool, nsecs_t, nsecs_t, int) { return 0; } - android::status_t setEventRate(int, nsecs_t) { - return 0; - } + android::status_t setEventRate(int, nsecs_t) { return 0; } - android::status_t flush() { - return 0; - } + android::status_t flush() { return 0; } - virtual int32_t configureChannel(int32_t, int32_t) { - return 0; - } + virtual int32_t configureChannel(int32_t, int32_t) { return 0; } protected: - void destroy() { - } - + void destroy() { } }; class FakeSensorServer : public android::BinderService, public android::BnSensorServer { public: - static char const *getServiceName() { - return "sensorservice"; - } + static char const *getServiceName() { return "sensorservice"; } - android::Vector getSensorList(const android::String16&) { + android::Vector getSensorList(const android::String16 &) + { return android::Vector(); } - android::Vector getDynamicSensorList(const android::String16&) { + android::Vector getDynamicSensorList(const android::String16 &) + { return android::Vector(); } - android::sp createSensorEventConnection( - const android::String8&, int, const android::String16&) { + android::sp + createSensorEventConnection(const android::String8 &, int, const android::String16 &) + { return android::sp(new FakeSensorEventConnection); } - android::sp createSensorDirectConnection( - const android::String16&, uint32_t, int32_t, int32_t, const native_handle_t *) { + android::sp + createSensorDirectConnection(const android::String16 &, uint32_t, int32_t, int32_t, + const native_handle_t *) + { return android::sp(new FakeSensorEventConnection); } - int setOperationParameter( - int32_t, int32_t, const android::Vector &, const android::Vector &) { + int setOperationParameter(int32_t, int32_t, const android::Vector &, + const android::Vector &) + { return 0; } - int32_t isDataInjectionEnabled() { - return 0; - } + int32_t isDataInjectionEnabled() { return 0; } - virtual android::status_t shellCommand(int, int, int, - android::Vector&) { + virtual android::status_t shellCommand(int, int, int, android::Vector &) + { return 0; } }; @@ -102,64 +90,72 @@ class FakeSensorServer : public android::BinderService, #include #include -class FakeEventQueue : - public android::frameworks::sensorservice::V1_0::IEventQueue +class FakeEventQueue : public android::frameworks::sensorservice::V1_0::IEventQueue { public: - FakeEventQueue() {} + FakeEventQueue() { } - android::hardware::Return enableSensor( - int32_t sensorHandle, int32_t samplingPeriodUs, int64_t maxBatchReportLatencyUs) { + android::hardware::Return + enableSensor(int32_t sensorHandle, int32_t samplingPeriodUs, int64_t maxBatchReportLatencyUs) + { return android::frameworks::sensorservice::V1_0::Result::BAD_VALUE; } - android::hardware::Return disableSensor( - int32_t sensorHandle) { + android::hardware::Return + disableSensor(int32_t sensorHandle) + { return android::frameworks::sensorservice::V1_0::Result::BAD_VALUE; } }; -class FakeSensorManager : - public android::frameworks::sensorservice::V1_0::ISensorManager +class FakeSensorManager : public android::frameworks::sensorservice::V1_0::ISensorManager { - // Methods from ::android::frameworks::sensorservice::V1_0::ISensorManager follow. - android::hardware::Return getSensorList(getSensorList_cb _hidl_cb) { + // Methods from ::android::frameworks::sensorservice::V1_0::ISensorManager + // follow. + android::hardware::Return getSensorList(getSensorList_cb _hidl_cb) + { android::hardware::hidl_vec<::android::hardware::sensors::V1_0::SensorInfo> ret; _hidl_cb(ret, android::frameworks::sensorservice::V1_0::Result::OK); return android::hardware::Void(); } - android::hardware::Return getDefaultSensor( - android::hardware::sensors::V1_0::SensorType type, - getDefaultSensor_cb _hidl_cb) { + android::hardware::Return + getDefaultSensor(android::hardware::sensors::V1_0::SensorType type, + getDefaultSensor_cb _hidl_cb) + { _hidl_cb({}, android::frameworks::sensorservice::V1_0::Result::NOT_EXIST); return android::hardware::Void(); } - android::hardware::Return createAshmemDirectChannel( - const android::hardware::hidl_memory& mem, uint64_t size, - createAshmemDirectChannel_cb _hidl_cb) { + android::hardware::Return + createAshmemDirectChannel(const android::hardware::hidl_memory &mem, uint64_t size, + createAshmemDirectChannel_cb _hidl_cb) + { _hidl_cb(nullptr, android::frameworks::sensorservice::V1_0::Result::BAD_VALUE); return android::hardware::Void(); } - android::hardware::Return createGrallocDirectChannel( - const android::hardware::hidl_handle& buffer, uint64_t size, - createGrallocDirectChannel_cb _hidl_cb) { + android::hardware::Return + createGrallocDirectChannel(const android::hardware::hidl_handle &buffer, uint64_t size, + createGrallocDirectChannel_cb _hidl_cb) + { _hidl_cb(nullptr, android::frameworks::sensorservice::V1_0::Result::UNKNOWN_ERROR); return android::hardware::Void(); } android::hardware::Return createEventQueue( - const android::sp &callback, - createEventQueue_cb _hidl_cb) { + const android::sp + &callback, + createEventQueue_cb _hidl_cb) + { if (callback == nullptr) { _hidl_cb(nullptr, android::frameworks::sensorservice::V1_0::Result::BAD_VALUE); return android::hardware::Void(); } - android::sp queue = new FakeEventQueue(); + android::sp queue = + new FakeEventQueue(); _hidl_cb(queue, android::frameworks::sensorservice::V1_0::Result::OK); return android::hardware::Void(); @@ -180,215 +176,179 @@ class MiniSurfaceFlinger : public BinderService, public IBinder::DeathRecipient { public: - static char const *getServiceName() { - return "SurfaceFlinger"; - } + static char const *getServiceName() { return "SurfaceFlinger"; } - void binderDied(const wp&) { + void binderDied(const wp &) + { // Nothing } - sp createConnection() { - return sp(); - } + sp createConnection() { return sp(); } - sp createScopedConnection( - const sp&) { + sp createScopedConnection(const sp &) + { return sp(); } - sp createDisplayEventConnection( - VsyncSource, ConfigChanged) { + sp createDisplayEventConnection(VsyncSource, ConfigChanged) + { return sp(); } - sp createDisplayEventConnection( - VsyncSource) { + sp createDisplayEventConnection(VsyncSource) + { return sp(); } + sp createDisplay(const String8 &, bool) { return NULL; } - sp createDisplay(const String8&, bool) { - return NULL; - } - - void destroyDisplay(const sp&) { + void destroyDisplay(const sp &) + { // Nothing } - virtual sp getBuiltInDisplay(int32_t) { - return NULL; - } + virtual sp getBuiltInDisplay(int32_t) { return NULL; } - sp getPhysicalDisplayToken(PhysicalDisplayId displayId) const{ - return NULL; - } + sp getPhysicalDisplayToken(PhysicalDisplayId displayId) const { return NULL; } - status_t getDisplayNativePrimaries(const sp& display, ui::DisplayPrimaries&) { + status_t getDisplayNativePrimaries(const sp &display, ui::DisplayPrimaries &) + { return BAD_VALUE; } - status_t getColorManagement(bool* outGetColorManagement) const{ - return BAD_VALUE; - } + status_t getColorManagement(bool *outGetColorManagement) const { return BAD_VALUE; } - void setTransactionState(const Vector&, const Vector&, uint32_t, const sp&, - const InputWindowCommands&, int64_t, const client_cache_t&, const std::vector&) { + void setTransactionState(const Vector &, const Vector &, uint32_t, + const sp &, const InputWindowCommands &, int64_t, + const client_cache_t &, const std::vector &) + { // Nothing } - void bootFinished() { - // Nothing - } - - bool authenticateSurfaceTexture(const sp&) const { - return true; + void bootFinished() + { + // Nothing } - void setPowerMode(const sp&, int) { + bool authenticateSurfaceTexture(const sp &) const { return true; } - } + void setPowerMode(const sp &, int) { } - status_t getDisplayConfigs(const sp&, Vector*) { - return BAD_VALUE; - } + status_t getDisplayConfigs(const sp &, Vector *) { return BAD_VALUE; } - status_t getDisplayStats(const sp&, DisplayStatInfo*) { - return BAD_VALUE; - } + status_t getDisplayStats(const sp &, DisplayStatInfo *) { return BAD_VALUE; } - status_t getDisplayViewport(const sp&, Rect*) { - return 0; - } + status_t getDisplayViewport(const sp &, Rect *) { return 0; } - int getActiveConfig(const sp&) { - return 0; - } + int getActiveConfig(const sp &) { return 0; } - status_t setActiveConfig(const sp&, int) { - return BAD_VALUE; - } + status_t setActiveConfig(const sp &, int) { return BAD_VALUE; } - status_t clearAnimationFrameStats() { - return BAD_VALUE; - } + status_t clearAnimationFrameStats() { return BAD_VALUE; } - status_t getAnimationFrameStats(FrameStats*) const { - return BAD_VALUE; - } + status_t getAnimationFrameStats(FrameStats *) const { return BAD_VALUE; } - status_t getDisplayColorModes(const sp&, - Vector*) { + status_t getDisplayColorModes(const sp &, Vector *) + { return BAD_VALUE; } - ui::ColorMode getActiveColorMode(const sp&) { + ui::ColorMode getActiveColorMode(const sp &) + { return static_cast(HAL_COLOR_MODE_NATIVE); } - status_t setActiveColorMode(const sp&, ui::ColorMode) { - return BAD_VALUE; - } + status_t setActiveColorMode(const sp &, ui::ColorMode) { return BAD_VALUE; } - status_t getHdrCapabilities(const sp&, HdrCapabilities*) const { - return BAD_VALUE; - } + status_t getHdrCapabilities(const sp &, HdrCapabilities *) const { return BAD_VALUE; } - status_t captureScreen(const sp&, sp*, bool&, const ui::Dataspace, const ui::PixelFormat, Rect, - uint32_t, uint32_t, bool, Rotation, bool) { + status_t captureScreen(const sp &, sp *, bool &, const ui::Dataspace, + const ui::PixelFormat, Rect, uint32_t, uint32_t, bool, Rotation, bool) + { return BAD_VALUE; } - status_t captureScreen(const sp&, sp*, Rect, uint32_t, uint32_t, bool, Rotation) { + status_t captureScreen(const sp &, sp *, Rect, uint32_t, uint32_t, bool, + Rotation) + { return BAD_VALUE; } - status_t captureScreen(uint64_t, ui::Dataspace*, sp*) { - return BAD_VALUE; - } + status_t captureScreen(uint64_t, ui::Dataspace *, sp *) { return BAD_VALUE; } - status_t captureLayers(const sp&, sp*, const ui::Dataspace, const ui::PixelFormat, - const Rect&, const std::unordered_set, SpHash>&, float, bool) { + status_t captureLayers(const sp &, sp *, const ui::Dataspace, + const ui::PixelFormat, const Rect &, + const std::unordered_set, SpHash> &, float, bool) + { return 0; } - status_t getSupportedFrameTimestamps( - std::vector*) const { - return BAD_VALUE; - } + status_t getSupportedFrameTimestamps(std::vector *) const { return BAD_VALUE; } - status_t enableVSyncInjections(bool) { - return BAD_VALUE; - } + status_t enableVSyncInjections(bool) { return BAD_VALUE; } - status_t injectVSync(nsecs_t) { - return BAD_VALUE; - } + status_t injectVSync(nsecs_t) { return BAD_VALUE; } - status_t getLayerDebugInfo(std::vector*) { - return 0; - } + status_t getLayerDebugInfo(std::vector *) { return 0; } - status_t getLayerDebugInfo(std::vector*) const { - return 0; - } + status_t getLayerDebugInfo(std::vector *) const { return 0; } - std::vector getPhysicalDisplayIds() const { + std::vector getPhysicalDisplayIds() const + { return std::vector(); } - status_t getCompositionPreference(ui::Dataspace*, ui::PixelFormat*,ui::Dataspace*, ui::PixelFormat*) const { + status_t getCompositionPreference(ui::Dataspace *, ui::PixelFormat *, ui::Dataspace *, + ui::PixelFormat *) const + { return BAD_VALUE; } - status_t getDisplayedContentSamplingAttributes(const sp& display, ui::PixelFormat*, - ui::Dataspace*, uint8_t*) const { + status_t getDisplayedContentSamplingAttributes(const sp &display, ui::PixelFormat *, + ui::Dataspace *, uint8_t *) const + { return BAD_VALUE; } - status_t setDisplayContentSamplingEnabled(const sp&, bool,uint8_t, uint64_t maxFrames) const { + status_t setDisplayContentSamplingEnabled(const sp &, bool, uint8_t, + uint64_t maxFrames) const + { return BAD_VALUE; } - status_t getDisplayedContentSample(const sp&, uint64_t, uint64_t,DisplayedFrameStats*) const { + status_t getDisplayedContentSample(const sp &, uint64_t, uint64_t, + DisplayedFrameStats *) const + { return BAD_VALUE; } - status_t getProtectedContentSupport(bool* outSupported) const { - return BAD_VALUE; - } + status_t getProtectedContentSupport(bool *outSupported) const { return BAD_VALUE; } - status_t isWideColorDisplay(const sp&, bool*) const { - return BAD_VALUE; - } + status_t isWideColorDisplay(const sp &, bool *) const { return BAD_VALUE; } - status_t addRegionSamplingListener(const Rect&, const sp&, const sp&) { + status_t addRegionSamplingListener(const Rect &, const sp &, + const sp &) + { return BAD_VALUE; } - status_t removeRegionSamplingListener(const sp&) { - return BAD_VALUE; - } + status_t removeRegionSamplingListener(const sp &) { return BAD_VALUE; } - status_t setAllowedDisplayConfigs(const sp&, const std::vector&) { + status_t setAllowedDisplayConfigs(const sp &, const std::vector &) + { return BAD_VALUE; } - status_t getAllowedDisplayConfigs(const sp&, std::vector*) { + status_t getAllowedDisplayConfigs(const sp &, std::vector *) + { return BAD_VALUE; } - status_t getDisplayBrightnessSupport(const sp&, bool*) const { - return BAD_VALUE; - } + status_t getDisplayBrightnessSupport(const sp &, bool *) const { return BAD_VALUE; } - status_t setDisplayBrightness(const sp&,float) const { - return BAD_VALUE; - } + status_t setDisplayBrightness(const sp &, float) const { return BAD_VALUE; } - status_t notifyPowerHint(int32_t) { - return BAD_VALUE; - } + status_t notifyPowerHint(int32_t) { return BAD_VALUE; } }; #include @@ -397,12 +357,10 @@ class FakePermissionController : public BinderService, public BnPermissionController { public: - static char const *getServiceName() { - return "permission"; - } + static char const *getServiceName() { return "permission"; } - - bool checkPermission(const String16& permission, int32_t, int32_t) { + bool checkPermission(const String16 &permission, int32_t, int32_t) + { if (permission == String16("android.permission.CAMERA")) { return true; } @@ -410,161 +368,152 @@ class FakePermissionController : public BinderService, return false; } - int32_t noteOp(const String16&, int32_t, const String16&) { - return 0; - } + int32_t noteOp(const String16 &, int32_t, const String16 &) { return 0; } - void getPackagesForUid(const uid_t, Vector &) { - } + void getPackagesForUid(const uid_t, Vector &) { } - bool isRuntimePermission(const String16&) { - return false; - } + bool isRuntimePermission(const String16 &) { return false; } - int getPackageUid(const String16&, int) { - return 0; - } + int getPackageUid(const String16 &, int) { return 0; } }; #include #include -class FakeAppOps : public BinderService, - public BnAppOpsService +class FakeAppOps : public BinderService, public BnAppOpsService { public: - static char const *getServiceName() { - return "appops"; - } - - virtual int32_t checkOperation(int32_t, int32_t, const String16&) { - return android::AppOpsManager::MODE_ALLOWED; - } - - virtual int32_t noteOperation(int32_t, int32_t, const String16&) { - return android::AppOpsManager::MODE_ALLOWED; - } - - virtual int32_t startOperation(const sp&, int32_t, int32_t, - const String16&, bool) { - return android::AppOpsManager::MODE_ALLOWED; - } - - virtual void finishOperation(const sp&, int32_t, int32_t, const String16&) { - // Nothing - } - - virtual void startWatchingMode(int32_t, const String16&, const sp&) { - // Nothing - } - - void stopWatchingMode(const sp&) { - // Nothing - } - - virtual sp getToken(const sp&) { - return NULL; - } - - virtual int32_t permissionToOpCode(const String16&) { - return 0; - } - - virtual int32_t checkAudioOperation(int32_t, int32_t, int32_t, const String16&) { - return 0; - } + static char const *getServiceName() { return "appops"; } + + virtual int32_t checkOperation(int32_t, int32_t, const String16 &) + { + return android::AppOpsManager::MODE_ALLOWED; + } + + virtual int32_t noteOperation(int32_t, int32_t, const String16 &) + { + return android::AppOpsManager::MODE_ALLOWED; + } + + virtual int32_t startOperation(const sp &, int32_t, int32_t, const String16 &, bool) + { + return android::AppOpsManager::MODE_ALLOWED; + } + + virtual void finishOperation(const sp &, int32_t, int32_t, const String16 &) + { + // Nothing + } + + virtual void startWatchingMode(int32_t, const String16 &, const sp &) + { + // Nothing + } + + void stopWatchingMode(const sp &) + { + // Nothing + } + + virtual sp getToken(const sp &) { return NULL; } + + virtual int32_t permissionToOpCode(const String16 &) { return 0; } + + virtual int32_t checkAudioOperation(int32_t, int32_t, int32_t, const String16 &) { return 0; } }; #include -class BnProcessInfoService : public BnInterface { +class BnProcessInfoService : public BnInterface +{ public: - virtual status_t onTransact( uint32_t code, - const Parcel& data, - Parcel* reply, - uint32_t flags = 0); + virtual status_t onTransact(uint32_t code, const Parcel &data, Parcel *reply, + uint32_t flags = 0); }; -status_t BnProcessInfoService::onTransact( uint32_t code, const Parcel& data, Parcel* reply, - uint32_t flags) { - switch(code) { - case GET_PROCESS_STATES_FROM_PIDS: { - CHECK_INTERFACE(IProcessInfoService, data, reply); - int32_t arrayLen = data.readInt32(); - if (arrayLen <= 0) { - reply->writeNoException(); - reply->writeInt32(0); - reply->writeInt32(NOT_ENOUGH_DATA); - return NO_ERROR; - } - - size_t len = static_cast(arrayLen); - int32_t pids[len]; - status_t res = data.read(pids, len * sizeof(*pids)); - - // Ignore output array length returned in the parcel here, as the states array must - // always be the same length as the input PIDs array. - int32_t states[len]; - for (size_t i = 0; i < len; i++) states[i] = -1; - if (res == NO_ERROR) { - res = getProcessStatesFromPids(len, /*in*/ pids, /*out*/ states); - } +status_t BnProcessInfoService::onTransact(uint32_t code, const Parcel &data, Parcel *reply, + uint32_t flags) +{ + switch (code) { + case GET_PROCESS_STATES_FROM_PIDS: { + CHECK_INTERFACE(IProcessInfoService, data, reply); + int32_t arrayLen = data.readInt32(); + if (arrayLen <= 0) { reply->writeNoException(); - reply->writeInt32Array(len, states); - reply->writeInt32(res); + reply->writeInt32(0); + reply->writeInt32(NOT_ENOUGH_DATA); return NO_ERROR; - } break; - case GET_PROCESS_STATES_AND_OOM_SCORES_FROM_PIDS: { - CHECK_INTERFACE(IProcessInfoService, data, reply); - int32_t arrayLen = data.readInt32(); - if (arrayLen <= 0) { - reply->writeNoException(); - reply->writeInt32(0); - reply->writeInt32(NOT_ENOUGH_DATA); - return NO_ERROR; - } - - size_t len = static_cast(arrayLen); - int32_t pids[len]; - status_t res = data.read(pids, len * sizeof(*pids)); - - // Ignore output array length returned in the parcel here, as the - // states array must always be the same length as the input PIDs array. - int32_t states[len]; - int32_t scores[len]; - for (size_t i = 0; i < len; i++) { - states[i] = -1; - scores[i] = -10000; - } - if (res == NO_ERROR) { - res = getProcessStatesAndOomScoresFromPids( - len, /*in*/ pids, /*out*/ states, /*out*/ scores); - } + } + + size_t len = static_cast(arrayLen); + int32_t pids[len]; + status_t res = data.read(pids, len * sizeof(*pids)); + + // Ignore output array length returned in the parcel here, as the states + // array must always be the same length as the input PIDs array. + int32_t states[len]; + for (size_t i = 0; i < len; i++) + states[i] = -1; + if (res == NO_ERROR) { + res = getProcessStatesFromPids(len, /*in*/ pids, /*out*/ states); + } + reply->writeNoException(); + reply->writeInt32Array(len, states); + reply->writeInt32(res); + return NO_ERROR; + } break; + case GET_PROCESS_STATES_AND_OOM_SCORES_FROM_PIDS: { + CHECK_INTERFACE(IProcessInfoService, data, reply); + int32_t arrayLen = data.readInt32(); + if (arrayLen <= 0) { reply->writeNoException(); - reply->writeInt32Array(len, states); - reply->writeInt32Array(len, scores); - reply->writeInt32(res); + reply->writeInt32(0); + reply->writeInt32(NOT_ENOUGH_DATA); return NO_ERROR; - } break; - default: - return BBinder::onTransact(code, data, reply, flags); + } + + size_t len = static_cast(arrayLen); + int32_t pids[len]; + status_t res = data.read(pids, len * sizeof(*pids)); + + // Ignore output array length returned in the parcel here, as the + // states array must always be the same length as the input PIDs array. + int32_t states[len]; + int32_t scores[len]; + for (size_t i = 0; i < len; i++) { + states[i] = -1; + scores[i] = -10000; + } + if (res == NO_ERROR) { + res = getProcessStatesAndOomScoresFromPids(len, /*in*/ pids, /*out*/ states, + /*out*/ scores); + } + reply->writeNoException(); + reply->writeInt32Array(len, states); + reply->writeInt32Array(len, scores); + reply->writeInt32(res); + return NO_ERROR; + } break; + default: + return BBinder::onTransact(code, data, reply, flags); } } class FakeProcessInfoService : public BinderService, - public BnProcessInfoService + public BnProcessInfoService { public: - static char const *getServiceName() { - return "processinfo"; - } + static char const *getServiceName() { return "processinfo"; } - status_t getProcessStatesFromPids(size_t length, int32_t* pids, int32_t* states) { - for (unsigned int i=0; i< length; i++) + status_t getProcessStatesFromPids(size_t length, int32_t *pids, int32_t *states) + { + for (unsigned int i = 0; i < length; i++) states[i] = 0; return 0; } - status_t getProcessStatesAndOomScoresFromPids( size_t length, int32_t* pids, int32_t* states, int32_t* scores) { - for (unsigned int i=0; i< length; i++) { + status_t getProcessStatesAndOomScoresFromPids(size_t length, int32_t *pids, int32_t *states, + int32_t *scores) + { + for (unsigned int i = 0; i < length; i++) { states[i] = 0; scores[i] = 0; } @@ -574,66 +523,54 @@ class FakeProcessInfoService : public BinderService, #include -class FakeBatteryStats : public BinderService, - public BnBatteryStats +class FakeBatteryStats : public BinderService, public BnBatteryStats { public: - static char const *getServiceName() { - return "batterystats"; - } - void noteStartSensor(int uid, int sensor) { } - void noteStopSensor(int uid, int sensor) { } - void noteStartVideo(int uid) { } - void noteStopVideo(int uid) { } - void noteStartAudio(int uid) { } - void noteStopAudio(int uid) { } - void noteResetVideo() { } - void noteResetAudio() { } - void noteFlashlightOn(int uid) { } - void noteFlashlightOff(int uid) { } - void noteStartCamera(int uid) { } - void noteStopCamera(int uid) { } - void noteResetCamera() { } - void noteResetFlashlight() { } + static char const *getServiceName() { return "batterystats"; } + void noteStartSensor(int uid, int sensor) { } + void noteStopSensor(int uid, int sensor) { } + void noteStartVideo(int uid) { } + void noteStopVideo(int uid) { } + void noteStartAudio(int uid) { } + void noteStopAudio(int uid) { } + void noteResetVideo() { } + void noteResetAudio() { } + void noteFlashlightOn(int uid) { } + void noteFlashlightOff(int uid) { } + void noteStartCamera(int uid) { } + void noteStopCamera(int uid) { } + void noteResetCamera() { } + void noteResetFlashlight() { } }; - #include #include #include #include class FakeResourceManagerService : public BinderService, - public BnResourceManagerService + public BnResourceManagerService { public: - static char const *getServiceName() { - return "media.resource_manager"; - } - void config(const Vector &) { - } + static char const *getServiceName() { return "media.resource_manager"; } + void config(const Vector &) { } void addResource(int, int, int64_t, const sp, - const Vector &) { + const Vector &) + { } - void addResource(int, int64_t, const sp, - const Vector &) { + void addResource(int, int64_t, const sp, const Vector &) + { } - void removeResource(int, int64_t, - const Vector &) { - } + void removeResource(int, int64_t, const Vector &) { } - void removeResource(int, int64_t) { - } + void removeResource(int, int64_t) { } - void removeClient(int, int64_t) { - } + void removeClient(int, int64_t) { } - bool reclaimResource(int, const Vector &) { - return true; - } + bool reclaimResource(int, const Vector &) { return true; } }; #include @@ -641,39 +578,28 @@ class FakeResourceManagerService : public BinderService { public: - virtual status_t onTransact( uint32_t code, - const Parcel& data, - Parcel* reply, - uint32_t flags = 0) { + virtual status_t onTransact(uint32_t code, const Parcel &data, Parcel *reply, + uint32_t flags = 0) + { return NO_ERROR; }; }; -class FakeActivityManager : public BinderService, - public BnFakeActivityManager +class FakeActivityManager : public BinderService, public BnFakeActivityManager { public: - static char const *getServiceName() { - return "activity"; - } - - virtual int openContentUri(const String16& stringUri) { - return 0; - }; - - virtual void registerUidObserver(const sp& observer, - const int32_t event, - const int32_t cutpoint, - const String16& callingPackage) { - }; - - virtual void unregisterUidObserver(const sp& observer) { - }; - - virtual bool isUidActive(const uid_t uid, const String16& callingPackage) { - return false; - }; - virtual int32_t getUidProcessState(const uid_t uid, const String16& callingPackage) { + static char const *getServiceName() { return "activity"; } + + virtual int openContentUri(const String16 &stringUri) { return 0; }; + + virtual void registerUidObserver(const sp &observer, const int32_t event, + const int32_t cutpoint, const String16 &callingPackage){}; + + virtual void unregisterUidObserver(const sp &observer){}; + + virtual bool isUidActive(const uid_t uid, const String16 &callingPackage) { return false; }; + virtual int32_t getUidProcessState(const uid_t uid, const String16 &callingPackage) + { return 0; } }; @@ -684,24 +610,28 @@ class FakeSensorPrivacyManager : public BinderService, public hardware::BnSensorPrivacyManager { public: - static char const *getServiceName() { - return "sensor_privacy"; - } + static char const *getServiceName() { return "sensor_privacy"; } - ::android::binder::Status addSensorPrivacyListener(const sp& listener) { + ::android::binder::Status + addSensorPrivacyListener(const sp &listener) + { return ::android::binder::Status::ok(); } - ::android::binder::Status removeSensorPrivacyListener(const sp& listener) { + ::android::binder::Status + removeSensorPrivacyListener(const sp &listener) + { return ::android::binder::Status::ok(); } - ::android::binder::Status isSensorPrivacyEnabled(bool *enabled) { + ::android::binder::Status isSensorPrivacyEnabled(bool *enabled) + { *enabled = false; return ::android::binder::Status::ok(); } - ::android::binder::Status setSensorPrivacy(bool enable) { + ::android::binder::Status setSensorPrivacy(bool enable) + { return ::android::binder::Status::ok(); } }; diff --git a/services/services_11_0_0.h b/services/services_11_0_0.h index 419f869..345fb65 100644 --- a/services/services_11_0_0.h +++ b/services/services_11_0_0.h @@ -24,74 +24,63 @@ class FakeSensorEventConnection : public android::BnSensorEventConnection { android::sp mChannel; + public: - FakeSensorEventConnection() { - mChannel = new android::BitTube(0); - } + FakeSensorEventConnection() { mChannel = new android::BitTube(0); } - android::sp getSensorChannel() const { - return mChannel; - } + android::sp getSensorChannel() const { return mChannel; } - android::status_t enableDisable(int, bool, nsecs_t, nsecs_t, int) { - return 0; - } + android::status_t enableDisable(int, bool, nsecs_t, nsecs_t, int) { return 0; } - android::status_t setEventRate(int, nsecs_t) { - return 0; - } + android::status_t setEventRate(int, nsecs_t) { return 0; } - android::status_t flush() { - return 0; - } + android::status_t flush() { return 0; } - virtual int32_t configureChannel(int32_t, int32_t) { - return 0; - } + virtual int32_t configureChannel(int32_t, int32_t) { return 0; } protected: - void destroy() { - } - + void destroy() { } }; class FakeSensorServer : public android::BinderService, public android::BnSensorServer { public: - static char const *getServiceName() { - return "sensorservice"; - } + static char const *getServiceName() { return "sensorservice"; } - android::Vector getSensorList(const android::String16&) { + android::Vector getSensorList(const android::String16 &) + { return android::Vector(); } - android::Vector getDynamicSensorList(const android::String16&) { + android::Vector getDynamicSensorList(const android::String16 &) + { return android::Vector(); } - android::sp createSensorEventConnection( - const android::String8&, int, const android::String16&) { + android::sp + createSensorEventConnection(const android::String8 &, int, const android::String16 &) + { return android::sp(new FakeSensorEventConnection); } - android::sp createSensorDirectConnection( - const android::String16&, uint32_t, int32_t, int32_t, const native_handle_t *) { + android::sp + createSensorDirectConnection(const android::String16 &, uint32_t, int32_t, int32_t, + const native_handle_t *) + { return android::sp(new FakeSensorEventConnection); } - int setOperationParameter( - int32_t, int32_t, const android::Vector &, const android::Vector &) { + int setOperationParameter(int32_t, int32_t, const android::Vector &, + const android::Vector &) + { return 0; } - int32_t isDataInjectionEnabled() { - return 0; - } + int32_t isDataInjectionEnabled() { return 0; } - android::status_t shellCommand(int, int, int, - android::Vector&) { + android::status_t shellCommand(int, int, int, android::Vector &) + { return 0; } }; @@ -101,64 +90,72 @@ class FakeSensorServer : public android::BinderService, #include #include -class FakeEventQueue : - public android::frameworks::sensorservice::V1_0::IEventQueue +class FakeEventQueue : public android::frameworks::sensorservice::V1_0::IEventQueue { public: - FakeEventQueue() {} + FakeEventQueue() { } - android::hardware::Return enableSensor( - int32_t sensorHandle, int32_t samplingPeriodUs, int64_t maxBatchReportLatencyUs) { + android::hardware::Return + enableSensor(int32_t sensorHandle, int32_t samplingPeriodUs, int64_t maxBatchReportLatencyUs) + { return android::frameworks::sensorservice::V1_0::Result::BAD_VALUE; } - android::hardware::Return disableSensor( - int32_t sensorHandle) { + android::hardware::Return + disableSensor(int32_t sensorHandle) + { return android::frameworks::sensorservice::V1_0::Result::BAD_VALUE; } }; -class FakeSensorManager : - public android::frameworks::sensorservice::V1_0::ISensorManager +class FakeSensorManager : public android::frameworks::sensorservice::V1_0::ISensorManager { - // Methods from ::android::frameworks::sensorservice::V1_0::ISensorManager follow. - android::hardware::Return getSensorList(getSensorList_cb _hidl_cb) { + // Methods from ::android::frameworks::sensorservice::V1_0::ISensorManager + // follow. + android::hardware::Return getSensorList(getSensorList_cb _hidl_cb) + { android::hardware::hidl_vec<::android::hardware::sensors::V1_0::SensorInfo> ret; _hidl_cb(ret, android::frameworks::sensorservice::V1_0::Result::OK); return android::hardware::Void(); } - android::hardware::Return getDefaultSensor( - android::hardware::sensors::V1_0::SensorType type, - getDefaultSensor_cb _hidl_cb) { + android::hardware::Return + getDefaultSensor(android::hardware::sensors::V1_0::SensorType type, + getDefaultSensor_cb _hidl_cb) + { _hidl_cb({}, android::frameworks::sensorservice::V1_0::Result::NOT_EXIST); return android::hardware::Void(); } - android::hardware::Return createAshmemDirectChannel( - const android::hardware::hidl_memory& mem, uint64_t size, - createAshmemDirectChannel_cb _hidl_cb) { + android::hardware::Return + createAshmemDirectChannel(const android::hardware::hidl_memory &mem, uint64_t size, + createAshmemDirectChannel_cb _hidl_cb) + { _hidl_cb(nullptr, android::frameworks::sensorservice::V1_0::Result::BAD_VALUE); return android::hardware::Void(); } - android::hardware::Return createGrallocDirectChannel( - const android::hardware::hidl_handle& buffer, uint64_t size, - createGrallocDirectChannel_cb _hidl_cb) { + android::hardware::Return + createGrallocDirectChannel(const android::hardware::hidl_handle &buffer, uint64_t size, + createGrallocDirectChannel_cb _hidl_cb) + { _hidl_cb(nullptr, android::frameworks::sensorservice::V1_0::Result::UNKNOWN_ERROR); return android::hardware::Void(); } android::hardware::Return createEventQueue( - const android::sp &callback, - createEventQueue_cb _hidl_cb) { + const android::sp + &callback, + createEventQueue_cb _hidl_cb) + { if (callback == nullptr) { _hidl_cb(nullptr, android::frameworks::sensorservice::V1_0::Result::BAD_VALUE); return android::hardware::Void(); } - android::sp queue = new FakeEventQueue(); + android::sp queue = + new FakeEventQueue(); _hidl_cb(queue, android::frameworks::sensorservice::V1_0::Result::OK); return android::hardware::Void(); @@ -178,253 +175,206 @@ class MiniSurfaceFlinger : public BinderService, public IBinder::DeathRecipient { public: - static char const *getServiceName() { - return "SurfaceFlinger"; - } + static char const *getServiceName() { return "SurfaceFlinger"; } - void binderDied(const wp&) { + void binderDied(const wp &) + { // Nothing } - sp createConnection() { - return sp(); - } + sp createConnection() { return sp(); } - sp createScopedConnection( - const sp&) { + sp createScopedConnection(const sp &) + { return sp(); } - sp createDisplayEventConnection( - VsyncSource, ConfigChanged) { + sp createDisplayEventConnection(VsyncSource, ConfigChanged) + { return sp(); } - sp createDisplay(const String8&, bool) { - return NULL; - } + sp createDisplay(const String8 &, bool) { return NULL; } - void destroyDisplay(const sp&) { + void destroyDisplay(const sp &) + { // Nothing } - virtual sp getBuiltInDisplay(int32_t) { - return NULL; - } + virtual sp getBuiltInDisplay(int32_t) { return NULL; } - sp getPhysicalDisplayToken(PhysicalDisplayId displayId) const{ - return NULL; - } + sp getPhysicalDisplayToken(PhysicalDisplayId displayId) const { return NULL; } - status_t getDisplayNativePrimaries(const sp& display, ui::DisplayPrimaries&) { + status_t getDisplayNativePrimaries(const sp &display, ui::DisplayPrimaries &) + { return BAD_VALUE; } - status_t getColorManagement(bool* outGetColorManagement) const{ - return BAD_VALUE; - } + status_t getColorManagement(bool *outGetColorManagement) const { return BAD_VALUE; } - void setTransactionState(const Vector&, const Vector&, uint32_t, const sp&, - const InputWindowCommands&, int64_t, const client_cache_t&, bool, - const std::vector&) { + void setTransactionState(const Vector &, const Vector &, uint32_t, + const sp &, const InputWindowCommands &, int64_t, + const client_cache_t &, bool, const std::vector &) + { // Nothing } - void bootFinished() { + void bootFinished() + { // Nothing } - bool authenticateSurfaceTexture(const sp&) const { - return true; - } - - void setPowerMode(const sp&, int) { + bool authenticateSurfaceTexture(const sp &) const { return true; } - } + void setPowerMode(const sp &, int) { } - status_t getDisplayState(const sp&, ui::DisplayState*) { - return BAD_VALUE; - } + status_t getDisplayState(const sp &, ui::DisplayState *) { return BAD_VALUE; } - status_t getDisplayInfo(const sp&, DisplayInfo*) { - return BAD_VALUE; - } + status_t getDisplayInfo(const sp &, DisplayInfo *) { return BAD_VALUE; } - status_t getDisplayConfigs(const sp&, Vector*) { - return BAD_VALUE; - } + status_t getDisplayConfigs(const sp &, Vector *) { return BAD_VALUE; } - status_t getDisplayStats(const sp&, DisplayStatInfo*) { - return BAD_VALUE; - } + status_t getDisplayStats(const sp &, DisplayStatInfo *) { return BAD_VALUE; } - status_t getDisplayViewport(const sp&, Rect*) { - return 0; - } + status_t getDisplayViewport(const sp &, Rect *) { return 0; } - int getActiveConfig(const sp&) { - return 0; - } + int getActiveConfig(const sp &) { return 0; } - status_t setActiveConfig(const sp&, int) { - return BAD_VALUE; - } + status_t setActiveConfig(const sp &, int) { return BAD_VALUE; } - status_t getAutoLowLatencyModeSupport(const sp&, - bool*) const { - return BAD_VALUE; - } + status_t getAutoLowLatencyModeSupport(const sp &, bool *) const { return BAD_VALUE; } - void setAutoLowLatencyMode(const sp&, bool) { - } + void setAutoLowLatencyMode(const sp &, bool) { } - status_t getGameContentTypeSupport(const sp&, bool*) const { - return BAD_VALUE; - } + status_t getGameContentTypeSupport(const sp &, bool *) const { return BAD_VALUE; } - void setGameContentType(const sp&, bool) { - } + void setGameContentType(const sp &, bool) { } - status_t clearAnimationFrameStats() { - return BAD_VALUE; - } + status_t clearAnimationFrameStats() { return BAD_VALUE; } - status_t getAnimationFrameStats(FrameStats*) const { - return BAD_VALUE; - } + status_t getAnimationFrameStats(FrameStats *) const { return BAD_VALUE; } - status_t getDisplayColorModes(const sp&, - Vector*) { + status_t getDisplayColorModes(const sp &, Vector *) + { return BAD_VALUE; } - ui::ColorMode getActiveColorMode(const sp&) { + ui::ColorMode getActiveColorMode(const sp &) + { return static_cast(HAL_COLOR_MODE_NATIVE); } - status_t setActiveColorMode(const sp&, ui::ColorMode) { - return BAD_VALUE; - } + status_t setActiveColorMode(const sp &, ui::ColorMode) { return BAD_VALUE; } - status_t getHdrCapabilities(const sp&, HdrCapabilities*) const { - return BAD_VALUE; - } + status_t getHdrCapabilities(const sp &, HdrCapabilities *) const { return BAD_VALUE; } - status_t captureScreen(const sp&, sp*, bool&, ui::Dataspace, ui::PixelFormat, const Rect&, - uint32_t, uint32_t, bool, ui::Rotation, bool) { + status_t captureScreen(const sp &, sp *, bool &, ui::Dataspace, + ui::PixelFormat, const Rect &, uint32_t, uint32_t, bool, ui::Rotation, + bool) + { return BAD_VALUE; } - status_t captureScreen(const sp&, sp*, const Rect&, uint32_t, uint32_t, bool, ui::Rotation) { + status_t captureScreen(const sp &, sp *, const Rect &, uint32_t, + uint32_t, bool, ui::Rotation) + { return BAD_VALUE; } - status_t captureScreen(uint64_t, ui::Dataspace*, sp*) { - return BAD_VALUE; - } + status_t captureScreen(uint64_t, ui::Dataspace *, sp *) { return BAD_VALUE; } - status_t captureLayers(const sp&, sp*, const ui::Dataspace, const ui::PixelFormat, - const Rect&, const std::unordered_set, SpHash>&, float, bool) { + status_t captureLayers(const sp &, sp *, const ui::Dataspace, + const ui::PixelFormat, const Rect &, + const std::unordered_set, SpHash> &, float, bool) + { return 0; } - status_t getSupportedFrameTimestamps( - std::vector*) const { - return BAD_VALUE; - } + status_t getSupportedFrameTimestamps(std::vector *) const { return BAD_VALUE; } - status_t enableVSyncInjections(bool) { - return BAD_VALUE; - } + status_t enableVSyncInjections(bool) { return BAD_VALUE; } - status_t injectVSync(nsecs_t) { - return BAD_VALUE; - } + status_t injectVSync(nsecs_t) { return BAD_VALUE; } - status_t getLayerDebugInfo(std::vector*) { - return 0; - } + status_t getLayerDebugInfo(std::vector *) { return 0; } - status_t getLayerDebugInfo(std::vector*) const { - return 0; - } + status_t getLayerDebugInfo(std::vector *) const { return 0; } - std::vector getPhysicalDisplayIds() const { + std::vector getPhysicalDisplayIds() const + { return std::vector(); } - status_t getCompositionPreference(ui::Dataspace*, ui::PixelFormat*,ui::Dataspace*, ui::PixelFormat*) const { + status_t getCompositionPreference(ui::Dataspace *, ui::PixelFormat *, ui::Dataspace *, + ui::PixelFormat *) const + { return BAD_VALUE; } - status_t getDisplayedContentSamplingAttributes(const sp& display, ui::PixelFormat*, - ui::Dataspace*, uint8_t*) const { + status_t getDisplayedContentSamplingAttributes(const sp &display, ui::PixelFormat *, + ui::Dataspace *, uint8_t *) const + { return BAD_VALUE; } - status_t setDisplayContentSamplingEnabled(const sp&, bool, uint8_t, uint64_t) { + status_t setDisplayContentSamplingEnabled(const sp &, bool, uint8_t, uint64_t) + { return BAD_VALUE; } - status_t getDisplayedContentSample(const sp&, uint64_t, uint64_t, DisplayedFrameStats*) const { + status_t getDisplayedContentSample(const sp &, uint64_t, uint64_t, + DisplayedFrameStats *) const + { return BAD_VALUE; } - status_t getProtectedContentSupport(bool* outSupported) const { - return BAD_VALUE; - } + status_t getProtectedContentSupport(bool *outSupported) const { return BAD_VALUE; } - status_t isWideColorDisplay(const sp&, bool*) const { - return BAD_VALUE; - } + status_t isWideColorDisplay(const sp &, bool *) const { return BAD_VALUE; } - status_t addRegionSamplingListener(const Rect&, const sp&, const sp&) { + status_t addRegionSamplingListener(const Rect &, const sp &, + const sp &) + { return BAD_VALUE; } - status_t removeRegionSamplingListener(const sp&) { - return BAD_VALUE; - } + status_t removeRegionSamplingListener(const sp &) { return BAD_VALUE; } - status_t setAllowedDisplayConfigs(const sp&, const std::vector&) { + status_t setAllowedDisplayConfigs(const sp &, const std::vector &) + { return BAD_VALUE; } - status_t setDesiredDisplayConfigSpecs(const sp&, int32_t, float, float, float, float) { + status_t setDesiredDisplayConfigSpecs(const sp &, int32_t, float, float, float, float) + { return BAD_VALUE; } - status_t getDesiredDisplayConfigSpecs(const sp&, int32_t*, float*, float*, float*, float*) { + status_t getDesiredDisplayConfigSpecs(const sp &, int32_t *, float *, float *, float *, + float *) + { return BAD_VALUE; } - status_t getAllowedDisplayConfigs(const sp&, std::vector*) { + status_t getAllowedDisplayConfigs(const sp &, std::vector *) + { return BAD_VALUE; } - status_t getDisplayBrightnessSupport(const sp&, bool*) const { - return BAD_VALUE; - } + status_t getDisplayBrightnessSupport(const sp &, bool *) const { return BAD_VALUE; } - status_t setDisplayBrightness(const sp&, float) { - return BAD_VALUE; - } + status_t setDisplayBrightness(const sp &, float) { return BAD_VALUE; } - status_t notifyPowerHint(int32_t) { - return BAD_VALUE; - } + status_t notifyPowerHint(int32_t) { return BAD_VALUE; } - status_t setGlobalShadowSettings(const half4&, const half4&, float, float, float) { + status_t setGlobalShadowSettings(const half4 &, const half4 &, float, float, float) + { return BAD_VALUE; } - status_t setFrameRate(const sp&, float, int8_t) { - return BAD_VALUE; - } + status_t setFrameRate(const sp &, float, int8_t) { return BAD_VALUE; } - status_t acquireFrameRateFlexibilityToken(sp*) { - return BAD_VALUE; - } + status_t acquireFrameRateFlexibilityToken(sp *) { return BAD_VALUE; } }; #include @@ -433,11 +383,10 @@ class FakePermissionController : public BinderService, public BnPermissionController { public: - static char const *getServiceName() { - return "permission"; - } + static char const *getServiceName() { return "permission"; } - bool checkPermission(const String16& permission, int32_t, int32_t) { + bool checkPermission(const String16 &permission, int32_t, int32_t) + { if (permission == String16("android.permission.CAMERA")) { return true; } @@ -445,174 +394,163 @@ class FakePermissionController : public BinderService, return false; } - int32_t noteOp(const String16&, int32_t, const String16&) { - return 0; - } + int32_t noteOp(const String16 &, int32_t, const String16 &) { return 0; } - void getPackagesForUid(const uid_t, Vector &) { - } + void getPackagesForUid(const uid_t, Vector &) { } - bool isRuntimePermission(const String16&) { - return false; - } + bool isRuntimePermission(const String16 &) { return false; } - int getPackageUid(const String16&, int) { - return 0; - } + int getPackageUid(const String16 &, int) { return 0; } }; #include #include -class FakeAppOps : public BinderService, - public BnAppOpsService +class FakeAppOps : public BinderService, public BnAppOpsService { public: - static char const *getServiceName() { - return "appops"; - } + static char const *getServiceName() { return "appops"; } - int32_t checkOperation(int32_t, int32_t, const String16&) { + int32_t checkOperation(int32_t, int32_t, const String16 &) + { return android::AppOpsManager::MODE_ALLOWED; } - int32_t noteOperation(int32_t, int32_t, const String16&, - const std::unique_ptr&, - bool, const String16&) { + int32_t noteOperation(int32_t, int32_t, const String16 &, const std::unique_ptr &, + bool, const String16 &) + { return android::AppOpsManager::MODE_ALLOWED; } - int32_t startOperation(const sp&, int32_t, int32_t, - const String16&, const std::unique_ptr&, - bool, bool, const String16&) { + int32_t startOperation(const sp &, int32_t, int32_t, const String16 &, + const std::unique_ptr &, bool, bool, const String16 &) + { return android::AppOpsManager::MODE_ALLOWED; } - void finishOperation(const sp&, int32_t, int32_t, const String16&, - const std::unique_ptr&) { + void finishOperation(const sp &, int32_t, int32_t, const String16 &, + const std::unique_ptr &) + { // Nothing } - void startWatchingMode(int32_t, const String16&, const sp&) { + void startWatchingMode(int32_t, const String16 &, const sp &) + { // Nothing } - void stopWatchingMode(const sp&) { + void stopWatchingMode(const sp &) + { // Nothing } - sp getToken(const sp&) { - return NULL; - } + sp getToken(const sp &) { return NULL; } - int32_t permissionToOpCode(const String16&) { - return 0; - } + int32_t permissionToOpCode(const String16 &) { return 0; } - int32_t checkAudioOperation(int32_t, int32_t, int32_t, const String16&) { - return 0; - } + int32_t checkAudioOperation(int32_t, int32_t, int32_t, const String16 &) { return 0; } - void setCameraAudioRestriction(int32_t) { + void setCameraAudioRestriction(int32_t) + { // Nothing } - bool shouldCollectNotes(int32_t) { - return false; - } + bool shouldCollectNotes(int32_t) { return false; } }; #include -class BnProcessInfoService : public BnInterface { +class BnProcessInfoService : public BnInterface +{ public: - virtual status_t onTransact( uint32_t code, - const Parcel& data, - Parcel* reply, - uint32_t flags = 0); + virtual status_t onTransact(uint32_t code, const Parcel &data, Parcel *reply, + uint32_t flags = 0); }; -status_t BnProcessInfoService::onTransact( uint32_t code, const Parcel& data, Parcel* reply, - uint32_t flags) { - switch(code) { - case GET_PROCESS_STATES_FROM_PIDS: { - CHECK_INTERFACE(IProcessInfoService, data, reply); - int32_t arrayLen = data.readInt32(); - if (arrayLen <= 0) { - reply->writeNoException(); - reply->writeInt32(0); - reply->writeInt32(NOT_ENOUGH_DATA); - return NO_ERROR; - } - - size_t len = static_cast(arrayLen); - int32_t pids[len]; - status_t res = data.read(pids, len * sizeof(*pids)); - - // Ignore output array length returned in the parcel here, as the states array must - // always be the same length as the input PIDs array. - int32_t states[len]; - for (size_t i = 0; i < len; i++) states[i] = -1; - if (res == NO_ERROR) { - res = getProcessStatesFromPids(len, /*in*/ pids, /*out*/ states); - } +status_t BnProcessInfoService::onTransact(uint32_t code, const Parcel &data, Parcel *reply, + uint32_t flags) +{ + switch (code) { + case GET_PROCESS_STATES_FROM_PIDS: { + CHECK_INTERFACE(IProcessInfoService, data, reply); + int32_t arrayLen = data.readInt32(); + if (arrayLen <= 0) { reply->writeNoException(); - reply->writeInt32Array(len, states); - reply->writeInt32(res); + reply->writeInt32(0); + reply->writeInt32(NOT_ENOUGH_DATA); return NO_ERROR; - } break; - case GET_PROCESS_STATES_AND_OOM_SCORES_FROM_PIDS: { - CHECK_INTERFACE(IProcessInfoService, data, reply); - int32_t arrayLen = data.readInt32(); - if (arrayLen <= 0) { - reply->writeNoException(); - reply->writeInt32(0); - reply->writeInt32(NOT_ENOUGH_DATA); - return NO_ERROR; - } - - size_t len = static_cast(arrayLen); - int32_t pids[len]; - status_t res = data.read(pids, len * sizeof(*pids)); - - // Ignore output array length returned in the parcel here, as the - // states array must always be the same length as the input PIDs array. - int32_t states[len]; - int32_t scores[len]; - for (size_t i = 0; i < len; i++) { - states[i] = -1; - scores[i] = -10000; - } - if (res == NO_ERROR) { - res = getProcessStatesAndOomScoresFromPids( - len, /*in*/ pids, /*out*/ states, /*out*/ scores); - } + } + + size_t len = static_cast(arrayLen); + int32_t pids[len]; + status_t res = data.read(pids, len * sizeof(*pids)); + + // Ignore output array length returned in the parcel here, as the states + // array must always be the same length as the input PIDs array. + int32_t states[len]; + for (size_t i = 0; i < len; i++) + states[i] = -1; + if (res == NO_ERROR) { + res = getProcessStatesFromPids(len, /*in*/ pids, /*out*/ states); + } + reply->writeNoException(); + reply->writeInt32Array(len, states); + reply->writeInt32(res); + return NO_ERROR; + } break; + case GET_PROCESS_STATES_AND_OOM_SCORES_FROM_PIDS: { + CHECK_INTERFACE(IProcessInfoService, data, reply); + int32_t arrayLen = data.readInt32(); + if (arrayLen <= 0) { reply->writeNoException(); - reply->writeInt32Array(len, states); - reply->writeInt32Array(len, scores); - reply->writeInt32(res); + reply->writeInt32(0); + reply->writeInt32(NOT_ENOUGH_DATA); return NO_ERROR; - } break; - default: - return BBinder::onTransact(code, data, reply, flags); + } + + size_t len = static_cast(arrayLen); + int32_t pids[len]; + status_t res = data.read(pids, len * sizeof(*pids)); + + // Ignore output array length returned in the parcel here, as the + // states array must always be the same length as the input PIDs array. + int32_t states[len]; + int32_t scores[len]; + for (size_t i = 0; i < len; i++) { + states[i] = -1; + scores[i] = -10000; + } + if (res == NO_ERROR) { + res = getProcessStatesAndOomScoresFromPids(len, /*in*/ pids, /*out*/ states, + /*out*/ scores); + } + reply->writeNoException(); + reply->writeInt32Array(len, states); + reply->writeInt32Array(len, scores); + reply->writeInt32(res); + return NO_ERROR; + } break; + default: + return BBinder::onTransact(code, data, reply, flags); } } class FakeProcessInfoService : public BinderService, - public BnProcessInfoService + public BnProcessInfoService { public: - static char const *getServiceName() { - return "processinfo"; - } + static char const *getServiceName() { return "processinfo"; } - status_t getProcessStatesFromPids(size_t length, int32_t* pids, int32_t* states) { - for (unsigned int i=0; i< length; i++) + status_t getProcessStatesFromPids(size_t length, int32_t *pids, int32_t *states) + { + for (unsigned int i = 0; i < length; i++) states[i] = 0; return 0; } - status_t getProcessStatesAndOomScoresFromPids( size_t length, int32_t* pids, int32_t* states, int32_t* scores) { - for (unsigned int i=0; i< length; i++) { + status_t getProcessStatesAndOomScoresFromPids(size_t length, int32_t *pids, int32_t *states, + int32_t *scores) + { + for (unsigned int i = 0; i < length; i++) { states[i] = 0; scores[i] = 0; } @@ -622,27 +560,24 @@ class FakeProcessInfoService : public BinderService, #include -class FakeBatteryStats : public BinderService, - public BnBatteryStats +class FakeBatteryStats : public BinderService, public BnBatteryStats { public: - static char const *getServiceName() { - return "batterystats"; - } - void noteStartSensor(int uid, int sensor) { } - void noteStopSensor(int uid, int sensor) { } - void noteStartVideo(int uid) { } - void noteStopVideo(int uid) { } - void noteStartAudio(int uid) { } - void noteStopAudio(int uid) { } - void noteResetVideo() { } - void noteResetAudio() { } - void noteFlashlightOn(int uid) { } - void noteFlashlightOff(int uid) { } - void noteStartCamera(int uid) { } - void noteStopCamera(int uid) { } - void noteResetCamera() { } - void noteResetFlashlight() { } + static char const *getServiceName() { return "batterystats"; } + void noteStartSensor(int uid, int sensor) { } + void noteStopSensor(int uid, int sensor) { } + void noteStartVideo(int uid) { } + void noteStopVideo(int uid) { } + void noteStartAudio(int uid) { } + void noteStopAudio(int uid) { } + void noteResetVideo() { } + void noteResetAudio() { } + void noteFlashlightOn(int uid) { } + void noteFlashlightOff(int uid) { } + void noteStartCamera(int uid) { } + void noteStopCamera(int uid) { } + void noteResetCamera() { } + void noteResetFlashlight() { } }; #include @@ -655,14 +590,13 @@ class FakeBatteryStats : public BinderService, //#include class FakeResourceManagerService : public BinderService, - public aidl::android::media::BnResourceManagerService + public aidl::android::media::BnResourceManagerService { public: - static char const *getServiceName() { - return "media.resource_manager"; - } + static char const *getServiceName() { return "media.resource_manager"; } - static void instantiate() { + static void instantiate() + { std::shared_ptr service = ::ndk::SharedRefBase::make(); binder_status_t status = @@ -673,43 +607,48 @@ class FakeResourceManagerService : public BinderService&) { + ::ndk::ScopedAStatus + config(const std::vector<::aidl::android::media::MediaResourcePolicyParcel> &) + { return ::ndk::ScopedAStatus::ok(); } - ::ndk::ScopedAStatus addResource(int32_t, int32_t, int64_t, - const std::shared_ptr<::aidl::android::media::IResourceManagerClient>&, - const std::vector<::aidl::android::media::MediaResourceParcel>&) { + ::ndk::ScopedAStatus + addResource(int32_t, int32_t, int64_t, + const std::shared_ptr<::aidl::android::media::IResourceManagerClient> &, + const std::vector<::aidl::android::media::MediaResourceParcel> &) + { return ::ndk::ScopedAStatus::ok(); } - ::ndk::ScopedAStatus removeResource(int32_t, int64_t, - const std::vector<::aidl::android::media::MediaResourceParcel>&) { + ::ndk::ScopedAStatus + removeResource(int32_t, int64_t, + const std::vector<::aidl::android::media::MediaResourceParcel> &) + { return ::ndk::ScopedAStatus::ok(); } - ::ndk::ScopedAStatus removeClient(int32_t, int64_t) { - return ::ndk::ScopedAStatus::ok(); - } + ::ndk::ScopedAStatus removeClient(int32_t, int64_t) { return ::ndk::ScopedAStatus::ok(); } - ::ndk::ScopedAStatus reclaimResource(int32_t, - const std::vector<::aidl::android::media::MediaResourceParcel>&, - bool*) { + ::ndk::ScopedAStatus + reclaimResource(int32_t, const std::vector<::aidl::android::media::MediaResourceParcel> &, + bool *) + { return ::ndk::ScopedAStatus::ok(); } - ::ndk::ScopedAStatus overridePid(int32_t, int32_t) { - return ::ndk::ScopedAStatus::ok(); - } + ::ndk::ScopedAStatus overridePid(int32_t, int32_t) { return ::ndk::ScopedAStatus::ok(); } - ::ndk::ScopedAStatus markClientForPendingRemoval(int32_t, int64_t) { + ::ndk::ScopedAStatus markClientForPendingRemoval(int32_t, int64_t) + { return ::ndk::ScopedAStatus::ok(); } - ::ndk::ScopedAStatus reclaimResourcesFromClientsPendingRemoval(int32_t) { + ::ndk::ScopedAStatus reclaimResourcesFromClientsPendingRemoval(int32_t) + { return ::ndk::ScopedAStatus::ok(); } }; @@ -719,42 +658,28 @@ class FakeResourceManagerService : public BinderService { public: - virtual status_t onTransact( uint32_t code, - const Parcel& data, - Parcel* reply, - uint32_t flags = 0) { + virtual status_t onTransact(uint32_t code, const Parcel &data, Parcel *reply, + uint32_t flags = 0) + { return NO_ERROR; }; }; -class FakeActivityManager : public BinderService, - public BnFakeActivityManager +class FakeActivityManager : public BinderService, public BnFakeActivityManager { public: - static char const *getServiceName() { - return "activity"; - } + static char const *getServiceName() { return "activity"; } - virtual int openContentUri(const String16&) { - return 0; - }; + virtual int openContentUri(const String16 &) { return 0; }; - virtual void registerUidObserver(const sp&, - const int32_t, - const int32_t, - const String16&) { - }; + virtual void registerUidObserver(const sp &, const int32_t, const int32_t, + const String16 &){}; - virtual void unregisterUidObserver(const sp&) { - }; + virtual void unregisterUidObserver(const sp &){}; - virtual bool isUidActive(const uid_t, const String16&) { - return false; - }; + virtual bool isUidActive(const uid_t, const String16 &) { return false; }; - virtual int32_t getUidProcessState(const uid_t, const String16&) { - return 0; - } + virtual int32_t getUidProcessState(const uid_t, const String16 &) { return 0; } }; #include @@ -763,24 +688,24 @@ class FakeSensorPrivacyManager : public BinderService, public hardware::BnSensorPrivacyManager { public: - static char const *getServiceName() { - return "sensor_privacy"; - } + static char const *getServiceName() { return "sensor_privacy"; } - ::android::binder::Status addSensorPrivacyListener(const sp&) { + ::android::binder::Status addSensorPrivacyListener(const sp &) + { return ::android::binder::Status::ok(); } - ::android::binder::Status removeSensorPrivacyListener(const sp&) { + ::android::binder::Status + removeSensorPrivacyListener(const sp &) + { return ::android::binder::Status::ok(); } - ::android::binder::Status isSensorPrivacyEnabled(bool *enabled) { + ::android::binder::Status isSensorPrivacyEnabled(bool *enabled) + { *enabled = false; return ::android::binder::Status::ok(); } - ::android::binder::Status setSensorPrivacy(bool) { - return ::android::binder::Status::ok(); - } + ::android::binder::Status setSensorPrivacy(bool) { return ::android::binder::Status::ok(); } }; diff --git a/services/services_13_0_0.h b/services/services_13_0_0.h index a7862d9..dc09f31 100644 --- a/services/services_13_0_0.h +++ b/services/services_13_0_0.h @@ -24,75 +24,64 @@ class FakeSensorEventConnection : public android::BnSensorEventConnection { android::sp mChannel; + public: - FakeSensorEventConnection() { - mChannel = new android::BitTube(0); - } + FakeSensorEventConnection() { mChannel = new android::BitTube(0); } - android::sp getSensorChannel() const { - return mChannel; - } + android::sp getSensorChannel() const { return mChannel; } - android::status_t enableDisable(int, bool, nsecs_t, nsecs_t, int) { - return 0; - } + android::status_t enableDisable(int, bool, nsecs_t, nsecs_t, int) { return 0; } - android::status_t setEventRate(int, nsecs_t) { - return 0; - } + android::status_t setEventRate(int, nsecs_t) { return 0; } - android::status_t flush() { - return 0; - } + android::status_t flush() { return 0; } - virtual int32_t configureChannel(int32_t, int32_t) { - return 0; - } + virtual int32_t configureChannel(int32_t, int32_t) { return 0; } protected: - void destroy() { - } - + void destroy() { } }; class FakeSensorServer : public android::BinderService, public android::BnSensorServer { public: - static char const *getServiceName() { - return "sensorservice"; - } + static char const *getServiceName() { return "sensorservice"; } - android::Vector getSensorList(const android::String16&) { + android::Vector getSensorList(const android::String16 &) + { return android::Vector(); } - android::Vector getDynamicSensorList(const android::String16&) { + android::Vector getDynamicSensorList(const android::String16 &) + { return android::Vector(); } - android::sp createSensorEventConnection( - const android::String8&, int, const android::String16&, - const android::String16&) { + android::sp + createSensorEventConnection(const android::String8 &, int, const android::String16 &, + const android::String16 &) + { return android::sp(new FakeSensorEventConnection); } - android::sp createSensorDirectConnection( - const android::String16&, uint32_t, int32_t, int32_t, const native_handle_t *) { + android::sp + createSensorDirectConnection(const android::String16 &, uint32_t, int32_t, int32_t, + const native_handle_t *) + { return android::sp(new FakeSensorEventConnection); } - int setOperationParameter( - int32_t, int32_t, const android::Vector &, const android::Vector &) { + int setOperationParameter(int32_t, int32_t, const android::Vector &, + const android::Vector &) + { return 0; } - int32_t isDataInjectionEnabled() { - return 0; - } + int32_t isDataInjectionEnabled() { return 0; } - android::status_t shellCommand(int, int, int, - android::Vector&) { + android::status_t shellCommand(int, int, int, android::Vector &) + { return 0; } }; @@ -102,64 +91,72 @@ class FakeSensorServer : public android::BinderService, #include #include -class FakeEventQueue : - public android::frameworks::sensorservice::V1_0::IEventQueue +class FakeEventQueue : public android::frameworks::sensorservice::V1_0::IEventQueue { public: - FakeEventQueue() {} + FakeEventQueue() { } - android::hardware::Return enableSensor( - int32_t sensorHandle, int32_t samplingPeriodUs, int64_t maxBatchReportLatencyUs) { + android::hardware::Return + enableSensor(int32_t sensorHandle, int32_t samplingPeriodUs, int64_t maxBatchReportLatencyUs) + { return android::frameworks::sensorservice::V1_0::Result::BAD_VALUE; } - android::hardware::Return disableSensor( - int32_t sensorHandle) { + android::hardware::Return + disableSensor(int32_t sensorHandle) + { return android::frameworks::sensorservice::V1_0::Result::BAD_VALUE; } }; -class FakeSensorManager : - public android::frameworks::sensorservice::V1_0::ISensorManager +class FakeSensorManager : public android::frameworks::sensorservice::V1_0::ISensorManager { - // Methods from ::android::frameworks::sensorservice::V1_0::ISensorManager follow. - android::hardware::Return getSensorList(getSensorList_cb _hidl_cb) { + // Methods from ::android::frameworks::sensorservice::V1_0::ISensorManager + // follow. + android::hardware::Return getSensorList(getSensorList_cb _hidl_cb) + { android::hardware::hidl_vec<::android::hardware::sensors::V1_0::SensorInfo> ret; _hidl_cb(ret, android::frameworks::sensorservice::V1_0::Result::OK); return android::hardware::Void(); } - android::hardware::Return getDefaultSensor( - android::hardware::sensors::V1_0::SensorType type, - getDefaultSensor_cb _hidl_cb) { + android::hardware::Return + getDefaultSensor(android::hardware::sensors::V1_0::SensorType type, + getDefaultSensor_cb _hidl_cb) + { _hidl_cb({}, android::frameworks::sensorservice::V1_0::Result::NOT_EXIST); return android::hardware::Void(); } - android::hardware::Return createAshmemDirectChannel( - const android::hardware::hidl_memory& mem, uint64_t size, - createAshmemDirectChannel_cb _hidl_cb) { + android::hardware::Return + createAshmemDirectChannel(const android::hardware::hidl_memory &mem, uint64_t size, + createAshmemDirectChannel_cb _hidl_cb) + { _hidl_cb(nullptr, android::frameworks::sensorservice::V1_0::Result::BAD_VALUE); return android::hardware::Void(); } - android::hardware::Return createGrallocDirectChannel( - const android::hardware::hidl_handle& buffer, uint64_t size, - createGrallocDirectChannel_cb _hidl_cb) { + android::hardware::Return + createGrallocDirectChannel(const android::hardware::hidl_handle &buffer, uint64_t size, + createGrallocDirectChannel_cb _hidl_cb) + { _hidl_cb(nullptr, android::frameworks::sensorservice::V1_0::Result::UNKNOWN_ERROR); return android::hardware::Void(); } android::hardware::Return createEventQueue( - const android::sp &callback, - createEventQueue_cb _hidl_cb) { + const android::sp + &callback, + createEventQueue_cb _hidl_cb) + { if (callback == nullptr) { _hidl_cb(nullptr, android::frameworks::sensorservice::V1_0::Result::BAD_VALUE); return android::hardware::Void(); } - android::sp queue = new FakeEventQueue(); + android::sp queue = + new FakeEventQueue(); _hidl_cb(queue, android::frameworks::sensorservice::V1_0::Result::OK); return android::hardware::Void(); @@ -179,189 +176,175 @@ class MiniSurfaceFlinger : public BinderService, public IBinder::DeathRecipient { public: - static char const *getServiceName() { - return "SurfaceFlinger"; - } + static char const *getServiceName() { return "SurfaceFlinger"; } - void binderDied(const wp&) { + void binderDied(const wp &) + { // Nothing } - sp createConnection() { - return sp(); - } + sp createConnection() { return sp(); } - sp createDisplayEventConnection( - VsyncSource, EventRegistrationFlags) { + sp createDisplayEventConnection(VsyncSource, EventRegistrationFlags) + { return sp(); } - status_t setTransactionState(const FrameTimelineInfo&, const Vector&, - const Vector&, uint32_t, const sp&, - const InputWindowCommands&, int64_t, bool, const client_cache_t&, - bool, const std::vector&, uint64_t) { + status_t setTransactionState(const FrameTimelineInfo &, const Vector &, + const Vector &, uint32_t, const sp &, + const InputWindowCommands &, int64_t, bool, const client_cache_t &, + bool, const std::vector &, uint64_t) + { return BAD_VALUE; } - void bootFinished() { + void bootFinished() + { // Nothing } - bool authenticateSurfaceTexture(const sp&) const { - return true; - } + bool authenticateSurfaceTexture(const sp &) const { return true; } - status_t getSupportedFrameTimestamps( - std::vector*) const { - return BAD_VALUE; - } + status_t getSupportedFrameTimestamps(std::vector *) const { return BAD_VALUE; } - status_t getStaticDisplayInfo(const sp&, ui::StaticDisplayInfo*) { + status_t getStaticDisplayInfo(const sp &, ui::StaticDisplayInfo *) + { return BAD_VALUE; } - status_t getDynamicDisplayInfo(const sp&, ui::DynamicDisplayInfo*) { + status_t getDynamicDisplayInfo(const sp &, ui::DynamicDisplayInfo *) + { return BAD_VALUE; } - status_t getDisplayNativePrimaries(const sp& display, ui::DisplayPrimaries&) { + status_t getDisplayNativePrimaries(const sp &display, ui::DisplayPrimaries &) + { return BAD_VALUE; } - status_t setActiveColorMode(const sp&, ui::ColorMode) { - return BAD_VALUE; - } + status_t setActiveColorMode(const sp &, ui::ColorMode) { return BAD_VALUE; } - status_t setBootDisplayMode(const sp&, ui::DisplayModeId) { - return BAD_VALUE; - } + status_t setBootDisplayMode(const sp &, ui::DisplayModeId) { return BAD_VALUE; } - status_t clearAnimationFrameStats() { - return BAD_VALUE; - } + status_t clearAnimationFrameStats() { return BAD_VALUE; } - status_t getAnimationFrameStats(FrameStats*) const { - return BAD_VALUE; - } + status_t getAnimationFrameStats(FrameStats *) const { return BAD_VALUE; } - status_t overrideHdrTypes(const sp&, const std::vector&) { + status_t overrideHdrTypes(const sp &, const std::vector &) + { return BAD_VALUE; } - status_t onPullAtom(const int32_t, std::string*, bool*) { - return BAD_VALUE; - } + status_t onPullAtom(const int32_t, std::string *, bool *) { return BAD_VALUE; } - status_t enableVSyncInjections(bool) { - return BAD_VALUE; - } + status_t enableVSyncInjections(bool) { return BAD_VALUE; } - status_t injectVSync(nsecs_t) { - return BAD_VALUE; - } + status_t injectVSync(nsecs_t) { return BAD_VALUE; } - status_t getLayerDebugInfo(std::vector*) { - return 0; - } + status_t getLayerDebugInfo(std::vector *) { return 0; } - status_t getColorManagement(bool* outGetColorManagement) const { - return BAD_VALUE; - } + status_t getColorManagement(bool *outGetColorManagement) const { return BAD_VALUE; } - status_t getCompositionPreference(ui::Dataspace*, ui::PixelFormat*,ui::Dataspace*, ui::PixelFormat*) const { + status_t getCompositionPreference(ui::Dataspace *, ui::PixelFormat *, ui::Dataspace *, + ui::PixelFormat *) const + { return BAD_VALUE; } - status_t getDisplayedContentSamplingAttributes(const sp& display, ui::PixelFormat*, - ui::Dataspace*, uint8_t*) const { + status_t getDisplayedContentSamplingAttributes(const sp &display, ui::PixelFormat *, + ui::Dataspace *, uint8_t *) const + { return BAD_VALUE; } - status_t setDisplayContentSamplingEnabled(const sp&, bool, uint8_t, uint64_t) { + status_t setDisplayContentSamplingEnabled(const sp &, bool, uint8_t, uint64_t) + { return BAD_VALUE; } - status_t getDisplayedContentSample(const sp&, uint64_t, uint64_t, DisplayedFrameStats*) const { + status_t getDisplayedContentSample(const sp &, uint64_t, uint64_t, + DisplayedFrameStats *) const + { return BAD_VALUE; } - status_t getProtectedContentSupport(bool* outSupported) const { - return BAD_VALUE; - } + status_t getProtectedContentSupport(bool *outSupported) const { return BAD_VALUE; } - status_t addRegionSamplingListener(const Rect&, const sp&, const sp&) { + status_t addRegionSamplingListener(const Rect &, const sp &, + const sp &) + { return BAD_VALUE; } - status_t removeRegionSamplingListener(const sp&) { - return BAD_VALUE; - } + status_t removeRegionSamplingListener(const sp &) { return BAD_VALUE; } - status_t addFpsListener(int32_t, const sp&) { - return BAD_VALUE; - } + status_t addFpsListener(int32_t, const sp &) { return BAD_VALUE; } - status_t removeFpsListener(const sp&) { - return BAD_VALUE; - } + status_t removeFpsListener(const sp &) { return BAD_VALUE; } - status_t addTunnelModeEnabledListener(const sp&) { + status_t addTunnelModeEnabledListener(const sp &) + { return BAD_VALUE; } - status_t removeTunnelModeEnabledListener(const sp&) { + status_t removeTunnelModeEnabledListener(const sp &) + { return BAD_VALUE; } - status_t setDesiredDisplayModeSpecs(const sp&, ui::DisplayModeId, - bool, float, float, float, float) { + status_t setDesiredDisplayModeSpecs(const sp &, ui::DisplayModeId, bool, float, float, + float, float) + { return BAD_VALUE; } - status_t getDesiredDisplayModeSpecs(const sp&, ui::DisplayModeId*, - bool*, float*, float*, float*, float*) { + status_t getDesiredDisplayModeSpecs(const sp &, ui::DisplayModeId *, bool *, float *, + float *, float *, float *) + { return BAD_VALUE; } - status_t setGlobalShadowSettings(const half4&, const half4&, float, float, float) { + status_t setGlobalShadowSettings(const half4 &, const half4 &, float, float, float) + { return BAD_VALUE; } - status_t getDisplayDecorationSupport(const sp&, - std::optional*) const { + status_t getDisplayDecorationSupport( + const sp &, + std::optional *) + const + { return BAD_VALUE; } - status_t setFrameRate(const sp&, float, int8_t, int8_t) { + status_t setFrameRate(const sp &, float, int8_t, int8_t) + { return BAD_VALUE; } - status_t setOverrideFrameRate(uid_t, float) { - return BAD_VALUE; - } + status_t setOverrideFrameRate(uid_t, float) { return BAD_VALUE; } - status_t setFrameTimelineInfo(const sp&, - const FrameTimelineInfo&) { + status_t setFrameTimelineInfo(const sp &, const FrameTimelineInfo &) + { return BAD_VALUE; } - status_t addTransactionTraceListener(const sp&) { + status_t addTransactionTraceListener(const sp &) + { return BAD_VALUE; } - int getGPUContextPriority() { - return 0; - } + int getGPUContextPriority() { return 0; } - status_t getMaxAcquiredBufferCount(int*) const { - return BAD_VALUE; - } + status_t getMaxAcquiredBufferCount(int *) const { return BAD_VALUE; } - status_t addWindowInfosListener(const sp&) const { + status_t addWindowInfosListener(const sp &) const + { return BAD_VALUE; } - status_t removeWindowInfosListener(const sp&) const { + status_t removeWindowInfosListener(const sp &) const + { return BAD_VALUE; } }; @@ -372,11 +355,10 @@ class FakePermissionController : public BinderService, public BnPermissionController { public: - static char const *getServiceName() { - return "permission"; - } + static char const *getServiceName() { return "permission"; } - bool checkPermission(const String16& permission, int32_t, int32_t) { + bool checkPermission(const String16 &permission, int32_t, int32_t) + { if (permission == String16("android.permission.CAMERA")) { return true; } @@ -384,178 +366,168 @@ class FakePermissionController : public BinderService, return false; } - int32_t noteOp(const String16&, int32_t, const String16&) { - return 0; - } + int32_t noteOp(const String16 &, int32_t, const String16 &) { return 0; } - void getPackagesForUid(const uid_t, Vector &) { - } + void getPackagesForUid(const uid_t, Vector &) { } - bool isRuntimePermission(const String16&) { - return false; - } + bool isRuntimePermission(const String16 &) { return false; } - int getPackageUid(const String16&, int) { - return 0; - } + int getPackageUid(const String16 &, int) { return 0; } }; #include #include -class FakeAppOps : public BinderService, - public BnAppOpsService +class FakeAppOps : public BinderService, public BnAppOpsService { public: - static char const *getServiceName() { - return "appops"; - } + static char const *getServiceName() { return "appops"; } - int32_t checkOperation(int32_t, int32_t, const String16&) { + int32_t checkOperation(int32_t, int32_t, const String16 &) + { return android::AppOpsManager::MODE_ALLOWED; } - int32_t noteOperation(int32_t, int32_t, const String16&, - const std::optional&, bool, - const String16&, bool) { + int32_t noteOperation(int32_t, int32_t, const String16 &, const std::optional &, bool, + const String16 &, bool) + { return android::AppOpsManager::MODE_ALLOWED; } - int32_t startOperation(const sp&, int32_t, int32_t, - const String16&, const std::optional&, - bool, bool, const String16&, bool) { + int32_t startOperation(const sp &, int32_t, int32_t, const String16 &, + const std::optional &, bool, bool, const String16 &, bool) + { return android::AppOpsManager::MODE_ALLOWED; } - void finishOperation(const sp&, int32_t, int32_t, - const String16&, const std::optional&) { + void finishOperation(const sp &, int32_t, int32_t, const String16 &, + const std::optional &) + { // Nothing } - void startWatchingMode(int32_t, const String16&, const sp&) { + void startWatchingMode(int32_t, const String16 &, const sp &) + { // Nothing } - void stopWatchingMode(const sp&) { + void stopWatchingMode(const sp &) + { // Nothing } - sp getToken(const sp&) { - return NULL; - } + sp getToken(const sp &) { return NULL; } - int32_t permissionToOpCode(const String16&) { - return 0; - } + int32_t permissionToOpCode(const String16 &) { return 0; } - int32_t checkAudioOperation(int32_t, int32_t, int32_t, const String16&) { - return 0; - } + int32_t checkAudioOperation(int32_t, int32_t, int32_t, const String16 &) { return 0; } - void setCameraAudioRestriction(int32_t) { + void setCameraAudioRestriction(int32_t) + { // Nothing } - bool shouldCollectNotes(int32_t) { - return false; - } + bool shouldCollectNotes(int32_t) { return false; } - void startWatchingModeWithFlags(int32_t, const String16&, int32_t, const sp&) { + void startWatchingModeWithFlags(int32_t, const String16 &, int32_t, const sp &) + { // Nothing } }; #include -class BnProcessInfoService : public BnInterface { +class BnProcessInfoService : public BnInterface +{ public: - virtual status_t onTransact( uint32_t code, - const Parcel& data, - Parcel* reply, - uint32_t flags = 0); + virtual status_t onTransact(uint32_t code, const Parcel &data, Parcel *reply, + uint32_t flags = 0); }; -status_t BnProcessInfoService::onTransact( uint32_t code, const Parcel& data, Parcel* reply, - uint32_t flags) { - switch(code) { - case GET_PROCESS_STATES_FROM_PIDS: { - CHECK_INTERFACE(IProcessInfoService, data, reply); - int32_t arrayLen = data.readInt32(); - if (arrayLen <= 0) { - reply->writeNoException(); - reply->writeInt32(0); - reply->writeInt32(NOT_ENOUGH_DATA); - return NO_ERROR; - } - - size_t len = static_cast(arrayLen); - int32_t pids[len]; - status_t res = data.read(pids, len * sizeof(*pids)); - - // Ignore output array length returned in the parcel here, as the states array must - // always be the same length as the input PIDs array. - int32_t states[len]; - for (size_t i = 0; i < len; i++) states[i] = -1; - if (res == NO_ERROR) { - res = getProcessStatesFromPids(len, /*in*/ pids, /*out*/ states); - } +status_t BnProcessInfoService::onTransact(uint32_t code, const Parcel &data, Parcel *reply, + uint32_t flags) +{ + switch (code) { + case GET_PROCESS_STATES_FROM_PIDS: { + CHECK_INTERFACE(IProcessInfoService, data, reply); + int32_t arrayLen = data.readInt32(); + if (arrayLen <= 0) { reply->writeNoException(); - reply->writeInt32Array(len, states); - reply->writeInt32(res); + reply->writeInt32(0); + reply->writeInt32(NOT_ENOUGH_DATA); return NO_ERROR; - } break; - case GET_PROCESS_STATES_AND_OOM_SCORES_FROM_PIDS: { - CHECK_INTERFACE(IProcessInfoService, data, reply); - int32_t arrayLen = data.readInt32(); - if (arrayLen <= 0) { - reply->writeNoException(); - reply->writeInt32(0); - reply->writeInt32(NOT_ENOUGH_DATA); - return NO_ERROR; - } - - size_t len = static_cast(arrayLen); - int32_t pids[len]; - status_t res = data.read(pids, len * sizeof(*pids)); - - // Ignore output array length returned in the parcel here, as the - // states array must always be the same length as the input PIDs array. - int32_t states[len]; - int32_t scores[len]; - for (size_t i = 0; i < len; i++) { - states[i] = -1; - scores[i] = -10000; - } - if (res == NO_ERROR) { - res = getProcessStatesAndOomScoresFromPids( - len, /*in*/ pids, /*out*/ states, /*out*/ scores); - } + } + + size_t len = static_cast(arrayLen); + int32_t pids[len]; + status_t res = data.read(pids, len * sizeof(*pids)); + + // Ignore output array length returned in the parcel here, as the states + // array must always be the same length as the input PIDs array. + int32_t states[len]; + for (size_t i = 0; i < len; i++) + states[i] = -1; + if (res == NO_ERROR) { + res = getProcessStatesFromPids(len, /*in*/ pids, /*out*/ states); + } + reply->writeNoException(); + reply->writeInt32Array(len, states); + reply->writeInt32(res); + return NO_ERROR; + } break; + case GET_PROCESS_STATES_AND_OOM_SCORES_FROM_PIDS: { + CHECK_INTERFACE(IProcessInfoService, data, reply); + int32_t arrayLen = data.readInt32(); + if (arrayLen <= 0) { reply->writeNoException(); - reply->writeInt32Array(len, states); - reply->writeInt32Array(len, scores); - reply->writeInt32(res); + reply->writeInt32(0); + reply->writeInt32(NOT_ENOUGH_DATA); return NO_ERROR; - } break; - default: - return BBinder::onTransact(code, data, reply, flags); + } + + size_t len = static_cast(arrayLen); + int32_t pids[len]; + status_t res = data.read(pids, len * sizeof(*pids)); + + // Ignore output array length returned in the parcel here, as the + // states array must always be the same length as the input PIDs array. + int32_t states[len]; + int32_t scores[len]; + for (size_t i = 0; i < len; i++) { + states[i] = -1; + scores[i] = -10000; + } + if (res == NO_ERROR) { + res = getProcessStatesAndOomScoresFromPids(len, /*in*/ pids, /*out*/ states, + /*out*/ scores); + } + reply->writeNoException(); + reply->writeInt32Array(len, states); + reply->writeInt32Array(len, scores); + reply->writeInt32(res); + return NO_ERROR; + } break; + default: + return BBinder::onTransact(code, data, reply, flags); } } class FakeProcessInfoService : public BinderService, - public BnProcessInfoService + public BnProcessInfoService { public: - static char const *getServiceName() { - return "processinfo"; - } + static char const *getServiceName() { return "processinfo"; } - status_t getProcessStatesFromPids(size_t length, int32_t* pids, int32_t* states) { - for (unsigned int i=0; i< length; i++) + status_t getProcessStatesFromPids(size_t length, int32_t *pids, int32_t *states) + { + for (unsigned int i = 0; i < length; i++) states[i] = 0; return 0; } - status_t getProcessStatesAndOomScoresFromPids( size_t length, int32_t* pids, int32_t* states, int32_t* scores) { - for (unsigned int i=0; i< length; i++) { + status_t getProcessStatesAndOomScoresFromPids(size_t length, int32_t *pids, int32_t *states, + int32_t *scores) + { + for (unsigned int i = 0; i < length; i++) { states[i] = 0; scores[i] = 0; } @@ -565,27 +537,24 @@ class FakeProcessInfoService : public BinderService, #include -class FakeBatteryStats : public BinderService, - public BnBatteryStats +class FakeBatteryStats : public BinderService, public BnBatteryStats { public: - static char const *getServiceName() { - return "batterystats"; - } - void noteStartSensor(int uid, int sensor) { } - void noteStopSensor(int uid, int sensor) { } - void noteStartVideo(int uid) { } - void noteStopVideo(int uid) { } - void noteStartAudio(int uid) { } - void noteStopAudio(int uid) { } - void noteResetVideo() { } - void noteResetAudio() { } - void noteFlashlightOn(int uid) { } - void noteFlashlightOff(int uid) { } - void noteStartCamera(int uid) { } - void noteStopCamera(int uid) { } - void noteResetCamera() { } - void noteResetFlashlight() { } + static char const *getServiceName() { return "batterystats"; } + void noteStartSensor(int uid, int sensor) { } + void noteStopSensor(int uid, int sensor) { } + void noteStartVideo(int uid) { } + void noteStopVideo(int uid) { } + void noteStartAudio(int uid) { } + void noteStopAudio(int uid) { } + void noteResetVideo() { } + void noteResetAudio() { } + void noteFlashlightOn(int uid) { } + void noteFlashlightOff(int uid) { } + void noteStartCamera(int uid) { } + void noteStopCamera(int uid) { } + void noteResetCamera() { } + void noteResetFlashlight() { } }; #include @@ -598,14 +567,13 @@ class FakeBatteryStats : public BinderService, //#include class FakeResourceManagerService : public BinderService, - public aidl::android::media::BnResourceManagerService + public aidl::android::media::BnResourceManagerService { public: - static char const *getServiceName() { - return "media.resource_manager"; - } + static char const *getServiceName() { return "media.resource_manager"; } - static void instantiate() { + static void instantiate() + { std::shared_ptr service = ::ndk::SharedRefBase::make(); binder_status_t status = @@ -616,48 +584,55 @@ class FakeResourceManagerService : public BinderService&) { + ::ndk::ScopedAStatus + config(const std::vector<::aidl::android::media::MediaResourcePolicyParcel> &) + { return ::ndk::ScopedAStatus::ok(); } - ::ndk::ScopedAStatus addResource(int32_t, int32_t, int64_t, - const std::shared_ptr<::aidl::android::media::IResourceManagerClient>&, - const std::vector<::aidl::android::media::MediaResourceParcel>&) { + ::ndk::ScopedAStatus + addResource(int32_t, int32_t, int64_t, + const std::shared_ptr<::aidl::android::media::IResourceManagerClient> &, + const std::vector<::aidl::android::media::MediaResourceParcel> &) + { return ::ndk::ScopedAStatus::ok(); } - ::ndk::ScopedAStatus removeResource(int32_t, int64_t, - const std::vector<::aidl::android::media::MediaResourceParcel>&) { + ::ndk::ScopedAStatus + removeResource(int32_t, int64_t, + const std::vector<::aidl::android::media::MediaResourceParcel> &) + { return ::ndk::ScopedAStatus::ok(); } - ::ndk::ScopedAStatus removeClient(int32_t, int64_t) { - return ::ndk::ScopedAStatus::ok(); - } + ::ndk::ScopedAStatus removeClient(int32_t, int64_t) { return ::ndk::ScopedAStatus::ok(); } - ::ndk::ScopedAStatus reclaimResource(int32_t, - const std::vector<::aidl::android::media::MediaResourceParcel>&, - bool*) { + ::ndk::ScopedAStatus + reclaimResource(int32_t, const std::vector<::aidl::android::media::MediaResourceParcel> &, + bool *) + { return ::ndk::ScopedAStatus::ok(); } - ::ndk::ScopedAStatus overridePid(int32_t, int32_t) { - return ::ndk::ScopedAStatus::ok(); - } + ::ndk::ScopedAStatus overridePid(int32_t, int32_t) { return ::ndk::ScopedAStatus::ok(); } - ::ndk::ScopedAStatus overrideProcessInfo(const std::shared_ptr<::aidl::android::media::IResourceManagerClient>&, - int32_t, int32_t, int32_t) { + ::ndk::ScopedAStatus + overrideProcessInfo(const std::shared_ptr<::aidl::android::media::IResourceManagerClient> &, + int32_t, int32_t, int32_t) + { return ::ndk::ScopedAStatus::ok(); } - ::ndk::ScopedAStatus markClientForPendingRemoval(int32_t, int64_t) { + ::ndk::ScopedAStatus markClientForPendingRemoval(int32_t, int64_t) + { return ::ndk::ScopedAStatus::ok(); } - ::ndk::ScopedAStatus reclaimResourcesFromClientsPendingRemoval(int32_t) { + ::ndk::ScopedAStatus reclaimResourcesFromClientsPendingRemoval(int32_t) + { return ::ndk::ScopedAStatus::ok(); } }; @@ -667,49 +642,34 @@ class FakeResourceManagerService : public BinderService { public: - virtual status_t onTransact( uint32_t code, - const Parcel& data, - Parcel* reply, - uint32_t flags = 0) { + virtual status_t onTransact(uint32_t code, const Parcel &data, Parcel *reply, + uint32_t flags = 0) + { return NO_ERROR; }; }; -class FakeActivityManager : public BinderService, - public BnFakeActivityManager +class FakeActivityManager : public BinderService, public BnFakeActivityManager { public: - static char const *getServiceName() { - return "activity"; - } + static char const *getServiceName() { return "activity"; } - virtual int openContentUri(const String16&) { - return 0; - }; + virtual int openContentUri(const String16 &) { return 0; }; - virtual status_t registerUidObserver(const sp&, - const int32_t, - const int32_t, - const String16&) { + virtual status_t registerUidObserver(const sp &, const int32_t, const int32_t, + const String16 &) + { return BAD_VALUE; }; - virtual status_t unregisterUidObserver(const sp&) { - return BAD_VALUE; - }; + virtual status_t unregisterUidObserver(const sp &) { return BAD_VALUE; }; - virtual bool isUidActive(const uid_t, const String16&) { - return false; - }; + virtual bool isUidActive(const uid_t, const String16 &) { return false; }; - virtual int32_t getUidProcessState(const uid_t, const String16&) { - return 0; - } + virtual int32_t getUidProcessState(const uid_t, const String16 &) { return 0; } - virtual status_t checkPermission(const String16&, - const pid_t, - const uid_t, - int32_t*) { + virtual status_t checkPermission(const String16 &, const pid_t, const uid_t, int32_t *) + { return BAD_VALUE; }; }; @@ -720,56 +680,69 @@ class FakeSensorPrivacyManager : public BinderService, public hardware::BnSensorPrivacyManager { public: - static char const *getServiceName() { - return "sensor_privacy"; - } + static char const *getServiceName() { return "sensor_privacy"; } - ::android::binder::Status supportsSensorToggle(int32_t, int32_t, bool *supported) override { + ::android::binder::Status supportsSensorToggle(int32_t, int32_t, bool *supported) override + { *supported = false; return ::android::binder::Status::ok(); } - ::android::binder::Status addSensorPrivacyListener(const sp&) override { + ::android::binder::Status + addSensorPrivacyListener(const sp &) override + { return ::android::binder::Status::ok(); } - ::android::binder::Status removeSensorPrivacyListener(const sp&) override { + ::android::binder::Status + removeSensorPrivacyListener(const sp &) override + { return ::android::binder::Status::ok(); } - ::android::binder::Status isSensorPrivacyEnabled(bool *enabled) override { + ::android::binder::Status isSensorPrivacyEnabled(bool *enabled) override + { *enabled = false; return ::android::binder::Status::ok(); } - ::android::binder::Status setSensorPrivacy(bool) override { + ::android::binder::Status setSensorPrivacy(bool) override + { return ::android::binder::Status::ok(); } - ::android::binder::Status addToggleSensorPrivacyListener(const ::android::sp<::android::hardware::ISensorPrivacyListener>&) override { + ::android::binder::Status addToggleSensorPrivacyListener( + const ::android::sp<::android::hardware::ISensorPrivacyListener> &) override + { return ::android::binder::Status::ok(); } - ::android::binder::Status removeToggleSensorPrivacyListener(const ::android::sp<::android::hardware::ISensorPrivacyListener>&) override { + ::android::binder::Status removeToggleSensorPrivacyListener( + const ::android::sp<::android::hardware::ISensorPrivacyListener> &) override + { return ::android::binder::Status::ok(); } - ::android::binder::Status isCombinedToggleSensorPrivacyEnabled(int32_t, bool *enabled) override { + ::android::binder::Status isCombinedToggleSensorPrivacyEnabled(int32_t, bool *enabled) override + { *enabled = false; return ::android::binder::Status::ok(); } - ::android::binder::Status isToggleSensorPrivacyEnabled(int32_t, int32_t, bool *enabled) override { + ::android::binder::Status isToggleSensorPrivacyEnabled(int32_t, int32_t, bool *enabled) override + { *enabled = false; return ::android::binder::Status::ok(); } - ::android::binder::Status setToggleSensorPrivacy(int32_t, int32_t, int32_t, bool) override { + ::android::binder::Status setToggleSensorPrivacy(int32_t, int32_t, int32_t, bool) override + { return ::android::binder::Status::ok(); } - ::android::binder::Status setToggleSensorPrivacyForProfileGroup(int32_t, int32_t, int32_t, bool) override { + ::android::binder::Status setToggleSensorPrivacyForProfileGroup(int32_t, int32_t, int32_t, + bool) override + { return ::android::binder::Status::ok(); } - }; diff --git a/services/services_4_1_2.h b/services/services_4_1_2.h index 1ceb6fb..baadbcc 100644 --- a/services/services_4_1_2.h +++ b/services/services_4_1_2.h @@ -26,61 +26,55 @@ class MiniSurfaceFlinger : public BinderService, public IBinder::DeathRecipient { public: - static char const *getServiceName() { - return "SurfaceFlinger"; - } + static char const *getServiceName() { return "SurfaceFlinger"; } - void binderDied(const wp& who) { + void binderDied(const wp &who) + { // Nothing } - sp createConnection() { - return sp(); - } + sp createConnection() { return sp(); } - sp createGraphicBufferAlloc() { + sp createGraphicBufferAlloc() + { sp gba(new DroidMediaAllocator()); return gba; } - void bootFinished() { + void bootFinished() + { // Nothing } - sp createDisplayEventConnection() { + sp createDisplayEventConnection() + { return sp(); } - sp getCblk() const { - static android::sp - mem(new MemoryHeapBase(4096, - MemoryHeapBase::READ_ONLY, "SurfaceFlinger read-only heap")); + sp getCblk() const + { + static android::sp mem(new MemoryHeapBase( + 4096, MemoryHeapBase::READ_ONLY, "SurfaceFlinger read-only heap")); return mem; } - void setTransactionState(const Vector& state, - int orientation, uint32_t flags) { + void setTransactionState(const Vector &state, int orientation, uint32_t flags) + { // Nothing } - status_t captureScreen(DisplayID dpy, sp *heap, - uint32_t* width, uint32_t* height, PixelFormat* format, - uint32_t reqWidth, uint32_t reqHeight, - uint32_t minLayerZ, uint32_t maxLayerZ) { + status_t captureScreen(DisplayID dpy, sp *heap, uint32_t *width, uint32_t *height, + PixelFormat *format, uint32_t reqWidth, uint32_t reqHeight, + uint32_t minLayerZ, uint32_t maxLayerZ) + { return BAD_VALUE; } - virtual status_t turnElectronBeamOff(int32_t mode) { - return BAD_VALUE; - } + virtual status_t turnElectronBeamOff(int32_t mode) { return BAD_VALUE; } - virtual status_t turnElectronBeamOn(int32_t mode) { - return BAD_VALUE; - } + virtual status_t turnElectronBeamOn(int32_t mode) { return BAD_VALUE; } - bool authenticateSurfaceTexture(const sp& surface) const { - return false; - } + bool authenticateSurfaceTexture(const sp &surface) const { return false; } }; #include @@ -89,16 +83,14 @@ class FakePermissionController : public BinderService, public BnPermissionController { public: - static char const *getServiceName() { - return "permission"; - } + static char const *getServiceName() { return "permission"; } - bool checkPermission(const String16& permission, int32_t, int32_t) { + bool checkPermission(const String16 &permission, int32_t, int32_t) + { if (permission == String16("android.permission.CAMERA")) { return true; } return false; } - }; diff --git a/services/services_4_2_2.h b/services/services_4_2_2.h index 030ecce..8aa78ea 100644 --- a/services/services_4_2_2.h +++ b/services/services_4_2_2.h @@ -24,82 +24,76 @@ class MiniSurfaceFlinger : public BinderService, public IBinder::DeathRecipient { public: - static char const *getServiceName() { - return "SurfaceFlinger"; - } + static char const *getServiceName() { return "SurfaceFlinger"; } - void binderDied(const wp& who) { + void binderDied(const wp &who) + { // Nothing } - sp createConnection() { - return sp(); - } + sp createConnection() { return sp(); } - sp createGraphicBufferAlloc() { + sp createGraphicBufferAlloc() + { sp gba(new DroidMediaAllocator()); return gba; } - void bootFinished() { + void bootFinished() + { // Nothing } - sp createDisplayEventConnection() { + sp createDisplayEventConnection() + { return sp(); } - sp createDisplay(const String8& displayName, bool secure) { - return NULL; - } + sp createDisplay(const String8 &displayName, bool secure) { return NULL; } - void destroyDisplay(const sp& display) { - // Nothing - } + void destroyDisplay(const sp &display) + { + // Nothing + } - void setTransactionState(const Vector& state, - const Vector& displays, uint32_t flags) { - // Nothing - } + void setTransactionState(const Vector &state, + const Vector &displays, uint32_t flags) + { + // Nothing + } - void blank(const sp& display) { - // Nothing - } + void blank(const sp &display) + { + // Nothing + } - void unblank(const sp& display) { - // Nothing - } + void unblank(const sp &display) + { + // Nothing + } - virtual sp getBuiltInDisplay(int32_t id) { - return NULL; - } + virtual sp getBuiltInDisplay(int32_t id) { return NULL; } - status_t getDisplayInfo(const sp& display, DisplayInfo* info) { - return BAD_VALUE; - } + status_t getDisplayInfo(const sp &display, DisplayInfo *info) { return BAD_VALUE; } -bool authenticateSurfaceTexture(const sp& surface) const { - return true; - } + bool authenticateSurfaceTexture(const sp &surface) const { return true; } #ifdef __arm__ - status_t captureScreen(const sp& display, sp* heap, - uint32_t* width, uint32_t* height, PixelFormat* format, - uint32_t reqWidth, uint32_t reqHeight, - uint32_t minLayerZ, uint32_t maxLayerZ) { - return BAD_VALUE; - } + status_t captureScreen(const sp &display, sp *heap, uint32_t *width, + uint32_t *height, PixelFormat *format, uint32_t reqWidth, + uint32_t reqHeight, uint32_t minLayerZ, uint32_t maxLayerZ) + { + return BAD_VALUE; + } #else - bool isAnimationPermitted() { - return false; - } - - status_t captureScreen(const sp& display, sp* heap, - uint32_t* width, uint32_t* height, PixelFormat* format, - uint32_t reqWidth, uint32_t reqHeight, - uint32_t minLayerZ, uint32_t maxLayerZ) { - return BAD_VALUE; - } + bool isAnimationPermitted() { return false; } + + status_t captureScreen(const sp &display, sp *heap, uint32_t *width, + uint32_t *height, PixelFormat *format, uint32_t reqWidth, + uint32_t reqHeight, uint32_t minLayerZ, uint32_t maxLayerZ) + { + return BAD_VALUE; + } #endif }; @@ -109,16 +103,14 @@ class FakePermissionController : public BinderService, public BnPermissionController { public: - static char const *getServiceName() { - return "permission"; - } + static char const *getServiceName() { return "permission"; } - bool checkPermission(const String16& permission, int32_t, int32_t) { + bool checkPermission(const String16 &permission, int32_t, int32_t) + { if (permission == String16("android.permission.CAMERA")) { return true; } return false; } - }; diff --git a/services/services_4_4_4.h b/services/services_4_4_4.h index 4ac7939..2061bc7 100644 --- a/services/services_4_4_4.h +++ b/services/services_4_4_4.h @@ -26,82 +26,79 @@ class MiniSurfaceFlinger : public BinderService, public IBinder::DeathRecipient { public: - static char const *getServiceName() { - return "SurfaceFlinger"; - } + static char const *getServiceName() { return "SurfaceFlinger"; } - void binderDied(const wp& who) { + void binderDied(const wp &who) + { // Nothing } - sp createConnection() { - return sp(); - } + sp createConnection() { return sp(); } - sp createGraphicBufferAlloc() { + sp createGraphicBufferAlloc() + { sp gba(new DroidMediaAllocator()); return gba; } - void bootFinished() { + void bootFinished() + { // Nothing } - sp createDisplayEventConnection() { + sp createDisplayEventConnection() + { return sp(); } - sp createDisplay(const String8& displayName, bool secure) { - return NULL; - } + sp createDisplay(const String8 &displayName, bool secure) { return NULL; } - void destroyDisplay(const sp& display) { - // Nothing - } + void destroyDisplay(const sp &display) + { + // Nothing + } - void setTransactionState(const Vector& state, - const Vector& displays, uint32_t flags) { - // Nothing - } + void setTransactionState(const Vector &state, + const Vector &displays, uint32_t flags) + { + // Nothing + } - void blank(const sp& display) { - // Nothing - } + void blank(const sp &display) + { + // Nothing + } - void unblank(const sp& display) { - // Nothing - } + void unblank(const sp &display) + { + // Nothing + } - virtual sp getBuiltInDisplay(int32_t id) { - return NULL; - } + virtual sp getBuiltInDisplay(int32_t id) { return NULL; } - status_t getDisplayInfo(const sp& display, DisplayInfo* info) { - return BAD_VALUE; - } + status_t getDisplayInfo(const sp &display, DisplayInfo *info) { return BAD_VALUE; } - bool authenticateSurfaceTexture(const sp& surface) const { - return true; - } + bool authenticateSurfaceTexture(const sp &surface) const + { + return true; + } #ifdef __arm__ - status_t captureScreen(const sp& display, - const sp& producer, - uint32_t reqWidth, uint32_t reqHeight, - uint32_t minLayerZ, uint32_t maxLayerZ , bool) { - return BAD_VALUE; - } + status_t captureScreen(const sp &display, const sp &producer, + uint32_t reqWidth, uint32_t reqHeight, uint32_t minLayerZ, + uint32_t maxLayerZ, bool) + { + return BAD_VALUE; + } #else - bool isAnimationPermitted() { - return false; - } - - status_t captureScreen(const sp& display, - const sp& producer, - uint32_t reqWidth, uint32_t reqHeight, - uint32_t minLayerZ, uint32_t maxLayerZ) { - return BAD_VALUE; - } + bool isAnimationPermitted() { return false; } + + status_t captureScreen(const sp &display, const sp &producer, + uint32_t reqWidth, uint32_t reqHeight, uint32_t minLayerZ, + uint32_t maxLayerZ) + { + return BAD_VALUE; + } #endif }; @@ -111,57 +108,54 @@ class FakePermissionController : public BinderService, public BnPermissionController { public: - static char const *getServiceName() { - return "permission"; - } + static char const *getServiceName() { return "permission"; } - bool checkPermission(const String16& permission, int32_t, int32_t) { + bool checkPermission(const String16 &permission, int32_t, int32_t) + { if (permission == String16("android.permission.CAMERA")) { return true; } return false; } - }; #include #include -class FakeAppOps : public BinderService, - public BnAppOpsService +class FakeAppOps : public BinderService, public BnAppOpsService { public: - static char const *getServiceName() { - return "appops"; - } - - virtual int32_t checkOperation(int32_t, int32_t, const String16&) { - return android::AppOpsManager::MODE_ALLOWED; - } - - virtual int32_t noteOperation(int32_t, int32_t, const String16&) { - return android::AppOpsManager::MODE_ALLOWED; - } - - virtual int32_t startOperation(const sp&, int32_t, int32_t, - const String16&) { - return android::AppOpsManager::MODE_ALLOWED; - } - - virtual void finishOperation(const sp&, int32_t, int32_t, const String16&) { - // Nothing - } - - virtual void startWatchingMode(int32_t, const String16&, const sp&) { - // Nothing - } - - void stopWatchingMode(const sp&) { - // Nothing - } - - virtual sp getToken(const sp&) { - return NULL; - } -}; + static char const *getServiceName() { return "appops"; } + virtual int32_t checkOperation(int32_t, int32_t, const String16 &) + { + return android::AppOpsManager::MODE_ALLOWED; + } + + virtual int32_t noteOperation(int32_t, int32_t, const String16 &) + { + return android::AppOpsManager::MODE_ALLOWED; + } + + virtual int32_t startOperation(const sp &, int32_t, int32_t, const String16 &) + { + return android::AppOpsManager::MODE_ALLOWED; + } + + virtual void finishOperation(const sp &, int32_t, int32_t, const String16 &) + { + // Nothing + } + + virtual void startWatchingMode(int32_t, const String16 &, const sp &) + { + // Nothing + } + + void stopWatchingMode(const sp &) + { + // Nothing + } + + virtual sp getToken(const sp &) { return NULL; } +}; diff --git a/services/services_5_1_0.h b/services/services_5_1_0.h index 4fd6793..dd6bfdf 100644 --- a/services/services_5_1_0.h +++ b/services/services_5_1_0.h @@ -16,7 +16,6 @@ * Authored by: Mohammed Hassan */ - using namespace android; #include @@ -28,88 +27,71 @@ class MiniSurfaceFlinger : public BinderService, public IBinder::DeathRecipient { public: - static char const *getServiceName() { - return "SurfaceFlinger"; - } + static char const *getServiceName() { return "SurfaceFlinger"; } - void binderDied(const wp&) { + void binderDied(const wp &) + { // Nothing } - sp createConnection() { - return sp(); - } + sp createConnection() { return sp(); } - sp createGraphicBufferAlloc() { + sp createGraphicBufferAlloc() + { sp gba(new DroidMediaAllocator()); return gba; } - sp createDisplayEventConnection() { + sp createDisplayEventConnection() + { return sp(); } - sp createDisplay(const String8&, bool) { - return NULL; - } + sp createDisplay(const String8 &, bool) { return NULL; } - void destroyDisplay(const sp&) { + void destroyDisplay(const sp &) + { // Nothing } - virtual sp getBuiltInDisplay(int32_t) { - return NULL; - } + virtual sp getBuiltInDisplay(int32_t) { return NULL; } - void setTransactionState(const Vector&, const Vector&, uint32_t) { + void setTransactionState(const Vector &, const Vector &, uint32_t) + { // Nothing } - void bootFinished() { - // Nothing + void bootFinished() + { + // Nothing } - bool authenticateSurfaceTexture(const sp&) const { - return true; - } + bool authenticateSurfaceTexture(const sp &) const { return true; } - void setPowerMode(const sp&, int) { + void setPowerMode(const sp &, int) { } - } + status_t getDisplayConfigs(const sp &, Vector *) { return BAD_VALUE; } - status_t getDisplayConfigs(const sp&, Vector*) { - return BAD_VALUE; - } + status_t getDisplayStats(const sp &, DisplayStatInfo *) { return BAD_VALUE; } - status_t getDisplayStats(const sp&, DisplayStatInfo*) { - return BAD_VALUE; - } - - int getActiveConfig(const sp&) { - return 0; - } + int getActiveConfig(const sp &) { return 0; } - status_t setActiveConfig(const sp&, int) { - return BAD_VALUE; - } + status_t setActiveConfig(const sp &, int) { return BAD_VALUE; } - status_t captureScreen(const sp&, const sp&, - Rect, uint32_t, uint32_t, uint32_t, uint32_t, - bool, Rotation + status_t captureScreen(const sp &, const sp &, Rect, uint32_t, + uint32_t, uint32_t, uint32_t, bool, Rotation #ifdef CM_BUILD - , bool + , + bool #endif - ) { + ) + { return BAD_VALUE; } - status_t clearAnimationFrameStats() { - return BAD_VALUE; - } + status_t clearAnimationFrameStats() { return BAD_VALUE; } - status_t getAnimationFrameStats(FrameStats*) const { - return BAD_VALUE; - } + status_t getAnimationFrameStats(FrameStats *) const { return BAD_VALUE; } }; #include @@ -118,80 +100,74 @@ class FakePermissionController : public BinderService, public BnPermissionController { public: - static char const *getServiceName() { - return "permission"; - } + static char const *getServiceName() { return "permission"; } - bool checkPermission(const String16& permission, int32_t, int32_t) { + bool checkPermission(const String16 &permission, int32_t, int32_t) + { if (permission == String16("android.permission.CAMERA")) { return true; } return false; } - }; #include #include -class FakeAppOps : public BinderService, - public BnAppOpsService +class FakeAppOps : public BinderService, public BnAppOpsService { public: - static char const *getServiceName() { - return "appops"; - } - - virtual int32_t checkOperation(int32_t, int32_t, const String16&) { - return android::AppOpsManager::MODE_ALLOWED; - } - - virtual int32_t noteOperation(int32_t, int32_t, const String16&) { - return android::AppOpsManager::MODE_ALLOWED; - } - - virtual int32_t startOperation(const sp&, int32_t, int32_t, - const String16&) { - return android::AppOpsManager::MODE_ALLOWED; - } - - virtual void finishOperation(const sp&, int32_t, int32_t, const String16&) { - // Nothing - } - - virtual void startWatchingMode(int32_t, const String16&, const sp&) { - // Nothing - } - - void stopWatchingMode(const sp&) { - // Nothing - } - - virtual sp getToken(const sp&) { - return NULL; - } + static char const *getServiceName() { return "appops"; } + + virtual int32_t checkOperation(int32_t, int32_t, const String16 &) + { + return android::AppOpsManager::MODE_ALLOWED; + } + + virtual int32_t noteOperation(int32_t, int32_t, const String16 &) + { + return android::AppOpsManager::MODE_ALLOWED; + } + + virtual int32_t startOperation(const sp &, int32_t, int32_t, const String16 &) + { + return android::AppOpsManager::MODE_ALLOWED; + } + + virtual void finishOperation(const sp &, int32_t, int32_t, const String16 &) + { + // Nothing + } + + virtual void startWatchingMode(int32_t, const String16 &, const sp &) + { + // Nothing + } + + void stopWatchingMode(const sp &) + { + // Nothing + } + + virtual sp getToken(const sp &) { return NULL; } }; #include -class FakeBatteryStats : public BinderService, - public BnBatteryStats +class FakeBatteryStats : public BinderService, public BnBatteryStats { public: - static char const *getServiceName() { - return "batterystats"; - } - void noteStartSensor(int uid, int sensor) { } - void noteStopSensor(int uid, int sensor) { } - void noteStartVideo(int uid) { } - void noteStopVideo(int uid) { } - void noteStartAudio(int uid) { } - void noteStopAudio(int uid) { } - void noteResetVideo() { } - void noteResetAudio() { } + static char const *getServiceName() { return "batterystats"; } + void noteStartSensor(int uid, int sensor) { } + void noteStopSensor(int uid, int sensor) { } + void noteStartVideo(int uid) { } + void noteStopVideo(int uid) { } + void noteStartAudio(int uid) { } + void noteStopAudio(int uid) { } + void noteResetVideo() { } + void noteResetAudio() { } }; - #include #include #include @@ -200,38 +176,27 @@ class FakeBatteryStats : public BinderService, class FakeSensorEventConnection : public BnSensorEventConnection { sp mChannel; + public: - FakeSensorEventConnection() - { - mChannel = new BitTube(0); - } - sp getSensorChannel() const { - return mChannel; - } + FakeSensorEventConnection() { mChannel = new BitTube(0); } + sp getSensorChannel() const { return mChannel; } status_t enableDisable(int handle, bool enabled, nsecs_t samplingPeriodNs, - nsecs_t maxBatchReportLatencyNs, int reservedFlags) { - return 0; - } - status_t setEventRate(int handle, nsecs_t ns) { - return 0; - } - status_t flush() { + nsecs_t maxBatchReportLatencyNs, int reservedFlags) + { return 0; } + status_t setEventRate(int handle, nsecs_t ns) { return 0; } + status_t flush() { return 0; } }; -class FakeSensorServer : public BinderService, - public BnSensorServer +class FakeSensorServer : public BinderService, public BnSensorServer { public: - static char const *getServiceName() { - return "sensorservice"; - } + static char const *getServiceName() { return "sensorservice"; } - Vector getSensorList() { - return Vector(); - } + Vector getSensorList() { return Vector(); } - sp createSensorEventConnection() { + sp createSensorEventConnection() + { return sp(new FakeSensorEventConnection); } }; diff --git a/services/services_5_1_0_custom.h b/services/services_5_1_0_custom.h index ff59c17..7c5674b 100644 --- a/services/services_5_1_0_custom.h +++ b/services/services_5_1_0_custom.h @@ -27,92 +27,76 @@ class MiniSurfaceFlinger : public BinderService, public IBinder::DeathRecipient { public: - static char const *getServiceName() { - return "SurfaceFlinger"; - } + static char const *getServiceName() { return "SurfaceFlinger"; } - void binderDied(const wp&) { + void binderDied(const wp &) + { // Nothing } - sp createConnection() { - return sp(); - } + sp createConnection() { return sp(); } - sp createGraphicBufferAlloc() { + sp createGraphicBufferAlloc() + { sp gba(new DroidMediaAllocator()); return gba; } - sp createDisplayEventConnection() { + sp createDisplayEventConnection() + { return sp(); } - sp createDisplay(const String8&, bool) { - return NULL; - } + sp createDisplay(const String8 &, bool) { return NULL; } - void destroyDisplay(const sp&) { + void destroyDisplay(const sp &) + { // Nothing } - virtual sp getBuiltInDisplay(int32_t) { - return NULL; - } + virtual sp getBuiltInDisplay(int32_t) { return NULL; } - void setTransactionState(const Vector&, const Vector&, uint32_t) { + void setTransactionState(const Vector &, const Vector &, uint32_t) + { // Nothing } - void bootFinished() { - // Nothing + void bootFinished() + { + // Nothing } - bool authenticateSurfaceTexture(const sp&) const { - return true; - } + bool authenticateSurfaceTexture(const sp &) const { return true; } - void setPowerMode(const sp&, int) { + void setPowerMode(const sp &, int) { } - } + status_t getDisplayConfigs(const sp &, Vector *) { return BAD_VALUE; } - status_t getDisplayConfigs(const sp&, Vector*) { - return BAD_VALUE; - } + status_t getDisplayStats(const sp &, DisplayStatInfo *) { return BAD_VALUE; } - status_t getDisplayStats(const sp&, DisplayStatInfo*) { - return BAD_VALUE; - } + int getActiveConfig(const sp &) { return 0; } - int getActiveConfig(const sp&) { - return 0; - } - - status_t setActiveConfig(const sp&, int) { - return BAD_VALUE; - } + status_t setActiveConfig(const sp &, int) { return BAD_VALUE; } - status_t captureScreen(const sp&, const sp&, - Rect, uint32_t, uint32_t, uint32_t, uint32_t, - bool, Rotation + status_t captureScreen(const sp &, const sp &, Rect, uint32_t, + uint32_t, uint32_t, uint32_t, bool, Rotation #ifdef CM_BUILD - , bool + , + bool #endif - ) { + ) + { return BAD_VALUE; } - virtual status_t getDisplayInfoEx(const sp& display, DisplayInfoEx* info) { + virtual status_t getDisplayInfoEx(const sp &display, DisplayInfoEx *info) + { return BAD_VALUE; } - status_t clearAnimationFrameStats() { - return BAD_VALUE; - } + status_t clearAnimationFrameStats() { return BAD_VALUE; } - status_t getAnimationFrameStats(FrameStats*) const { - return BAD_VALUE; - } + status_t getAnimationFrameStats(FrameStats *) const { return BAD_VALUE; } }; #include @@ -121,80 +105,74 @@ class FakePermissionController : public BinderService, public BnPermissionController { public: - static char const *getServiceName() { - return "permission"; - } + static char const *getServiceName() { return "permission"; } - bool checkPermission(const String16& permission, int32_t, int32_t) { + bool checkPermission(const String16 &permission, int32_t, int32_t) + { if (permission == String16("android.permission.CAMERA")) { return true; } return false; } - }; #include #include -class FakeAppOps : public BinderService, - public BnAppOpsService +class FakeAppOps : public BinderService, public BnAppOpsService { public: - static char const *getServiceName() { - return "appops"; - } - - virtual int32_t checkOperation(int32_t, int32_t, const String16&) { - return android::AppOpsManager::MODE_ALLOWED; - } - - virtual int32_t noteOperation(int32_t, int32_t, const String16&) { - return android::AppOpsManager::MODE_ALLOWED; - } - - virtual int32_t startOperation(const sp&, int32_t, int32_t, - const String16&) { - return android::AppOpsManager::MODE_ALLOWED; - } - - virtual void finishOperation(const sp&, int32_t, int32_t, const String16&) { - // Nothing - } - - virtual void startWatchingMode(int32_t, const String16&, const sp&) { - // Nothing - } - - void stopWatchingMode(const sp&) { - // Nothing - } - - virtual sp getToken(const sp&) { - return NULL; - } + static char const *getServiceName() { return "appops"; } + + virtual int32_t checkOperation(int32_t, int32_t, const String16 &) + { + return android::AppOpsManager::MODE_ALLOWED; + } + + virtual int32_t noteOperation(int32_t, int32_t, const String16 &) + { + return android::AppOpsManager::MODE_ALLOWED; + } + + virtual int32_t startOperation(const sp &, int32_t, int32_t, const String16 &) + { + return android::AppOpsManager::MODE_ALLOWED; + } + + virtual void finishOperation(const sp &, int32_t, int32_t, const String16 &) + { + // Nothing + } + + virtual void startWatchingMode(int32_t, const String16 &, const sp &) + { + // Nothing + } + + void stopWatchingMode(const sp &) + { + // Nothing + } + + virtual sp getToken(const sp &) { return NULL; } }; #include -class FakeBatteryStats : public BinderService, - public BnBatteryStats +class FakeBatteryStats : public BinderService, public BnBatteryStats { public: - static char const *getServiceName() { - return "batterystats"; - } - void noteStartSensor(int uid, int sensor) { } - void noteStopSensor(int uid, int sensor) { } - void noteStartVideo(int uid) { } - void noteStopVideo(int uid) { } - void noteStartAudio(int uid) { } - void noteStopAudio(int uid) { } - void noteResetVideo() { } - void noteResetAudio() { } + static char const *getServiceName() { return "batterystats"; } + void noteStartSensor(int uid, int sensor) { } + void noteStopSensor(int uid, int sensor) { } + void noteStartVideo(int uid) { } + void noteStopVideo(int uid) { } + void noteStartAudio(int uid) { } + void noteStopAudio(int uid) { } + void noteResetVideo() { } + void noteResetAudio() { } }; - #include #include #include @@ -203,38 +181,27 @@ class FakeBatteryStats : public BinderService, class FakeSensorEventConnection : public BnSensorEventConnection { sp mChannel; + public: - FakeSensorEventConnection() - { - mChannel = new BitTube(0); - } - sp getSensorChannel() const { - return mChannel; - } + FakeSensorEventConnection() { mChannel = new BitTube(0); } + sp getSensorChannel() const { return mChannel; } status_t enableDisable(int handle, bool enabled, nsecs_t samplingPeriodNs, - nsecs_t maxBatchReportLatencyNs, int reservedFlags) { - return 0; - } - status_t setEventRate(int handle, nsecs_t ns) { - return 0; - } - status_t flush() { + nsecs_t maxBatchReportLatencyNs, int reservedFlags) + { return 0; } + status_t setEventRate(int handle, nsecs_t ns) { return 0; } + status_t flush() { return 0; } }; -class FakeSensorServer : public BinderService, - public BnSensorServer +class FakeSensorServer : public BinderService, public BnSensorServer { public: - static char const *getServiceName() { - return "sensorservice"; - } + static char const *getServiceName() { return "sensorservice"; } - Vector getSensorList() { - return Vector(); - } + Vector getSensorList() { return Vector(); } - sp createSensorEventConnection() { + sp createSensorEventConnection() + { return sp(new FakeSensorEventConnection); } }; diff --git a/services/services_6_0_0.h b/services/services_6_0_0.h index 2eccfb8..2cecc67 100644 --- a/services/services_6_0_0.h +++ b/services/services_6_0_0.h @@ -27,88 +27,71 @@ class MiniSurfaceFlinger : public BinderService, public IBinder::DeathRecipient { public: - static char const *getServiceName() { - return "SurfaceFlinger"; - } + static char const *getServiceName() { return "SurfaceFlinger"; } - void binderDied(const wp&) { + void binderDied(const wp &) + { // Nothing } - sp createConnection() { - return sp(); - } + sp createConnection() { return sp(); } - sp createGraphicBufferAlloc() { + sp createGraphicBufferAlloc() + { sp gba(new DroidMediaAllocator()); return gba; } - sp createDisplayEventConnection() { + sp createDisplayEventConnection() + { return sp(); } - sp createDisplay(const String8&, bool) { - return NULL; - } + sp createDisplay(const String8 &, bool) { return NULL; } - void destroyDisplay(const sp&) { + void destroyDisplay(const sp &) + { // Nothing } - virtual sp getBuiltInDisplay(int32_t) { - return NULL; - } + virtual sp getBuiltInDisplay(int32_t) { return NULL; } - void setTransactionState(const Vector&, const Vector&, uint32_t) { + void setTransactionState(const Vector &, const Vector &, uint32_t) + { // Nothing } - void bootFinished() { - // Nothing - } - - bool authenticateSurfaceTexture(const sp&) const { - return true; + void bootFinished() + { + // Nothing } - void setPowerMode(const sp&, int) { + bool authenticateSurfaceTexture(const sp &) const { return true; } - } + void setPowerMode(const sp &, int) { } - status_t getDisplayConfigs(const sp&, Vector*) { - return BAD_VALUE; - } + status_t getDisplayConfigs(const sp &, Vector *) { return BAD_VALUE; } - status_t getDisplayStats(const sp&, DisplayStatInfo*) { - return BAD_VALUE; - } + status_t getDisplayStats(const sp &, DisplayStatInfo *) { return BAD_VALUE; } - int getActiveConfig(const sp&) { - return 0; - } + int getActiveConfig(const sp &) { return 0; } - status_t setActiveConfig(const sp&, int) { - return BAD_VALUE; - } + status_t setActiveConfig(const sp &, int) { return BAD_VALUE; } - status_t captureScreen(const sp&, const sp&, - Rect, uint32_t, uint32_t, uint32_t, uint32_t, - bool, Rotation + status_t captureScreen(const sp &, const sp &, Rect, uint32_t, + uint32_t, uint32_t, uint32_t, bool, Rotation #ifdef CM_BUILD - , bool + , + bool #endif - ) { + ) + { return BAD_VALUE; } - status_t clearAnimationFrameStats() { - return BAD_VALUE; - } + status_t clearAnimationFrameStats() { return BAD_VALUE; } - status_t getAnimationFrameStats(FrameStats*) const { - return BAD_VALUE; - } + status_t getAnimationFrameStats(FrameStats *) const { return BAD_VALUE; } }; #include @@ -117,11 +100,10 @@ class FakePermissionController : public BinderService, public BnPermissionController { public: - static char const *getServiceName() { - return "permission"; - } + static char const *getServiceName() { return "permission"; } - bool checkPermission(const String16& permission, int32_t, int32_t) { + bool checkPermission(const String16 &permission, int32_t, int32_t) + { if (permission == String16("android.permission.CAMERA")) { return true; } @@ -129,70 +111,64 @@ class FakePermissionController : public BinderService, return false; } - void getPackagesForUid(const uid_t uid, Vector &packages) { - } + void getPackagesForUid(const uid_t uid, Vector &packages) { } - bool isRuntimePermission(const String16& permission) { - return false; - } + bool isRuntimePermission(const String16 &permission) { return false; } }; #include #include -class FakeAppOps : public BinderService, - public BnAppOpsService +class FakeAppOps : public BinderService, public BnAppOpsService { public: - static char const *getServiceName() { - return "appops"; - } - - virtual int32_t checkOperation(int32_t, int32_t, const String16&) { - return android::AppOpsManager::MODE_ALLOWED; - } - - virtual int32_t noteOperation(int32_t, int32_t, const String16&) { - return android::AppOpsManager::MODE_ALLOWED; - } - - virtual int32_t startOperation(const sp&, int32_t, int32_t, - const String16&) { - return android::AppOpsManager::MODE_ALLOWED; - } - - virtual void finishOperation(const sp&, int32_t, int32_t, const String16&) { - // Nothing - } - - virtual void startWatchingMode(int32_t, const String16&, const sp&) { - // Nothing - } - - void stopWatchingMode(const sp&) { - // Nothing - } - - virtual sp getToken(const sp&) { - return NULL; - } - - virtual int32_t permissionToOpCode(const String16& permission) { - return 0; - } + static char const *getServiceName() { return "appops"; } + + virtual int32_t checkOperation(int32_t, int32_t, const String16 &) + { + return android::AppOpsManager::MODE_ALLOWED; + } + + virtual int32_t noteOperation(int32_t, int32_t, const String16 &) + { + return android::AppOpsManager::MODE_ALLOWED; + } + + virtual int32_t startOperation(const sp &, int32_t, int32_t, const String16 &) + { + return android::AppOpsManager::MODE_ALLOWED; + } + + virtual void finishOperation(const sp &, int32_t, int32_t, const String16 &) + { + // Nothing + } + + virtual void startWatchingMode(int32_t, const String16 &, const sp &) + { + // Nothing + } + + void stopWatchingMode(const sp &) + { + // Nothing + } + + virtual sp getToken(const sp &) { return NULL; } + + virtual int32_t permissionToOpCode(const String16 &permission) { return 0; } }; #include class FakeProcessInfoService : public BinderService, - public BnProcessInfoService + public BnProcessInfoService { public: - static char const *getServiceName() { - return "processinfo"; - } + static char const *getServiceName() { return "processinfo"; } - status_t getProcessStatesFromPids(size_t length, int32_t* pids, int32_t* states) { - for (int i=0; i< length; i++) + status_t getProcessStatesFromPids(size_t length, int32_t *pids, int32_t *states) + { + for (int i = 0; i < length; i++) states[i] = 0; return 0; } @@ -201,46 +177,38 @@ class FakeProcessInfoService : public BinderService, #include class FakeCameraServiceProxy : public BinderService, - public BnCameraServiceProxy + public BnCameraServiceProxy { public: - static char const *getServiceName() { - return "media.camera.proxy"; - } + static char const *getServiceName() { return "media.camera.proxy"; } - void pingForUserUpdate() { - } + void pingForUserUpdate() { } - void notifyCameraState(String16 cameraId, CameraState newCameraState) { - } + void notifyCameraState(String16 cameraId, CameraState newCameraState) { } }; #include -class FakeBatteryStats : public BinderService, - public BnBatteryStats +class FakeBatteryStats : public BinderService, public BnBatteryStats { public: - static char const *getServiceName() { - return "batterystats"; - } - void noteStartSensor(int uid, int sensor) { } - void noteStopSensor(int uid, int sensor) { } - void noteStartVideo(int uid) { } - void noteStopVideo(int uid) { } - void noteStartAudio(int uid) { } - void noteStopAudio(int uid) { } - void noteResetVideo() { } - void noteResetAudio() { } - void noteFlashlightOn(int uid) { } - void noteFlashlightOff(int uid) { } - void noteStartCamera(int uid) { } - void noteStopCamera(int uid) { } - void noteResetCamera() { } - void noteResetFlashlight() { } + static char const *getServiceName() { return "batterystats"; } + void noteStartSensor(int uid, int sensor) { } + void noteStopSensor(int uid, int sensor) { } + void noteStartVideo(int uid) { } + void noteStopVideo(int uid) { } + void noteStartAudio(int uid) { } + void noteStopAudio(int uid) { } + void noteResetVideo() { } + void noteResetAudio() { } + void noteFlashlightOn(int uid) { } + void noteFlashlightOff(int uid) { } + void noteStartCamera(int uid) { } + void noteStopCamera(int uid) { } + void noteResetCamera() { } + void noteResetFlashlight() { } }; - #include #include #include @@ -249,45 +217,32 @@ class FakeBatteryStats : public BinderService, class FakeSensorEventConnection : public BnSensorEventConnection { sp mChannel; + public: - FakeSensorEventConnection() - { - mChannel = new BitTube(0); - } - sp getSensorChannel() const { - return mChannel; - } + FakeSensorEventConnection() { mChannel = new BitTube(0); } + sp getSensorChannel() const { return mChannel; } status_t enableDisable(int handle, bool enabled, nsecs_t samplingPeriodNs, - nsecs_t maxBatchReportLatencyNs, int reservedFlags) { - return 0; - } - status_t setEventRate(int handle, nsecs_t ns) { - return 0; - } - status_t flush() { + nsecs_t maxBatchReportLatencyNs, int reservedFlags) + { return 0; } + status_t setEventRate(int handle, nsecs_t ns) { return 0; } + status_t flush() { return 0; } }; -class FakeSensorServer : public BinderService, - public BnSensorServer +class FakeSensorServer : public BinderService, public BnSensorServer { public: - static char const *getServiceName() { - return "sensorservice"; - } + static char const *getServiceName() { return "sensorservice"; } - Vector getSensorList(const String16& opPackageName) { - return Vector(); - } + Vector getSensorList(const String16 &opPackageName) { return Vector(); } - sp createSensorEventConnection(const String8& packageName, - int mode, const String16& opPackageName) { + sp createSensorEventConnection(const String8 &packageName, int mode, + const String16 &opPackageName) + { return sp(new FakeSensorEventConnection); } - int32_t isDataInjectionEnabled() { - return 0; - } + int32_t isDataInjectionEnabled() { return 0; } }; #include @@ -296,23 +251,18 @@ class FakeSensorServer : public BinderService, #include class FakeResourceManagerService : public BinderService, - public BnResourceManagerService + public BnResourceManagerService { public: - static char const *getServiceName() { - return "media.resource_manager"; - } - void config(const Vector &policies) { - } + static char const *getServiceName() { return "media.resource_manager"; } + void config(const Vector &policies) { } void addResource(int pid, int64_t clientId, const sp client, - const Vector &resources) { + const Vector &resources) + { } - void removeResource(int pid, int64_t clientId) { - } + void removeResource(int pid, int64_t clientId) { } - bool reclaimResource(int callingPid, const Vector &resources) { - return true; - } + bool reclaimResource(int callingPid, const Vector &resources) { return true; } }; diff --git a/services/services_7_0_0.h b/services/services_7_0_0.h index f1b8a89..cd0533b 100644 --- a/services/services_7_0_0.h +++ b/services/services_7_0_0.h @@ -28,90 +28,74 @@ class MiniSurfaceFlinger : public BinderService, public IBinder::DeathRecipient { public: - static char const *getServiceName() { - return "SurfaceFlinger"; - } + static char const *getServiceName() { return "SurfaceFlinger"; } - void binderDied(const wp&) { + void binderDied(const wp &) + { // Nothing } - sp createConnection() { - return sp(); - } + sp createConnection() { return sp(); } - sp createGraphicBufferAlloc() { + sp createGraphicBufferAlloc() + { sp gba(new DroidMediaAllocator()); return gba; } - sp createDisplayEventConnection() { + sp createDisplayEventConnection() + { return sp(); } - sp createDisplay(const String8&, bool) { - return NULL; - } + sp createDisplay(const String8 &, bool) { return NULL; } - void destroyDisplay(const sp&) { + void destroyDisplay(const sp &) + { // Nothing } - virtual sp getBuiltInDisplay(int32_t) { - return NULL; - } + virtual sp getBuiltInDisplay(int32_t) { return NULL; } - void setTransactionState(const Vector&, const Vector&, uint32_t) { + void setTransactionState(const Vector &, const Vector &, uint32_t) + { // Nothing } - void bootFinished() { - // Nothing - } - - bool authenticateSurfaceTexture(const sp&) const { - return true; + void bootFinished() + { + // Nothing } - void setPowerMode(const sp&, int) { + bool authenticateSurfaceTexture(const sp &) const { return true; } - } + void setPowerMode(const sp &, int) { } - status_t getDisplayConfigs(const sp&, Vector*) { - return BAD_VALUE; - } + status_t getDisplayConfigs(const sp &, Vector *) { return BAD_VALUE; } - status_t getDisplayStats(const sp&, DisplayStatInfo*) { - return BAD_VALUE; - } + status_t getDisplayStats(const sp &, DisplayStatInfo *) { return BAD_VALUE; } - int getActiveConfig(const sp&) { - return 0; - } + int getActiveConfig(const sp &) { return 0; } - status_t setActiveConfig(const sp&, int) { - return BAD_VALUE; - } + status_t setActiveConfig(const sp &, int) { return BAD_VALUE; } - status_t captureScreen(const sp&, const sp&, - Rect, uint32_t, uint32_t, uint32_t, uint32_t, - bool, Rotation + status_t captureScreen(const sp &, const sp &, Rect, uint32_t, + uint32_t, uint32_t, uint32_t, bool, Rotation #ifdef CM_BUILD - , bool + , + bool #endif - ) { + ) + { return BAD_VALUE; } - status_t clearAnimationFrameStats() { - return BAD_VALUE; - } + status_t clearAnimationFrameStats() { return BAD_VALUE; } - status_t getAnimationFrameStats(FrameStats*) const { - return BAD_VALUE; - } + status_t getAnimationFrameStats(FrameStats *) const { return BAD_VALUE; } - status_t getHdrCapabilities(const sp& display, HdrCapabilities* outCapabilities) const { + status_t getHdrCapabilities(const sp &display, HdrCapabilities *outCapabilities) const + { return BAD_VALUE; } }; @@ -122,11 +106,10 @@ class FakePermissionController : public BinderService, public BnPermissionController { public: - static char const *getServiceName() { - return "permission"; - } + static char const *getServiceName() { return "permission"; } - bool checkPermission(const String16& permission, int32_t, int32_t) { + bool checkPermission(const String16 &permission, int32_t, int32_t) + { if (permission == String16("android.permission.CAMERA")) { return true; } @@ -134,149 +117,146 @@ class FakePermissionController : public BinderService, return false; } - void getPackagesForUid(const uid_t uid, Vector &packages) { - } + void getPackagesForUid(const uid_t uid, Vector &packages) { } - bool isRuntimePermission(const String16& permission) { - return false; - } + bool isRuntimePermission(const String16 &permission) { return false; } }; #include #include -class FakeAppOps : public BinderService, - public BnAppOpsService +class FakeAppOps : public BinderService, public BnAppOpsService { public: - static char const *getServiceName() { - return "appops"; - } - - virtual int32_t checkOperation(int32_t, int32_t, const String16&) { - return android::AppOpsManager::MODE_ALLOWED; - } - - virtual int32_t noteOperation(int32_t, int32_t, const String16&) { - return android::AppOpsManager::MODE_ALLOWED; - } - - virtual int32_t startOperation(const sp&, int32_t, int32_t, - const String16&) { - return android::AppOpsManager::MODE_ALLOWED; - } - - virtual void finishOperation(const sp&, int32_t, int32_t, const String16&) { - // Nothing - } - - virtual void startWatchingMode(int32_t, const String16&, const sp&) { - // Nothing - } - - void stopWatchingMode(const sp&) { - // Nothing - } - - virtual sp getToken(const sp&) { - return NULL; - } - - virtual int32_t permissionToOpCode(const String16& permission) { - return 0; - } + static char const *getServiceName() { return "appops"; } + + virtual int32_t checkOperation(int32_t, int32_t, const String16 &) + { + return android::AppOpsManager::MODE_ALLOWED; + } + + virtual int32_t noteOperation(int32_t, int32_t, const String16 &) + { + return android::AppOpsManager::MODE_ALLOWED; + } + + virtual int32_t startOperation(const sp &, int32_t, int32_t, const String16 &) + { + return android::AppOpsManager::MODE_ALLOWED; + } + + virtual void finishOperation(const sp &, int32_t, int32_t, const String16 &) + { + // Nothing + } + + virtual void startWatchingMode(int32_t, const String16 &, const sp &) + { + // Nothing + } + + void stopWatchingMode(const sp &) + { + // Nothing + } + + virtual sp getToken(const sp &) { return NULL; } + + virtual int32_t permissionToOpCode(const String16 &permission) { return 0; } }; #include -class BnProcessInfoService : public BnInterface { +class BnProcessInfoService : public BnInterface +{ public: - virtual status_t onTransact( uint32_t code, - const Parcel& data, - Parcel* reply, - uint32_t flags = 0); + virtual status_t onTransact(uint32_t code, const Parcel &data, Parcel *reply, + uint32_t flags = 0); }; -status_t BnProcessInfoService::onTransact( uint32_t code, const Parcel& data, Parcel* reply, - uint32_t flags) { - switch(code) { - case GET_PROCESS_STATES_FROM_PIDS: { - CHECK_INTERFACE(IProcessInfoService, data, reply); - int32_t arrayLen = data.readInt32(); - if (arrayLen <= 0) { - reply->writeNoException(); - reply->writeInt32(0); - reply->writeInt32(NOT_ENOUGH_DATA); - return NO_ERROR; - } - - size_t len = static_cast(arrayLen); - int32_t pids[len]; - status_t res = data.read(pids, len * sizeof(*pids)); - - // Ignore output array length returned in the parcel here, as the states array must - // always be the same length as the input PIDs array. - int32_t states[len]; - for (size_t i = 0; i < len; i++) states[i] = -1; - if (res == NO_ERROR) { - res = getProcessStatesFromPids(len, /*in*/ pids, /*out*/ states); - } +status_t BnProcessInfoService::onTransact(uint32_t code, const Parcel &data, Parcel *reply, + uint32_t flags) +{ + switch (code) { + case GET_PROCESS_STATES_FROM_PIDS: { + CHECK_INTERFACE(IProcessInfoService, data, reply); + int32_t arrayLen = data.readInt32(); + if (arrayLen <= 0) { reply->writeNoException(); - reply->writeInt32Array(len, states); - reply->writeInt32(res); + reply->writeInt32(0); + reply->writeInt32(NOT_ENOUGH_DATA); return NO_ERROR; - } break; - case GET_PROCESS_STATES_AND_OOM_SCORES_FROM_PIDS: { - CHECK_INTERFACE(IProcessInfoService, data, reply); - int32_t arrayLen = data.readInt32(); - if (arrayLen <= 0) { - reply->writeNoException(); - reply->writeInt32(0); - reply->writeInt32(NOT_ENOUGH_DATA); - return NO_ERROR; - } - - size_t len = static_cast(arrayLen); - int32_t pids[len]; - status_t res = data.read(pids, len * sizeof(*pids)); - - // Ignore output array length returned in the parcel here, as the - // states array must always be the same length as the input PIDs array. - int32_t states[len]; - int32_t scores[len]; - for (size_t i = 0; i < len; i++) { - states[i] = -1; - scores[i] = -10000; - } - if (res == NO_ERROR) { - res = getProcessStatesAndOomScoresFromPids( - len, /*in*/ pids, /*out*/ states, /*out*/ scores); - } + } + + size_t len = static_cast(arrayLen); + int32_t pids[len]; + status_t res = data.read(pids, len * sizeof(*pids)); + + // Ignore output array length returned in the parcel here, as the states + // array must always be the same length as the input PIDs array. + int32_t states[len]; + for (size_t i = 0; i < len; i++) + states[i] = -1; + if (res == NO_ERROR) { + res = getProcessStatesFromPids(len, /*in*/ pids, /*out*/ states); + } + reply->writeNoException(); + reply->writeInt32Array(len, states); + reply->writeInt32(res); + return NO_ERROR; + } break; + case GET_PROCESS_STATES_AND_OOM_SCORES_FROM_PIDS: { + CHECK_INTERFACE(IProcessInfoService, data, reply); + int32_t arrayLen = data.readInt32(); + if (arrayLen <= 0) { reply->writeNoException(); - reply->writeInt32Array(len, states); - reply->writeInt32Array(len, scores); - reply->writeInt32(res); + reply->writeInt32(0); + reply->writeInt32(NOT_ENOUGH_DATA); return NO_ERROR; - } break; - default: - return BBinder::onTransact(code, data, reply, flags); + } + + size_t len = static_cast(arrayLen); + int32_t pids[len]; + status_t res = data.read(pids, len * sizeof(*pids)); + + // Ignore output array length returned in the parcel here, as the + // states array must always be the same length as the input PIDs array. + int32_t states[len]; + int32_t scores[len]; + for (size_t i = 0; i < len; i++) { + states[i] = -1; + scores[i] = -10000; + } + if (res == NO_ERROR) { + res = getProcessStatesAndOomScoresFromPids(len, /*in*/ pids, /*out*/ states, + /*out*/ scores); + } + reply->writeNoException(); + reply->writeInt32Array(len, states); + reply->writeInt32Array(len, scores); + reply->writeInt32(res); + return NO_ERROR; + } break; + default: + return BBinder::onTransact(code, data, reply, flags); } } class FakeProcessInfoService : public BinderService, - public BnProcessInfoService + public BnProcessInfoService { public: - static char const *getServiceName() { - return "processinfo"; - } + static char const *getServiceName() { return "processinfo"; } - status_t getProcessStatesFromPids(size_t length, int32_t* pids, int32_t* states) { - for (int i=0; i< length; i++) + status_t getProcessStatesFromPids(size_t length, int32_t *pids, int32_t *states) + { + for (int i = 0; i < length; i++) states[i] = 0; return 0; } - status_t getProcessStatesAndOomScoresFromPids( size_t length, int32_t* pids, int32_t* states, int32_t* scores) { - for (int i=0; i< length; i++) { + status_t getProcessStatesAndOomScoresFromPids(size_t length, int32_t *pids, int32_t *states, + int32_t *scores) + { + for (int i = 0; i < length; i++) { states[i] = 0; scores[i] = 0; } @@ -287,46 +267,38 @@ class FakeProcessInfoService : public BinderService, #include class FakeCameraServiceProxy : public BinderService, - public BnCameraServiceProxy + public BnCameraServiceProxy { public: - static char const *getServiceName() { - return "media.camera.proxy"; - } + static char const *getServiceName() { return "media.camera.proxy"; } - void pingForUserUpdate() { - } + void pingForUserUpdate() { } - void notifyCameraState(String16 cameraId, CameraState newCameraState) { - } + void notifyCameraState(String16 cameraId, CameraState newCameraState) { } }; #include -class FakeBatteryStats : public BinderService, - public BnBatteryStats +class FakeBatteryStats : public BinderService, public BnBatteryStats { public: - static char const *getServiceName() { - return "batterystats"; - } - void noteStartSensor(int uid, int sensor) { } - void noteStopSensor(int uid, int sensor) { } - void noteStartVideo(int uid) { } - void noteStopVideo(int uid) { } - void noteStartAudio(int uid) { } - void noteStopAudio(int uid) { } - void noteResetVideo() { } - void noteResetAudio() { } - void noteFlashlightOn(int uid) { } - void noteFlashlightOff(int uid) { } - void noteStartCamera(int uid) { } - void noteStopCamera(int uid) { } - void noteResetCamera() { } - void noteResetFlashlight() { } + static char const *getServiceName() { return "batterystats"; } + void noteStartSensor(int uid, int sensor) { } + void noteStopSensor(int uid, int sensor) { } + void noteStartVideo(int uid) { } + void noteStopVideo(int uid) { } + void noteStartAudio(int uid) { } + void noteStopAudio(int uid) { } + void noteResetVideo() { } + void noteResetAudio() { } + void noteFlashlightOn(int uid) { } + void noteFlashlightOff(int uid) { } + void noteStartCamera(int uid) { } + void noteStopCamera(int uid) { } + void noteResetCamera() { } + void noteResetFlashlight() { } }; - #include #include #include @@ -335,49 +307,34 @@ class FakeBatteryStats : public BinderService, class FakeSensorEventConnection : public BnSensorEventConnection { sp mChannel; + public: - FakeSensorEventConnection() - { - mChannel = new BitTube(0); - } - sp getSensorChannel() const { - return mChannel; - } + FakeSensorEventConnection() { mChannel = new BitTube(0); } + sp getSensorChannel() const { return mChannel; } status_t enableDisable(int handle, bool enabled, nsecs_t samplingPeriodNs, - nsecs_t maxBatchReportLatencyNs, int reservedFlags) { - return 0; - } - status_t setEventRate(int handle, nsecs_t ns) { - return 0; - } - status_t flush() { + nsecs_t maxBatchReportLatencyNs, int reservedFlags) + { return 0; } + status_t setEventRate(int handle, nsecs_t ns) { return 0; } + status_t flush() { return 0; } }; -class FakeSensorServer : public BinderService, - public BnSensorServer +class FakeSensorServer : public BinderService, public BnSensorServer { public: - static char const *getServiceName() { - return "sensorservice"; - } + static char const *getServiceName() { return "sensorservice"; } - Vector getSensorList(const String16& opPackageName) { - return Vector(); - } - - Vector getDynamicSensorList(const String16& opPackageName) { - return Vector(); - } - - sp createSensorEventConnection(const String8& packageName, - int mode, const String16& opPackageName) { + Vector getSensorList(const String16 &opPackageName) { return Vector(); } + + Vector getDynamicSensorList(const String16 &opPackageName) { return Vector(); } + + sp createSensorEventConnection(const String8 &packageName, int mode, + const String16 &opPackageName) + { return sp(new FakeSensorEventConnection); } - int32_t isDataInjectionEnabled() { - return 0; - } + int32_t isDataInjectionEnabled() { return 0; } }; #include @@ -386,24 +343,18 @@ class FakeSensorServer : public BinderService, #include class FakeResourceManagerService : public BinderService, - public BnResourceManagerService + public BnResourceManagerService { public: - static char const *getServiceName() { - return "media.resource_manager"; - } - void config(const Vector &policies) { - } + static char const *getServiceName() { return "media.resource_manager"; } + void config(const Vector &policies) { } void addResource(int pid, int64_t clientId, const sp client, - const Vector &resources) { + const Vector &resources) + { } - void removeResource(int pid, int64_t clientId) { - } + void removeResource(int pid, int64_t clientId) { } - bool reclaimResource(int callingPid, const Vector &resources) { - return true; - } + bool reclaimResource(int callingPid, const Vector &resources) { return true; } }; - diff --git a/services/services_7_1_0.h b/services/services_7_1_0.h index 75ea8fa..95fd231 100644 --- a/services/services_7_1_0.h +++ b/services/services_7_1_0.h @@ -23,108 +23,94 @@ using namespace android; #include #include - class MiniSurfaceFlinger : public BinderService, public BnSurfaceComposer, public IBinder::DeathRecipient { public: - static char const *getServiceName() { - return "SurfaceFlinger"; - } + static char const *getServiceName() { return "SurfaceFlinger"; } - void binderDied(const wp&) { + void binderDied(const wp &) + { // Nothing } - sp createConnection() { - return sp(); - } + sp createConnection() { return sp(); } - sp createGraphicBufferAlloc() { + sp createGraphicBufferAlloc() + { sp gba(new DroidMediaAllocator()); return gba; } - sp createDisplayEventConnection() { + sp createDisplayEventConnection() + { return sp(); } - sp createDisplay(const String8&, bool) { - return NULL; - } + sp createDisplay(const String8 &, bool) { return NULL; } - void destroyDisplay(const sp&) { + void destroyDisplay(const sp &) + { // Nothing } - virtual sp getBuiltInDisplay(int32_t) { - return NULL; - } + virtual sp getBuiltInDisplay(int32_t) { return NULL; } - void setTransactionState(const Vector&, const Vector&, uint32_t) { + void setTransactionState(const Vector &, const Vector &, uint32_t) + { // Nothing } - void bootFinished() { - // Nothing - } - - bool authenticateSurfaceTexture(const sp&) const { - return true; + void bootFinished() + { + // Nothing } - void setPowerMode(const sp&, int) { + bool authenticateSurfaceTexture(const sp &) const { return true; } - } + void setPowerMode(const sp &, int) { } - status_t getDisplayConfigs(const sp&, Vector*) { - return BAD_VALUE; - } + status_t getDisplayConfigs(const sp &, Vector *) { return BAD_VALUE; } - status_t getDisplayStats(const sp&, DisplayStatInfo*) { - return BAD_VALUE; - } + status_t getDisplayStats(const sp &, DisplayStatInfo *) { return BAD_VALUE; } - int getActiveConfig(const sp&) { - return 0; - } + int getActiveConfig(const sp &) { return 0; } - status_t setActiveConfig(const sp&, int) { - return BAD_VALUE; - } + status_t setActiveConfig(const sp &, int) { return BAD_VALUE; } - status_t captureScreen(const sp&, const sp&, - Rect, uint32_t, uint32_t, uint32_t, uint32_t, - bool, Rotation + status_t captureScreen(const sp &, const sp &, Rect, uint32_t, + uint32_t, uint32_t, uint32_t, bool, Rotation #ifdef CM_BUILD - , bool + , + bool #endif - ) { + ) + { return BAD_VALUE; } - status_t clearAnimationFrameStats() { - return BAD_VALUE; - } + status_t clearAnimationFrameStats() { return BAD_VALUE; } - status_t getAnimationFrameStats(FrameStats*) const { - return BAD_VALUE; - } + status_t getAnimationFrameStats(FrameStats *) const { return BAD_VALUE; } - status_t getDisplayColorModes(const sp& display, Vector* configs) { + status_t getDisplayColorModes(const sp &display, Vector *configs) + { return BAD_VALUE; } - android_color_mode_t getActiveColorMode(const sp& display) { + android_color_mode_t getActiveColorMode(const sp &display) + { return HAL_COLOR_MODE_NATIVE; } - status_t setActiveColorMode(const sp& display, android_color_mode_t colorMode) { + status_t setActiveColorMode(const sp &display, android_color_mode_t colorMode) + { return BAD_VALUE; } - status_t getHdrCapabilities(const sp& display, HdrCapabilities* outCapabilities) const { + status_t getHdrCapabilities(const sp &display, HdrCapabilities *outCapabilities) const + { return BAD_VALUE; } }; @@ -135,11 +121,10 @@ class FakePermissionController : public BinderService, public BnPermissionController { public: - static char const *getServiceName() { - return "permission"; - } + static char const *getServiceName() { return "permission"; } - bool checkPermission(const String16& permission, int32_t, int32_t) { + bool checkPermission(const String16 &permission, int32_t, int32_t) + { if (permission == String16("android.permission.CAMERA")) { return true; } @@ -147,149 +132,146 @@ class FakePermissionController : public BinderService, return false; } - void getPackagesForUid(const uid_t uid, Vector &packages) { - } + void getPackagesForUid(const uid_t uid, Vector &packages) { } - bool isRuntimePermission(const String16& permission) { - return false; - } + bool isRuntimePermission(const String16 &permission) { return false; } }; #include #include -class FakeAppOps : public BinderService, - public BnAppOpsService +class FakeAppOps : public BinderService, public BnAppOpsService { public: - static char const *getServiceName() { - return "appops"; - } - - virtual int32_t checkOperation(int32_t, int32_t, const String16&) { - return android::AppOpsManager::MODE_ALLOWED; - } - - virtual int32_t noteOperation(int32_t, int32_t, const String16&) { - return android::AppOpsManager::MODE_ALLOWED; - } - - virtual int32_t startOperation(const sp&, int32_t, int32_t, - const String16&) { - return android::AppOpsManager::MODE_ALLOWED; - } - - virtual void finishOperation(const sp&, int32_t, int32_t, const String16&) { - // Nothing - } - - virtual void startWatchingMode(int32_t, const String16&, const sp&) { - // Nothing - } - - void stopWatchingMode(const sp&) { - // Nothing - } - - virtual sp getToken(const sp&) { - return NULL; - } - - virtual int32_t permissionToOpCode(const String16& permission) { - return 0; - } + static char const *getServiceName() { return "appops"; } + + virtual int32_t checkOperation(int32_t, int32_t, const String16 &) + { + return android::AppOpsManager::MODE_ALLOWED; + } + + virtual int32_t noteOperation(int32_t, int32_t, const String16 &) + { + return android::AppOpsManager::MODE_ALLOWED; + } + + virtual int32_t startOperation(const sp &, int32_t, int32_t, const String16 &) + { + return android::AppOpsManager::MODE_ALLOWED; + } + + virtual void finishOperation(const sp &, int32_t, int32_t, const String16 &) + { + // Nothing + } + + virtual void startWatchingMode(int32_t, const String16 &, const sp &) + { + // Nothing + } + + void stopWatchingMode(const sp &) + { + // Nothing + } + + virtual sp getToken(const sp &) { return NULL; } + + virtual int32_t permissionToOpCode(const String16 &permission) { return 0; } }; #include -class BnProcessInfoService : public BnInterface { +class BnProcessInfoService : public BnInterface +{ public: - virtual status_t onTransact( uint32_t code, - const Parcel& data, - Parcel* reply, - uint32_t flags = 0); + virtual status_t onTransact(uint32_t code, const Parcel &data, Parcel *reply, + uint32_t flags = 0); }; -status_t BnProcessInfoService::onTransact( uint32_t code, const Parcel& data, Parcel* reply, - uint32_t flags) { - switch(code) { - case GET_PROCESS_STATES_FROM_PIDS: { - CHECK_INTERFACE(IProcessInfoService, data, reply); - int32_t arrayLen = data.readInt32(); - if (arrayLen <= 0) { - reply->writeNoException(); - reply->writeInt32(0); - reply->writeInt32(NOT_ENOUGH_DATA); - return NO_ERROR; - } - - size_t len = static_cast(arrayLen); - int32_t pids[len]; - status_t res = data.read(pids, len * sizeof(*pids)); - - // Ignore output array length returned in the parcel here, as the states array must - // always be the same length as the input PIDs array. - int32_t states[len]; - for (size_t i = 0; i < len; i++) states[i] = -1; - if (res == NO_ERROR) { - res = getProcessStatesFromPids(len, /*in*/ pids, /*out*/ states); - } +status_t BnProcessInfoService::onTransact(uint32_t code, const Parcel &data, Parcel *reply, + uint32_t flags) +{ + switch (code) { + case GET_PROCESS_STATES_FROM_PIDS: { + CHECK_INTERFACE(IProcessInfoService, data, reply); + int32_t arrayLen = data.readInt32(); + if (arrayLen <= 0) { reply->writeNoException(); - reply->writeInt32Array(len, states); - reply->writeInt32(res); + reply->writeInt32(0); + reply->writeInt32(NOT_ENOUGH_DATA); return NO_ERROR; - } break; - case GET_PROCESS_STATES_AND_OOM_SCORES_FROM_PIDS: { - CHECK_INTERFACE(IProcessInfoService, data, reply); - int32_t arrayLen = data.readInt32(); - if (arrayLen <= 0) { - reply->writeNoException(); - reply->writeInt32(0); - reply->writeInt32(NOT_ENOUGH_DATA); - return NO_ERROR; - } - - size_t len = static_cast(arrayLen); - int32_t pids[len]; - status_t res = data.read(pids, len * sizeof(*pids)); - - // Ignore output array length returned in the parcel here, as the - // states array must always be the same length as the input PIDs array. - int32_t states[len]; - int32_t scores[len]; - for (size_t i = 0; i < len; i++) { - states[i] = -1; - scores[i] = -10000; - } - if (res == NO_ERROR) { - res = getProcessStatesAndOomScoresFromPids( - len, /*in*/ pids, /*out*/ states, /*out*/ scores); - } + } + + size_t len = static_cast(arrayLen); + int32_t pids[len]; + status_t res = data.read(pids, len * sizeof(*pids)); + + // Ignore output array length returned in the parcel here, as the states + // array must always be the same length as the input PIDs array. + int32_t states[len]; + for (size_t i = 0; i < len; i++) + states[i] = -1; + if (res == NO_ERROR) { + res = getProcessStatesFromPids(len, /*in*/ pids, /*out*/ states); + } + reply->writeNoException(); + reply->writeInt32Array(len, states); + reply->writeInt32(res); + return NO_ERROR; + } break; + case GET_PROCESS_STATES_AND_OOM_SCORES_FROM_PIDS: { + CHECK_INTERFACE(IProcessInfoService, data, reply); + int32_t arrayLen = data.readInt32(); + if (arrayLen <= 0) { reply->writeNoException(); - reply->writeInt32Array(len, states); - reply->writeInt32Array(len, scores); - reply->writeInt32(res); + reply->writeInt32(0); + reply->writeInt32(NOT_ENOUGH_DATA); return NO_ERROR; - } break; - default: - return BBinder::onTransact(code, data, reply, flags); + } + + size_t len = static_cast(arrayLen); + int32_t pids[len]; + status_t res = data.read(pids, len * sizeof(*pids)); + + // Ignore output array length returned in the parcel here, as the + // states array must always be the same length as the input PIDs array. + int32_t states[len]; + int32_t scores[len]; + for (size_t i = 0; i < len; i++) { + states[i] = -1; + scores[i] = -10000; + } + if (res == NO_ERROR) { + res = getProcessStatesAndOomScoresFromPids(len, /*in*/ pids, /*out*/ states, + /*out*/ scores); + } + reply->writeNoException(); + reply->writeInt32Array(len, states); + reply->writeInt32Array(len, scores); + reply->writeInt32(res); + return NO_ERROR; + } break; + default: + return BBinder::onTransact(code, data, reply, flags); } } class FakeProcessInfoService : public BinderService, - public BnProcessInfoService + public BnProcessInfoService { public: - static char const *getServiceName() { - return "processinfo"; - } + static char const *getServiceName() { return "processinfo"; } - status_t getProcessStatesFromPids(size_t length, int32_t* pids, int32_t* states) { - for (int i=0; i< length; i++) + status_t getProcessStatesFromPids(size_t length, int32_t *pids, int32_t *states) + { + for (int i = 0; i < length; i++) states[i] = 0; return 0; } - status_t getProcessStatesAndOomScoresFromPids( size_t length, int32_t* pids, int32_t* states, int32_t* scores) { - for (int i=0; i< length; i++) { + status_t getProcessStatesAndOomScoresFromPids(size_t length, int32_t *pids, int32_t *states, + int32_t *scores) + { + for (int i = 0; i < length; i++) { states[i] = 0; scores[i] = 0; } @@ -300,46 +282,38 @@ class FakeProcessInfoService : public BinderService, #include class FakeCameraServiceProxy : public BinderService, - public BnCameraServiceProxy + public BnCameraServiceProxy { public: - static char const *getServiceName() { - return "media.camera.proxy"; - } + static char const *getServiceName() { return "media.camera.proxy"; } - void pingForUserUpdate() { - } + void pingForUserUpdate() { } - void notifyCameraState(String16 cameraId, CameraState newCameraState) { - } + void notifyCameraState(String16 cameraId, CameraState newCameraState) { } }; #include -class FakeBatteryStats : public BinderService, - public BnBatteryStats +class FakeBatteryStats : public BinderService, public BnBatteryStats { public: - static char const *getServiceName() { - return "batterystats"; - } - void noteStartSensor(int uid, int sensor) { } - void noteStopSensor(int uid, int sensor) { } - void noteStartVideo(int uid) { } - void noteStopVideo(int uid) { } - void noteStartAudio(int uid) { } - void noteStopAudio(int uid) { } - void noteResetVideo() { } - void noteResetAudio() { } - void noteFlashlightOn(int uid) { } - void noteFlashlightOff(int uid) { } - void noteStartCamera(int uid) { } - void noteStopCamera(int uid) { } - void noteResetCamera() { } - void noteResetFlashlight() { } + static char const *getServiceName() { return "batterystats"; } + void noteStartSensor(int uid, int sensor) { } + void noteStopSensor(int uid, int sensor) { } + void noteStartVideo(int uid) { } + void noteStopVideo(int uid) { } + void noteStartAudio(int uid) { } + void noteStopAudio(int uid) { } + void noteResetVideo() { } + void noteResetAudio() { } + void noteFlashlightOn(int uid) { } + void noteFlashlightOff(int uid) { } + void noteStartCamera(int uid) { } + void noteStopCamera(int uid) { } + void noteResetCamera() { } + void noteResetFlashlight() { } }; - #include #include #include @@ -348,49 +322,34 @@ class FakeBatteryStats : public BinderService, class FakeSensorEventConnection : public BnSensorEventConnection { sp mChannel; + public: - FakeSensorEventConnection() - { - mChannel = new BitTube(0); - } - sp getSensorChannel() const { - return mChannel; - } + FakeSensorEventConnection() { mChannel = new BitTube(0); } + sp getSensorChannel() const { return mChannel; } status_t enableDisable(int handle, bool enabled, nsecs_t samplingPeriodNs, - nsecs_t maxBatchReportLatencyNs, int reservedFlags) { - return 0; - } - status_t setEventRate(int handle, nsecs_t ns) { - return 0; - } - status_t flush() { + nsecs_t maxBatchReportLatencyNs, int reservedFlags) + { return 0; } + status_t setEventRate(int handle, nsecs_t ns) { return 0; } + status_t flush() { return 0; } }; -class FakeSensorServer : public BinderService, - public BnSensorServer +class FakeSensorServer : public BinderService, public BnSensorServer { public: - static char const *getServiceName() { - return "sensorservice"; - } + static char const *getServiceName() { return "sensorservice"; } - Vector getSensorList(const String16& opPackageName) { - return Vector(); - } - - Vector getDynamicSensorList(const String16& opPackageName) { - return Vector(); - } - - sp createSensorEventConnection(const String8& packageName, - int mode, const String16& opPackageName) { + Vector getSensorList(const String16 &opPackageName) { return Vector(); } + + Vector getDynamicSensorList(const String16 &opPackageName) { return Vector(); } + + sp createSensorEventConnection(const String8 &packageName, int mode, + const String16 &opPackageName) + { return sp(new FakeSensorEventConnection); } - int32_t isDataInjectionEnabled() { - return 0; - } + int32_t isDataInjectionEnabled() { return 0; } }; #include @@ -399,24 +358,18 @@ class FakeSensorServer : public BinderService, #include class FakeResourceManagerService : public BinderService, - public BnResourceManagerService + public BnResourceManagerService { public: - static char const *getServiceName() { - return "media.resource_manager"; - } - void config(const Vector &policies) { - } + static char const *getServiceName() { return "media.resource_manager"; } + void config(const Vector &policies) { } void addResource(int pid, int64_t clientId, const sp client, - const Vector &resources) { + const Vector &resources) + { } - void removeResource(int pid, int64_t clientId) { - } + void removeResource(int pid, int64_t clientId) { } - bool reclaimResource(int callingPid, const Vector &resources) { - return true; - } + bool reclaimResource(int callingPid, const Vector &resources) { return true; } }; - diff --git a/services/services_8_1_0.h b/services/services_8_1_0.h index 83fd05d..c656b06 100644 --- a/services/services_8_1_0.h +++ b/services/services_8_1_0.h @@ -29,129 +29,108 @@ class MiniSurfaceFlinger : public BinderService, public IBinder::DeathRecipient { public: - static char const *getServiceName() { - return "SurfaceFlinger"; - } + static char const *getServiceName() { return "SurfaceFlinger"; } - void binderDied(const wp&) { + void binderDied(const wp &) + { // Nothing } - sp createConnection() { - return sp(); - } + sp createConnection() { return sp(); } - sp createScopedConnection( - const sp& parent) { + sp createScopedConnection(const sp &parent) + { return sp(); } - sp createDisplayEventConnection( - VsyncSource vsyncSource = eVsyncSourceApp) { + sp + createDisplayEventConnection(VsyncSource vsyncSource = eVsyncSourceApp) + { return sp(); } + sp createDisplay(const String8 &, bool) { return NULL; } - sp createDisplay(const String8&, bool) { - return NULL; - } - - void destroyDisplay(const sp&) { + void destroyDisplay(const sp &) + { // Nothing } - virtual sp getBuiltInDisplay(int32_t) { - return NULL; - } + virtual sp getBuiltInDisplay(int32_t) { return NULL; } - void setTransactionState(const Vector&, const Vector&, uint32_t) { + void setTransactionState(const Vector &, const Vector &, uint32_t) + { // Nothing } - void bootFinished() { - // Nothing + void bootFinished() + { + // Nothing } - bool authenticateSurfaceTexture(const sp&) const { - return true; - } + bool authenticateSurfaceTexture(const sp &) const { return true; } - void setPowerMode(const sp&, int) { + void setPowerMode(const sp &, int) { } - } + status_t getDisplayConfigs(const sp &, Vector *) { return BAD_VALUE; } - status_t getDisplayConfigs(const sp&, Vector*) { - return BAD_VALUE; - } + status_t getDisplayStats(const sp &, DisplayStatInfo *) { return BAD_VALUE; } - status_t getDisplayStats(const sp&, DisplayStatInfo*) { - return BAD_VALUE; - } - - int getActiveConfig(const sp&) { - return 0; - } + int getActiveConfig(const sp &) { return 0; } - status_t setActiveConfig(const sp&, int) { - return BAD_VALUE; - } + status_t setActiveConfig(const sp &, int) { return BAD_VALUE; } - status_t captureScreen(const sp&, const sp&, - Rect, uint32_t, uint32_t, uint32_t, uint32_t, - bool, Rotation + status_t captureScreen(const sp &, const sp &, Rect, uint32_t, + uint32_t, uint32_t, uint32_t, bool, Rotation #ifdef CM_BUILD - , bool + , + bool #endif - ) { + ) + { return BAD_VALUE; } - status_t clearAnimationFrameStats() { - return BAD_VALUE; - } + status_t clearAnimationFrameStats() { return BAD_VALUE; } - status_t getAnimationFrameStats(FrameStats*) const { - return BAD_VALUE; - } + status_t getAnimationFrameStats(FrameStats *) const { return BAD_VALUE; } - status_t getDisplayColorModes(const sp& display, Vector* configs) { + status_t getDisplayColorModes(const sp &display, Vector *configs) + { return BAD_VALUE; } - android_color_mode_t getActiveColorMode(const sp& display) { + android_color_mode_t getActiveColorMode(const sp &display) + { return HAL_COLOR_MODE_NATIVE; } - status_t setActiveColorMode(const sp& display, android_color_mode_t colorMode) { - return BAD_VALUE; - } - - status_t getHdrCapabilities(const sp& display, HdrCapabilities* outCapabilities) const { + status_t setActiveColorMode(const sp &display, android_color_mode_t colorMode) + { return BAD_VALUE; } - status_t captureScreen(const sp& display, - const sp& producer, - Rect sourceCrop, uint32_t reqWidth, uint32_t reqHeight, - int32_t minLayerZ, int32_t maxLayerZ, - bool useIdentityTransform, - Rotation rotation = eRotateNone) { + status_t getHdrCapabilities(const sp &display, HdrCapabilities *outCapabilities) const + { return BAD_VALUE; } - status_t getSupportedFrameTimestamps( - std::vector* outSupported) const { + status_t captureScreen(const sp &display, const sp &producer, + Rect sourceCrop, uint32_t reqWidth, uint32_t reqHeight, + int32_t minLayerZ, int32_t maxLayerZ, bool useIdentityTransform, + Rotation rotation = eRotateNone) + { return BAD_VALUE; } - status_t enableVSyncInjections(bool enable) { + status_t getSupportedFrameTimestamps(std::vector *outSupported) const + { return BAD_VALUE; } - status_t injectVSync(nsecs_t when) { - return BAD_VALUE; - } + status_t enableVSyncInjections(bool enable) { return BAD_VALUE; } + status_t injectVSync(nsecs_t when) { return BAD_VALUE; } }; #include @@ -160,11 +139,10 @@ class FakePermissionController : public BinderService, public BnPermissionController { public: - static char const *getServiceName() { - return "permission"; - } + static char const *getServiceName() { return "permission"; } - bool checkPermission(const String16& permission, int32_t, int32_t) { + bool checkPermission(const String16 &permission, int32_t, int32_t) + { if (permission == String16("android.permission.CAMERA")) { return true; } @@ -172,149 +150,146 @@ class FakePermissionController : public BinderService, return false; } - void getPackagesForUid(const uid_t uid, Vector &packages) { - } + void getPackagesForUid(const uid_t uid, Vector &packages) { } - bool isRuntimePermission(const String16& permission) { - return false; - } + bool isRuntimePermission(const String16 &permission) { return false; } }; #include #include -class FakeAppOps : public BinderService, - public BnAppOpsService +class FakeAppOps : public BinderService, public BnAppOpsService { public: - static char const *getServiceName() { - return "appops"; - } - - virtual int32_t checkOperation(int32_t, int32_t, const String16&) { - return android::AppOpsManager::MODE_ALLOWED; - } - - virtual int32_t noteOperation(int32_t, int32_t, const String16&) { - return android::AppOpsManager::MODE_ALLOWED; - } - - virtual int32_t startOperation(const sp&, int32_t, int32_t, - const String16&) { - return android::AppOpsManager::MODE_ALLOWED; - } - - virtual void finishOperation(const sp&, int32_t, int32_t, const String16&) { - // Nothing - } - - virtual void startWatchingMode(int32_t, const String16&, const sp&) { - // Nothing - } - - void stopWatchingMode(const sp&) { - // Nothing - } - - virtual sp getToken(const sp&) { - return NULL; - } - - virtual int32_t permissionToOpCode(const String16& permission) { - return 0; - } + static char const *getServiceName() { return "appops"; } + + virtual int32_t checkOperation(int32_t, int32_t, const String16 &) + { + return android::AppOpsManager::MODE_ALLOWED; + } + + virtual int32_t noteOperation(int32_t, int32_t, const String16 &) + { + return android::AppOpsManager::MODE_ALLOWED; + } + + virtual int32_t startOperation(const sp &, int32_t, int32_t, const String16 &) + { + return android::AppOpsManager::MODE_ALLOWED; + } + + virtual void finishOperation(const sp &, int32_t, int32_t, const String16 &) + { + // Nothing + } + + virtual void startWatchingMode(int32_t, const String16 &, const sp &) + { + // Nothing + } + + void stopWatchingMode(const sp &) + { + // Nothing + } + + virtual sp getToken(const sp &) { return NULL; } + + virtual int32_t permissionToOpCode(const String16 &permission) { return 0; } }; #include -class BnProcessInfoService : public BnInterface { +class BnProcessInfoService : public BnInterface +{ public: - virtual status_t onTransact( uint32_t code, - const Parcel& data, - Parcel* reply, - uint32_t flags = 0); + virtual status_t onTransact(uint32_t code, const Parcel &data, Parcel *reply, + uint32_t flags = 0); }; -status_t BnProcessInfoService::onTransact( uint32_t code, const Parcel& data, Parcel* reply, - uint32_t flags) { - switch(code) { - case GET_PROCESS_STATES_FROM_PIDS: { - CHECK_INTERFACE(IProcessInfoService, data, reply); - int32_t arrayLen = data.readInt32(); - if (arrayLen <= 0) { - reply->writeNoException(); - reply->writeInt32(0); - reply->writeInt32(NOT_ENOUGH_DATA); - return NO_ERROR; - } - - size_t len = static_cast(arrayLen); - int32_t pids[len]; - status_t res = data.read(pids, len * sizeof(*pids)); - - // Ignore output array length returned in the parcel here, as the states array must - // always be the same length as the input PIDs array. - int32_t states[len]; - for (size_t i = 0; i < len; i++) states[i] = -1; - if (res == NO_ERROR) { - res = getProcessStatesFromPids(len, /*in*/ pids, /*out*/ states); - } +status_t BnProcessInfoService::onTransact(uint32_t code, const Parcel &data, Parcel *reply, + uint32_t flags) +{ + switch (code) { + case GET_PROCESS_STATES_FROM_PIDS: { + CHECK_INTERFACE(IProcessInfoService, data, reply); + int32_t arrayLen = data.readInt32(); + if (arrayLen <= 0) { reply->writeNoException(); - reply->writeInt32Array(len, states); - reply->writeInt32(res); + reply->writeInt32(0); + reply->writeInt32(NOT_ENOUGH_DATA); return NO_ERROR; - } break; - case GET_PROCESS_STATES_AND_OOM_SCORES_FROM_PIDS: { - CHECK_INTERFACE(IProcessInfoService, data, reply); - int32_t arrayLen = data.readInt32(); - if (arrayLen <= 0) { - reply->writeNoException(); - reply->writeInt32(0); - reply->writeInt32(NOT_ENOUGH_DATA); - return NO_ERROR; - } - - size_t len = static_cast(arrayLen); - int32_t pids[len]; - status_t res = data.read(pids, len * sizeof(*pids)); - - // Ignore output array length returned in the parcel here, as the - // states array must always be the same length as the input PIDs array. - int32_t states[len]; - int32_t scores[len]; - for (size_t i = 0; i < len; i++) { - states[i] = -1; - scores[i] = -10000; - } - if (res == NO_ERROR) { - res = getProcessStatesAndOomScoresFromPids( - len, /*in*/ pids, /*out*/ states, /*out*/ scores); - } + } + + size_t len = static_cast(arrayLen); + int32_t pids[len]; + status_t res = data.read(pids, len * sizeof(*pids)); + + // Ignore output array length returned in the parcel here, as the states + // array must always be the same length as the input PIDs array. + int32_t states[len]; + for (size_t i = 0; i < len; i++) + states[i] = -1; + if (res == NO_ERROR) { + res = getProcessStatesFromPids(len, /*in*/ pids, /*out*/ states); + } + reply->writeNoException(); + reply->writeInt32Array(len, states); + reply->writeInt32(res); + return NO_ERROR; + } break; + case GET_PROCESS_STATES_AND_OOM_SCORES_FROM_PIDS: { + CHECK_INTERFACE(IProcessInfoService, data, reply); + int32_t arrayLen = data.readInt32(); + if (arrayLen <= 0) { reply->writeNoException(); - reply->writeInt32Array(len, states); - reply->writeInt32Array(len, scores); - reply->writeInt32(res); + reply->writeInt32(0); + reply->writeInt32(NOT_ENOUGH_DATA); return NO_ERROR; - } break; - default: - return BBinder::onTransact(code, data, reply, flags); + } + + size_t len = static_cast(arrayLen); + int32_t pids[len]; + status_t res = data.read(pids, len * sizeof(*pids)); + + // Ignore output array length returned in the parcel here, as the + // states array must always be the same length as the input PIDs array. + int32_t states[len]; + int32_t scores[len]; + for (size_t i = 0; i < len; i++) { + states[i] = -1; + scores[i] = -10000; + } + if (res == NO_ERROR) { + res = getProcessStatesAndOomScoresFromPids(len, /*in*/ pids, /*out*/ states, + /*out*/ scores); + } + reply->writeNoException(); + reply->writeInt32Array(len, states); + reply->writeInt32Array(len, scores); + reply->writeInt32(res); + return NO_ERROR; + } break; + default: + return BBinder::onTransact(code, data, reply, flags); } } class FakeProcessInfoService : public BinderService, - public BnProcessInfoService + public BnProcessInfoService { public: - static char const *getServiceName() { - return "processinfo"; - } + static char const *getServiceName() { return "processinfo"; } - status_t getProcessStatesFromPids(size_t length, int32_t* pids, int32_t* states) { - for (int i=0; i< length; i++) + status_t getProcessStatesFromPids(size_t length, int32_t *pids, int32_t *states) + { + for (int i = 0; i < length; i++) states[i] = 0; return 0; } - status_t getProcessStatesAndOomScoresFromPids( size_t length, int32_t* pids, int32_t* states, int32_t* scores) { - for (int i=0; i< length; i++) { + status_t getProcessStatesAndOomScoresFromPids(size_t length, int32_t *pids, int32_t *states, + int32_t *scores) + { + for (int i = 0; i < length; i++) { states[i] = 0; scores[i] = 0; } @@ -324,30 +299,26 @@ class FakeProcessInfoService : public BinderService, #include -class FakeBatteryStats : public BinderService, - public BnBatteryStats +class FakeBatteryStats : public BinderService, public BnBatteryStats { public: - static char const *getServiceName() { - return "batterystats"; - } - void noteStartSensor(int uid, int sensor) { } - void noteStopSensor(int uid, int sensor) { } - void noteStartVideo(int uid) { } - void noteStopVideo(int uid) { } - void noteStartAudio(int uid) { } - void noteStopAudio(int uid) { } - void noteResetVideo() { } - void noteResetAudio() { } - void noteFlashlightOn(int uid) { } - void noteFlashlightOff(int uid) { } - void noteStartCamera(int uid) { } - void noteStopCamera(int uid) { } - void noteResetCamera() { } - void noteResetFlashlight() { } + static char const *getServiceName() { return "batterystats"; } + void noteStartSensor(int uid, int sensor) { } + void noteStopSensor(int uid, int sensor) { } + void noteStartVideo(int uid) { } + void noteStopVideo(int uid) { } + void noteStartAudio(int uid) { } + void noteStopAudio(int uid) { } + void noteResetVideo() { } + void noteResetAudio() { } + void noteFlashlightOn(int uid) { } + void noteFlashlightOff(int uid) { } + void noteStartCamera(int uid) { } + void noteStopCamera(int uid) { } + void noteResetCamera() { } + void noteResetFlashlight() { } }; - #include #include #include @@ -356,68 +327,54 @@ class FakeBatteryStats : public BinderService, class FakeSensorEventConnection : public BnSensorEventConnection { sp mChannel; + public: - FakeSensorEventConnection() - { - mChannel = new BitTube(0); - } - sp getSensorChannel() const { - return mChannel; - } + FakeSensorEventConnection() { mChannel = new BitTube(0); } + sp getSensorChannel() const { return mChannel; } status_t enableDisable(int handle, bool enabled, nsecs_t samplingPeriodNs, - nsecs_t maxBatchReportLatencyNs, int reservedFlags) { - return 0; - } - status_t setEventRate(int handle, nsecs_t ns) { - return 0; - } - status_t flush() { + nsecs_t maxBatchReportLatencyNs, int reservedFlags) + { return 0; } + status_t setEventRate(int handle, nsecs_t ns) { return 0; } + status_t flush() { return 0; } - virtual int32_t configureChannel(int32_t handle, int32_t rateLevel) { - return 0; - } -protected: - void destroy() { - } + virtual int32_t configureChannel(int32_t handle, int32_t rateLevel) { return 0; } +protected: + void destroy() { } }; -class FakeSensorServer : public BinderService, - public BnSensorServer +class FakeSensorServer : public BinderService, public BnSensorServer { public: - static char const *getServiceName() { - return "sensorservice"; - } + static char const *getServiceName() { return "sensorservice"; } - Vector getSensorList(const String16& opPackageName) { - return Vector(); - } + Vector getSensorList(const String16 &opPackageName) { return Vector(); } - Vector getDynamicSensorList(const String16& opPackageName) { - return Vector(); - } - sp createSensorEventConnection(const String8& packageName, - int mode, const String16& opPackageName) { + Vector getDynamicSensorList(const String16 &opPackageName) { return Vector(); } + sp createSensorEventConnection(const String8 &packageName, int mode, + const String16 &opPackageName) + { return sp(new FakeSensorEventConnection); } #if ANDROID_MAJOR >= 7 - sp createSensorDirectConnection(const String16& opPackageName, - uint32_t size, int32_t type, int32_t format, const native_handle_t *resource) { + sp createSensorDirectConnection(const String16 &opPackageName, + uint32_t size, int32_t type, + int32_t format, + const native_handle_t *resource) + { return sp(new FakeSensorEventConnection); } - int setOperationParameter( - int32_t handle, int32_t type, const Vector &floats, const Vector &ints) { + int setOperationParameter(int32_t handle, int32_t type, const Vector &floats, + const Vector &ints) + { return 0; } #endif - int32_t isDataInjectionEnabled() { - return 0; - } + int32_t isDataInjectionEnabled() { return 0; } }; #include @@ -426,25 +383,20 @@ class FakeSensorServer : public BinderService, #include class FakeResourceManagerService : public BinderService, - public BnResourceManagerService + public BnResourceManagerService { public: - static char const *getServiceName() { - return "media.resource_manager"; - } - void config(const Vector &policies) { - } + static char const *getServiceName() { return "media.resource_manager"; } + void config(const Vector &policies) { } void addResource(int pid, int64_t clientId, const sp client, - const Vector &resources) { + const Vector &resources) + { } - void removeResource(int pid, int64_t clientId) { - } + void removeResource(int pid, int64_t clientId) { } - bool reclaimResource(int callingPid, const Vector &resources) { - return true; - } + bool reclaimResource(int callingPid, const Vector &resources) { return true; } }; #include @@ -452,58 +404,64 @@ class FakeResourceManagerService : public BinderService #include -class FakeEventQueue : - public android::frameworks::sensorservice::V1_0::IEventQueue +class FakeEventQueue : public android::frameworks::sensorservice::V1_0::IEventQueue { public: - FakeEventQueue() {} + FakeEventQueue() { } - android::hardware::Return enableSensor( - int32_t sensorHandle, int32_t samplingPeriodUs, int64_t maxBatchReportLatencyUs) { + android::hardware::Return + enableSensor(int32_t sensorHandle, int32_t samplingPeriodUs, int64_t maxBatchReportLatencyUs) + { return android::frameworks::sensorservice::V1_0::Result::BAD_VALUE; } - android::hardware::Return disableSensor( - int32_t sensorHandle) { + android::hardware::Return + disableSensor(int32_t sensorHandle) + { return android::frameworks::sensorservice::V1_0::Result::BAD_VALUE; } }; -class FakeSensorManager : - public android::frameworks::sensorservice::V1_0::ISensorManager +class FakeSensorManager : public android::frameworks::sensorservice::V1_0::ISensorManager { - // Methods from ::android::frameworks::sensorservice::V1_0::ISensorManager follow. - android::hardware::Return getSensorList(getSensorList_cb _hidl_cb) { + // Methods from ::android::frameworks::sensorservice::V1_0::ISensorManager + // follow. + android::hardware::Return getSensorList(getSensorList_cb _hidl_cb) + { android::hardware::hidl_vec<::android::hardware::sensors::V1_0::SensorInfo> ret; _hidl_cb(ret, android::frameworks::sensorservice::V1_0::Result::OK); return android::hardware::Void(); } - android::hardware::Return getDefaultSensor( - android::hardware::sensors::V1_0::SensorType type, - getDefaultSensor_cb _hidl_cb) { + android::hardware::Return + getDefaultSensor(android::hardware::sensors::V1_0::SensorType type, + getDefaultSensor_cb _hidl_cb) + { _hidl_cb({}, android::frameworks::sensorservice::V1_0::Result::NOT_EXIST); return android::hardware::Void(); } - android::hardware::Return createAshmemDirectChannel( - const android::hardware::hidl_memory& mem, uint64_t size, - createAshmemDirectChannel_cb _hidl_cb) { + android::hardware::Return + createAshmemDirectChannel(const android::hardware::hidl_memory &mem, uint64_t size, + createAshmemDirectChannel_cb _hidl_cb) + { _hidl_cb(nullptr, android::frameworks::sensorservice::V1_0::Result::BAD_VALUE); return android::hardware::Void(); } - android::hardware::Return createGrallocDirectChannel( - const android::hardware::hidl_handle& buffer, uint64_t size, - createGrallocDirectChannel_cb _hidl_cb) { + android::hardware::Return + createGrallocDirectChannel(const android::hardware::hidl_handle &buffer, uint64_t size, + createGrallocDirectChannel_cb _hidl_cb) + { _hidl_cb(nullptr, android::frameworks::sensorservice::V1_0::Result::UNKNOWN_ERROR); return android::hardware::Void(); } android::hardware::Return createEventQueue( const sp &callback, - createEventQueue_cb _hidl_cb) { + createEventQueue_cb _hidl_cb) + { if (callback == nullptr) { _hidl_cb(nullptr, android::frameworks::sensorservice::V1_0::Result::BAD_VALUE); return android::hardware::Void(); diff --git a/services/services_9_0_0.h b/services/services_9_0_0.h index ca76c9d..b1c3a15 100644 --- a/services/services_9_0_0.h +++ b/services/services_9_0_0.h @@ -29,151 +29,114 @@ class MiniSurfaceFlinger : public BinderService, public IBinder::DeathRecipient { public: - static char const *getServiceName() { - return "SurfaceFlinger"; - } + static char const *getServiceName() { return "SurfaceFlinger"; } - void binderDied(const wp&) { + void binderDied(const wp &) + { // Nothing } - sp createConnection() { - return sp(); - } + sp createConnection() { return sp(); } - sp createScopedConnection( - const sp&) { + sp createScopedConnection(const sp &) + { return sp(); } - sp createDisplayEventConnection( - VsyncSource) { + sp createDisplayEventConnection(VsyncSource) + { return sp(); } + sp createDisplay(const String8 &, bool) { return NULL; } - sp createDisplay(const String8&, bool) { - return NULL; - } - - void destroyDisplay(const sp&) { + void destroyDisplay(const sp &) + { // Nothing } - virtual sp getBuiltInDisplay(int32_t) { - return NULL; - } + virtual sp getBuiltInDisplay(int32_t) { return NULL; } - void setTransactionState(const Vector&, const Vector&, uint32_t) { + void setTransactionState(const Vector &, const Vector &, uint32_t) + { // Nothing } - void bootFinished() { - // Nothing + void bootFinished() + { + // Nothing } - bool authenticateSurfaceTexture(const sp&) const { - return true; - } + bool authenticateSurfaceTexture(const sp &) const { return true; } - void setPowerMode(const sp&, int) { + void setPowerMode(const sp &, int) { } - } + status_t getDisplayConfigs(const sp &, Vector *) { return BAD_VALUE; } - status_t getDisplayConfigs(const sp&, Vector*) { - return BAD_VALUE; - } + status_t getDisplayStats(const sp &, DisplayStatInfo *) { return BAD_VALUE; } - status_t getDisplayStats(const sp&, DisplayStatInfo*) { - return BAD_VALUE; - } + status_t getDisplayViewport(const sp &, Rect *) { return 0; } - status_t getDisplayViewport(const sp&, Rect*) { - return 0; - } + int getActiveConfig(const sp &) { return 0; } - int getActiveConfig(const sp&) { - return 0; - } + status_t setActiveConfig(const sp &, int) { return BAD_VALUE; } - status_t setActiveConfig(const sp&, int) { - return BAD_VALUE; - } - - status_t clearAnimationFrameStats() { - return BAD_VALUE; - } + status_t clearAnimationFrameStats() { return BAD_VALUE; } - status_t getAnimationFrameStats(FrameStats*) const { - return BAD_VALUE; - } + status_t getAnimationFrameStats(FrameStats *) const { return BAD_VALUE; } - status_t getDisplayColorModes(const sp&, - Vector*) { + status_t getDisplayColorModes(const sp &, Vector *) + { return BAD_VALUE; } - ui::ColorMode getActiveColorMode(const sp&) { + ui::ColorMode getActiveColorMode(const sp &) + { return static_cast(HAL_COLOR_MODE_NATIVE); } - status_t setActiveColorMode(const sp&, ui::ColorMode) { - return BAD_VALUE; - } + status_t setActiveColorMode(const sp &, ui::ColorMode) { return BAD_VALUE; } - status_t getHdrCapabilities(const sp&, HdrCapabilities*) const { - return BAD_VALUE; - } + status_t getHdrCapabilities(const sp &, HdrCapabilities *) const { return BAD_VALUE; } - status_t captureScreen(const sp&, - sp*, Rect, uint32_t, uint32_t, - int32_t, int32_t, bool, Rotation) { + status_t captureScreen(const sp &, sp *, Rect, uint32_t, uint32_t, + int32_t, int32_t, bool, Rotation) + { return BAD_VALUE; } - status_t captureScreen(const sp&, - sp*, bool&, Rect, uint32_t, uint32_t, - int32_t, int32_t, bool, Rotation) { + status_t captureScreen(const sp &, sp *, bool &, Rect, uint32_t, + uint32_t, int32_t, int32_t, bool, Rotation) + { return BAD_VALUE; } - status_t captureScreen(const sp&, - sp*, bool&, Rect, uint32_t, uint32_t, - int32_t, int32_t, bool, Rotation, bool) { + status_t captureScreen(const sp &, sp *, bool &, Rect, uint32_t, + uint32_t, int32_t, int32_t, bool, Rotation, bool) + { return BAD_VALUE; } - status_t captureScreen(const sp&, - sp*, Rect, uint32_t, uint32_t, - int32_t, int32_t, bool, Rotation, bool) { + status_t captureScreen(const sp &, sp *, Rect, uint32_t, uint32_t, + int32_t, int32_t, bool, Rotation, bool) + { return BAD_VALUE; } - status_t captureLayers(const sp&, sp*, - const Rect&, float, bool) { + status_t captureLayers(const sp &, sp *, const Rect &, float, bool) + { return 0; } - status_t getSupportedFrameTimestamps( - std::vector*) const { - return BAD_VALUE; - } + status_t getSupportedFrameTimestamps(std::vector *) const { return BAD_VALUE; } - status_t enableVSyncInjections(bool) { - return BAD_VALUE; - } + status_t enableVSyncInjections(bool) { return BAD_VALUE; } - status_t injectVSync(nsecs_t) { - return BAD_VALUE; - } + status_t injectVSync(nsecs_t) { return BAD_VALUE; } - status_t getLayerDebugInfo(std::vector*) const { - return 0; - } + status_t getLayerDebugInfo(std::vector *) const { return 0; } - status_t getLayerDebugInfo(std::vector*) { - return 0; - } + status_t getLayerDebugInfo(std::vector *) { return 0; } }; #include @@ -182,12 +145,10 @@ class FakePermissionController : public BinderService, public BnPermissionController { public: - static char const *getServiceName() { - return "permission"; - } - + static char const *getServiceName() { return "permission"; } - bool checkPermission(const String16& permission, int32_t, int32_t) { + bool checkPermission(const String16 &permission, int32_t, int32_t) + { if (permission == String16("android.permission.CAMERA")) { return true; } @@ -195,157 +156,150 @@ class FakePermissionController : public BinderService, return false; } - int32_t noteOp(const String16&, int32_t, const String16&) { - return 0; - } + int32_t noteOp(const String16 &, int32_t, const String16 &) { return 0; } - void getPackagesForUid(const uid_t, Vector &) { - } + void getPackagesForUid(const uid_t, Vector &) { } - bool isRuntimePermission(const String16&) { - return false; - } + bool isRuntimePermission(const String16 &) { return false; } - int getPackageUid(const String16&, int) { - return 0; - } + int getPackageUid(const String16 &, int) { return 0; } }; #include #include -class FakeAppOps : public BinderService, - public BnAppOpsService +class FakeAppOps : public BinderService, public BnAppOpsService { public: - static char const *getServiceName() { - return "appops"; - } - - virtual int32_t checkOperation(int32_t, int32_t, const String16&) { - return android::AppOpsManager::MODE_ALLOWED; - } - - virtual int32_t noteOperation(int32_t, int32_t, const String16&) { - return android::AppOpsManager::MODE_ALLOWED; - } - - virtual int32_t startOperation(const sp&, int32_t, int32_t, - const String16&, bool) { - return android::AppOpsManager::MODE_ALLOWED; - } - - virtual void finishOperation(const sp&, int32_t, int32_t, const String16&) { - // Nothing - } - - virtual void startWatchingMode(int32_t, const String16&, const sp&) { - // Nothing - } - - void stopWatchingMode(const sp&) { - // Nothing - } - - virtual sp getToken(const sp&) { - return NULL; - } - - virtual int32_t permissionToOpCode(const String16&) { - return 0; - } + static char const *getServiceName() { return "appops"; } + + virtual int32_t checkOperation(int32_t, int32_t, const String16 &) + { + return android::AppOpsManager::MODE_ALLOWED; + } + + virtual int32_t noteOperation(int32_t, int32_t, const String16 &) + { + return android::AppOpsManager::MODE_ALLOWED; + } + + virtual int32_t startOperation(const sp &, int32_t, int32_t, const String16 &, bool) + { + return android::AppOpsManager::MODE_ALLOWED; + } + + virtual void finishOperation(const sp &, int32_t, int32_t, const String16 &) + { + // Nothing + } + + virtual void startWatchingMode(int32_t, const String16 &, const sp &) + { + // Nothing + } + + void stopWatchingMode(const sp &) + { + // Nothing + } + + virtual sp getToken(const sp &) { return NULL; } + + virtual int32_t permissionToOpCode(const String16 &) { return 0; } }; #include -class BnProcessInfoService : public BnInterface { +class BnProcessInfoService : public BnInterface +{ public: - virtual status_t onTransact( uint32_t code, - const Parcel& data, - Parcel* reply, - uint32_t flags = 0); + virtual status_t onTransact(uint32_t code, const Parcel &data, Parcel *reply, + uint32_t flags = 0); }; -status_t BnProcessInfoService::onTransact( uint32_t code, const Parcel& data, Parcel* reply, - uint32_t flags) { - switch(code) { - case GET_PROCESS_STATES_FROM_PIDS: { - CHECK_INTERFACE(IProcessInfoService, data, reply); - int32_t arrayLen = data.readInt32(); - if (arrayLen <= 0) { - reply->writeNoException(); - reply->writeInt32(0); - reply->writeInt32(NOT_ENOUGH_DATA); - return NO_ERROR; - } - - size_t len = static_cast(arrayLen); - int32_t pids[len]; - status_t res = data.read(pids, len * sizeof(*pids)); - - // Ignore output array length returned in the parcel here, as the states array must - // always be the same length as the input PIDs array. - int32_t states[len]; - for (size_t i = 0; i < len; i++) states[i] = -1; - if (res == NO_ERROR) { - res = getProcessStatesFromPids(len, /*in*/ pids, /*out*/ states); - } +status_t BnProcessInfoService::onTransact(uint32_t code, const Parcel &data, Parcel *reply, + uint32_t flags) +{ + switch (code) { + case GET_PROCESS_STATES_FROM_PIDS: { + CHECK_INTERFACE(IProcessInfoService, data, reply); + int32_t arrayLen = data.readInt32(); + if (arrayLen <= 0) { reply->writeNoException(); - reply->writeInt32Array(len, states); - reply->writeInt32(res); + reply->writeInt32(0); + reply->writeInt32(NOT_ENOUGH_DATA); return NO_ERROR; - } break; - case GET_PROCESS_STATES_AND_OOM_SCORES_FROM_PIDS: { - CHECK_INTERFACE(IProcessInfoService, data, reply); - int32_t arrayLen = data.readInt32(); - if (arrayLen <= 0) { - reply->writeNoException(); - reply->writeInt32(0); - reply->writeInt32(NOT_ENOUGH_DATA); - return NO_ERROR; - } - - size_t len = static_cast(arrayLen); - int32_t pids[len]; - status_t res = data.read(pids, len * sizeof(*pids)); - - // Ignore output array length returned in the parcel here, as the - // states array must always be the same length as the input PIDs array. - int32_t states[len]; - int32_t scores[len]; - for (size_t i = 0; i < len; i++) { - states[i] = -1; - scores[i] = -10000; - } - if (res == NO_ERROR) { - res = getProcessStatesAndOomScoresFromPids( - len, /*in*/ pids, /*out*/ states, /*out*/ scores); - } + } + + size_t len = static_cast(arrayLen); + int32_t pids[len]; + status_t res = data.read(pids, len * sizeof(*pids)); + + // Ignore output array length returned in the parcel here, as the states + // array must always be the same length as the input PIDs array. + int32_t states[len]; + for (size_t i = 0; i < len; i++) + states[i] = -1; + if (res == NO_ERROR) { + res = getProcessStatesFromPids(len, /*in*/ pids, /*out*/ states); + } + reply->writeNoException(); + reply->writeInt32Array(len, states); + reply->writeInt32(res); + return NO_ERROR; + } break; + case GET_PROCESS_STATES_AND_OOM_SCORES_FROM_PIDS: { + CHECK_INTERFACE(IProcessInfoService, data, reply); + int32_t arrayLen = data.readInt32(); + if (arrayLen <= 0) { reply->writeNoException(); - reply->writeInt32Array(len, states); - reply->writeInt32Array(len, scores); - reply->writeInt32(res); + reply->writeInt32(0); + reply->writeInt32(NOT_ENOUGH_DATA); return NO_ERROR; - } break; - default: - return BBinder::onTransact(code, data, reply, flags); + } + + size_t len = static_cast(arrayLen); + int32_t pids[len]; + status_t res = data.read(pids, len * sizeof(*pids)); + + // Ignore output array length returned in the parcel here, as the + // states array must always be the same length as the input PIDs array. + int32_t states[len]; + int32_t scores[len]; + for (size_t i = 0; i < len; i++) { + states[i] = -1; + scores[i] = -10000; + } + if (res == NO_ERROR) { + res = getProcessStatesAndOomScoresFromPids(len, /*in*/ pids, /*out*/ states, + /*out*/ scores); + } + reply->writeNoException(); + reply->writeInt32Array(len, states); + reply->writeInt32Array(len, scores); + reply->writeInt32(res); + return NO_ERROR; + } break; + default: + return BBinder::onTransact(code, data, reply, flags); } } class FakeProcessInfoService : public BinderService, - public BnProcessInfoService + public BnProcessInfoService { public: - static char const *getServiceName() { - return "processinfo"; - } + static char const *getServiceName() { return "processinfo"; } - status_t getProcessStatesFromPids(size_t length, int32_t* pids, int32_t* states) { - for (unsigned int i=0; i< length; i++) + status_t getProcessStatesFromPids(size_t length, int32_t *pids, int32_t *states) + { + for (unsigned int i = 0; i < length; i++) states[i] = 0; return 0; } - status_t getProcessStatesAndOomScoresFromPids( size_t length, int32_t* pids, int32_t* states, int32_t* scores) { - for (unsigned int i=0; i< length; i++) { + status_t getProcessStatesAndOomScoresFromPids(size_t length, int32_t *pids, int32_t *states, + int32_t *scores) + { + for (unsigned int i = 0; i < length; i++) { states[i] = 0; scores[i] = 0; } @@ -355,30 +309,26 @@ class FakeProcessInfoService : public BinderService, #include -class FakeBatteryStats : public BinderService, - public BnBatteryStats +class FakeBatteryStats : public BinderService, public BnBatteryStats { public: - static char const *getServiceName() { - return "batterystats"; - } - void noteStartSensor(int uid, int sensor) { } - void noteStopSensor(int uid, int sensor) { } - void noteStartVideo(int uid) { } - void noteStopVideo(int uid) { } - void noteStartAudio(int uid) { } - void noteStopAudio(int uid) { } - void noteResetVideo() { } - void noteResetAudio() { } - void noteFlashlightOn(int uid) { } - void noteFlashlightOff(int uid) { } - void noteStartCamera(int uid) { } - void noteStopCamera(int uid) { } - void noteResetCamera() { } - void noteResetFlashlight() { } + static char const *getServiceName() { return "batterystats"; } + void noteStartSensor(int uid, int sensor) { } + void noteStopSensor(int uid, int sensor) { } + void noteStartVideo(int uid) { } + void noteStopVideo(int uid) { } + void noteStartAudio(int uid) { } + void noteStopAudio(int uid) { } + void noteResetVideo() { } + void noteResetAudio() { } + void noteFlashlightOn(int uid) { } + void noteFlashlightOff(int uid) { } + void noteStartCamera(int uid) { } + void noteStopCamera(int uid) { } + void noteResetCamera() { } + void noteResetFlashlight() { } }; - #include #include #include @@ -387,71 +337,46 @@ class FakeBatteryStats : public BinderService, class FakeSensorEventConnection : public BnSensorEventConnection { sp mChannel; + public: - FakeSensorEventConnection() - { - mChannel = new BitTube(0); - } - sp getSensorChannel() const { - return mChannel; - } - status_t enableDisable(int, bool, nsecs_t, - nsecs_t, int) { - return 0; - } - status_t setEventRate(int, nsecs_t) { - return 0; - } - status_t flush() { - return 0; - } + FakeSensorEventConnection() { mChannel = new BitTube(0); } + sp getSensorChannel() const { return mChannel; } + status_t enableDisable(int, bool, nsecs_t, nsecs_t, int) { return 0; } + status_t setEventRate(int, nsecs_t) { return 0; } + status_t flush() { return 0; } - virtual int32_t configureChannel(int32_t, int32_t) { - return 0; - } -protected: - void destroy() { - } + virtual int32_t configureChannel(int32_t, int32_t) { return 0; } +protected: + void destroy() { } }; -class FakeSensorServer : public BinderService, - public BnSensorServer +class FakeSensorServer : public BinderService, public BnSensorServer { public: - static char const *getServiceName() { - return "sensorservice"; - } + static char const *getServiceName() { return "sensorservice"; } - Vector getSensorList(const String16&) { - return Vector(); - } + Vector getSensorList(const String16 &) { return Vector(); } - Vector getDynamicSensorList(const String16&) { - return Vector(); - } - sp createSensorEventConnection(const String8&, - int, const String16&) { + Vector getDynamicSensorList(const String16 &) { return Vector(); } + sp createSensorEventConnection(const String8 &, int, const String16 &) + { return sp(new FakeSensorEventConnection); } - sp createSensorDirectConnection(const String16&, - uint32_t, int32_t, int32_t, const native_handle_t *) { + sp createSensorDirectConnection(const String16 &, uint32_t, int32_t, + int32_t, const native_handle_t *) + { return sp(new FakeSensorEventConnection); } - int setOperationParameter( - int32_t, int32_t, const Vector &, const Vector &) { + int setOperationParameter(int32_t, int32_t, const Vector &, const Vector &) + { return 0; } - int32_t isDataInjectionEnabled() { - return 0; - } + int32_t isDataInjectionEnabled() { return 0; } - virtual status_t shellCommand(int, int, int, - Vector&) { - return 0; - } + virtual status_t shellCommand(int, int, int, Vector &) { return 0; } }; #include @@ -460,25 +385,19 @@ class FakeSensorServer : public BinderService, #include class FakeResourceManagerService : public BinderService, - public BnResourceManagerService + public BnResourceManagerService { public: - static char const *getServiceName() { - return "media.resource_manager"; - } - void config(const Vector &) { - } + static char const *getServiceName() { return "media.resource_manager"; } + void config(const Vector &) { } - void addResource(int, int64_t, const sp, - const Vector &) { + void addResource(int, int64_t, const sp, const Vector &) + { } - void removeResource(int, int64_t) { - } + void removeResource(int, int64_t) { } - bool reclaimResource(int, const Vector &) { - return true; - } + bool reclaimResource(int, const Vector &) { return true; } }; #include @@ -486,58 +405,64 @@ class FakeResourceManagerService : public BinderService #include -class FakeEventQueue : - public android::frameworks::sensorservice::V1_0::IEventQueue +class FakeEventQueue : public android::frameworks::sensorservice::V1_0::IEventQueue { public: - FakeEventQueue() {} + FakeEventQueue() { } - android::hardware::Return enableSensor( - int32_t sensorHandle, int32_t samplingPeriodUs, int64_t maxBatchReportLatencyUs) { + android::hardware::Return + enableSensor(int32_t sensorHandle, int32_t samplingPeriodUs, int64_t maxBatchReportLatencyUs) + { return android::frameworks::sensorservice::V1_0::Result::BAD_VALUE; } - android::hardware::Return disableSensor( - int32_t sensorHandle) { + android::hardware::Return + disableSensor(int32_t sensorHandle) + { return android::frameworks::sensorservice::V1_0::Result::BAD_VALUE; } }; -class FakeSensorManager : - public android::frameworks::sensorservice::V1_0::ISensorManager +class FakeSensorManager : public android::frameworks::sensorservice::V1_0::ISensorManager { - // Methods from ::android::frameworks::sensorservice::V1_0::ISensorManager follow. - android::hardware::Return getSensorList(getSensorList_cb _hidl_cb) { + // Methods from ::android::frameworks::sensorservice::V1_0::ISensorManager + // follow. + android::hardware::Return getSensorList(getSensorList_cb _hidl_cb) + { android::hardware::hidl_vec<::android::hardware::sensors::V1_0::SensorInfo> ret; _hidl_cb(ret, android::frameworks::sensorservice::V1_0::Result::OK); return android::hardware::Void(); } - android::hardware::Return getDefaultSensor( - android::hardware::sensors::V1_0::SensorType type, - getDefaultSensor_cb _hidl_cb) { + android::hardware::Return + getDefaultSensor(android::hardware::sensors::V1_0::SensorType type, + getDefaultSensor_cb _hidl_cb) + { _hidl_cb({}, android::frameworks::sensorservice::V1_0::Result::NOT_EXIST); return android::hardware::Void(); } - android::hardware::Return createAshmemDirectChannel( - const android::hardware::hidl_memory& mem, uint64_t size, - createAshmemDirectChannel_cb _hidl_cb) { + android::hardware::Return + createAshmemDirectChannel(const android::hardware::hidl_memory &mem, uint64_t size, + createAshmemDirectChannel_cb _hidl_cb) + { _hidl_cb(nullptr, android::frameworks::sensorservice::V1_0::Result::BAD_VALUE); return android::hardware::Void(); } - android::hardware::Return createGrallocDirectChannel( - const android::hardware::hidl_handle& buffer, uint64_t size, - createGrallocDirectChannel_cb _hidl_cb) { + android::hardware::Return + createGrallocDirectChannel(const android::hardware::hidl_handle &buffer, uint64_t size, + createGrallocDirectChannel_cb _hidl_cb) + { _hidl_cb(nullptr, android::frameworks::sensorservice::V1_0::Result::UNKNOWN_ERROR); return android::hardware::Void(); } android::hardware::Return createEventQueue( const sp &callback, - createEventQueue_cb _hidl_cb) { + createEventQueue_cb _hidl_cb) + { if (callback == nullptr) { _hidl_cb(nullptr, android::frameworks::sensorservice::V1_0::Result::BAD_VALUE); return android::hardware::Void(); @@ -555,36 +480,24 @@ class FakeSensorManager : class BnFakeActivityManager : public BnInterface { public: - virtual status_t onTransact( uint32_t code, - const Parcel& data, - Parcel* reply, - uint32_t flags = 0) { + virtual status_t onTransact(uint32_t code, const Parcel &data, Parcel *reply, + uint32_t flags = 0) + { return NO_ERROR; }; }; -class FakeActivityManager : public BinderService, - public BnFakeActivityManager +class FakeActivityManager : public BinderService, public BnFakeActivityManager { public: - static char const *getServiceName() { - return "activity"; - } - - virtual int openContentUri(const String16& stringUri) { - return 0; - }; - - virtual void registerUidObserver(const sp& observer, - const int32_t event, - const int32_t cutpoint, - const String16& callingPackage) { - }; - - virtual void unregisterUidObserver(const sp& observer) { - }; - - virtual bool isUidActive(const uid_t uid, const String16& callingPackage) { - return false; - }; + static char const *getServiceName() { return "activity"; } + + virtual int openContentUri(const String16 &stringUri) { return 0; }; + + virtual void registerUidObserver(const sp &observer, const int32_t event, + const int32_t cutpoint, const String16 &callingPackage){}; + + virtual void unregisterUidObserver(const sp &observer){}; + + virtual bool isUidActive(const uid_t uid, const String16 &callingPackage) { return false; }; };