widget/gonk/nativewindow/FakeSurfaceComposer.h

Thu, 22 Jan 2015 13:21:57 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Thu, 22 Jan 2015 13:21:57 +0100
branch
TOR_BUG_9701
changeset 15
b8a032363ba2
permissions
-rw-r--r--

Incorporate requested changes from Mozilla in review:
https://bugzilla.mozilla.org/show_bug.cgi?id=1123480#c6

michael@0 1 /*
michael@0 2 * Copyright (C) 2007 The Android Open Source Project
michael@0 3 * Copyright (C) 2013 Mozilla Foundation
michael@0 4 *
michael@0 5 * Licensed under the Apache License, Version 2.0 (the "License");
michael@0 6 * you may not use this file except in compliance with the License.
michael@0 7 * You may obtain a copy of the License at
michael@0 8 *
michael@0 9 * http://www.apache.org/licenses/LICENSE-2.0
michael@0 10 *
michael@0 11 * Unless required by applicable law or agreed to in writing, software
michael@0 12 * distributed under the License is distributed on an "AS IS" BASIS,
michael@0 13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
michael@0 14 * See the License for the specific language governing permissions and
michael@0 15 * limitations under the License.
michael@0 16 */
michael@0 17
michael@0 18 #ifndef NATIVEWINDOW_FAKE_SURFACE_COMPOSER_H
michael@0 19 #define NATIVEWINDOW_FAKE_SURFACE_COMPOSER_H
michael@0 20
michael@0 21 #include <stdint.h>
michael@0 22 #include <sys/types.h>
michael@0 23
michael@0 24 #include <utils/Errors.h>
michael@0 25
michael@0 26 #include <binder/BinderService.h>
michael@0 27
michael@0 28 #include <gui/ISurfaceComposer.h>
michael@0 29 #include <gui/ISurfaceComposerClient.h>
michael@0 30
michael@0 31 namespace android {
michael@0 32
michael@0 33 // ---------------------------------------------------------------------------
michael@0 34
michael@0 35 class IGraphicBufferAlloc;
michael@0 36
michael@0 37 class FakeSurfaceComposer : public BinderService<FakeSurfaceComposer>,
michael@0 38 public BnSurfaceComposer
michael@0 39 {
michael@0 40 public:
michael@0 41 static char const* getServiceName() {
michael@0 42 return "FakeSurfaceComposer";
michael@0 43 }
michael@0 44
michael@0 45 // Instantiate MediaResourceManagerService and register to service manager.
michael@0 46 // If service manager is not present, wait until service manager becomes present.
michael@0 47 static void instantiate();
michael@0 48 #if ANDROID_VERSION >= 19
michael@0 49 virtual void destroyDisplay(const sp<android::IBinder>& display);
michael@0 50 virtual status_t captureScreen(const sp<IBinder>& display, const sp<IGraphicBufferProducer>& producer,
michael@0 51 uint32_t reqWidth, uint32_t reqHeight, uint32_t minLayerZ, uint32_t maxLayerZ);
michael@0 52 #endif
michael@0 53
michael@0 54 private:
michael@0 55 FakeSurfaceComposer();
michael@0 56 // We're reference counted, never destroy FakeSurfaceComposer directly
michael@0 57 virtual ~FakeSurfaceComposer();
michael@0 58
michael@0 59 /* ------------------------------------------------------------------------
michael@0 60 * ISurfaceComposer interface
michael@0 61 */
michael@0 62 virtual sp<ISurfaceComposerClient> createConnection();
michael@0 63 virtual sp<IGraphicBufferAlloc> createGraphicBufferAlloc();
michael@0 64 virtual sp<IBinder> createDisplay(const String8& displayName, bool secure);
michael@0 65 virtual sp<IBinder> getBuiltInDisplay(int32_t id);
michael@0 66 virtual void setTransactionState(const Vector<ComposerState>& state,
michael@0 67 const Vector<DisplayState>& displays, uint32_t flags);
michael@0 68 virtual void bootFinished();
michael@0 69 virtual bool authenticateSurfaceTexture(
michael@0 70 const sp<IGraphicBufferProducer>& bufferProducer) const;
michael@0 71 virtual sp<IDisplayEventConnection> createDisplayEventConnection();
michael@0 72 virtual status_t captureScreen(const sp<IBinder>& display,
michael@0 73 const sp<IGraphicBufferProducer>& producer,
michael@0 74 uint32_t reqWidth, uint32_t reqHeight,
michael@0 75 uint32_t minLayerZ, uint32_t maxLayerZ, bool isCpuConsumer);
michael@0 76 // called when screen needs to turn off
michael@0 77 virtual void blank(const sp<IBinder>& display);
michael@0 78 // called when screen is turning back on
michael@0 79 virtual void unblank(const sp<IBinder>& display);
michael@0 80 virtual status_t getDisplayInfo(const sp<IBinder>& display, DisplayInfo* info);
michael@0 81
michael@0 82 };
michael@0 83
michael@0 84 // ---------------------------------------------------------------------------
michael@0 85 }; // namespace android
michael@0 86
michael@0 87 #endif // NATIVEWINDOW_FAKE_SURFACE_COMPOSER_H

mercurial