diff options
-rw-r--r-- | include/input/IInputFlinger.h | 54 | ||||
-rw-r--r-- | include/media/drm/DrmAPI.h | 5 | ||||
-rw-r--r-- | libs/gui/Surface.cpp | 2 | ||||
-rw-r--r-- | libs/input/Android.mk | 1 | ||||
-rw-r--r-- | libs/input/IInputFlinger.cpp | 59 | ||||
-rw-r--r-- | services/inputflinger/Android.mk | 50 | ||||
-rw-r--r-- | services/inputflinger/InputFlinger.cpp | 89 | ||||
-rw-r--r-- | services/inputflinger/InputFlinger.h | 54 | ||||
-rw-r--r-- | services/inputflinger/main.cpp | 26 | ||||
-rw-r--r-- | services/surfaceflinger/Android.mk | 1 | ||||
-rw-r--r-- | services/surfaceflinger/RenderEngine/GLES20RenderEngine.cpp | 7 | ||||
-rw-r--r-- | services/surfaceflinger/SurfaceFlinger.cpp | 7 | ||||
-rw-r--r-- | services/surfaceflinger/main_surfaceflinger.cpp | 18 |
13 files changed, 26 insertions, 347 deletions
diff --git a/include/input/IInputFlinger.h b/include/input/IInputFlinger.h deleted file mode 100644 index 79ff12a..0000000 --- a/include/input/IInputFlinger.h +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Copyright (C) 2013 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef _LIBINPUT_IINPUT_FLINGER_H -#define _LIBINPUT_IINPUT_FLINGER_H - -#include <stdint.h> -#include <sys/types.h> - -#include <binder/IInterface.h> - -namespace android { - -/* - * This class defines the Binder IPC interface for accessing various - * InputFlinger features. - */ -class IInputFlinger : public IInterface { -public: - DECLARE_META_INTERFACE(InputFlinger); - - virtual status_t doSomething() = 0; -}; - - -/** - * Binder implementation. - */ -class BnInputFlinger : public BnInterface<IInputFlinger> { -public: - enum { - DO_SOMETHING_TRANSACTION = IBinder::FIRST_CALL_TRANSACTION, - }; - - virtual status_t onTransact(uint32_t code, const Parcel& data, - Parcel* reply, uint32_t flags = 0); -}; - -} // namespace android - -#endif // _LIBINPUT_IINPUT_FLINGER_H diff --git a/include/media/drm/DrmAPI.h b/include/media/drm/DrmAPI.h index fbf93bc..95bdf77 100644 --- a/include/media/drm/DrmAPI.h +++ b/include/media/drm/DrmAPI.h @@ -60,6 +60,11 @@ namespace android { // given crypto scheme, which is specified by a UUID. virtual bool isCryptoSchemeSupported(const uint8_t uuid[16]) = 0; + // DrmFactory::isContentTypeSupported can be called to determine + // if the plugin factory is able to construct plugins that support a + // given media container format specified by mimeType + virtual bool isContentTypeSupported(const String8 &mimeType) = 0; + // Construct a DrmPlugin for the crypto scheme specified by UUID. virtual status_t createDrmPlugin( const uint8_t uuid[16], DrmPlugin **plugin) = 0; diff --git a/libs/gui/Surface.cpp b/libs/gui/Surface.cpp index b9a12ed..1bae0fe 100644 --- a/libs/gui/Surface.cpp +++ b/libs/gui/Surface.cpp @@ -72,7 +72,7 @@ Surface::Surface( mTransformHint = 0; mConsumerRunningBehind = false; mConnectedToCpu = false; - mProducerControlledByApp = true; + mProducerControlledByApp = controlledByApp; mSwapIntervalZero = false; } diff --git a/libs/input/Android.mk b/libs/input/Android.mk index 944ac7f..f1921a4 100644 --- a/libs/input/Android.mk +++ b/libs/input/Android.mk @@ -27,7 +27,6 @@ commonSources := \ deviceSources := \ $(commonSources) \ - IInputFlinger.cpp \ InputTransport.cpp \ VelocityControl.cpp \ VelocityTracker.cpp diff --git a/libs/input/IInputFlinger.cpp b/libs/input/IInputFlinger.cpp deleted file mode 100644 index e009731..0000000 --- a/libs/input/IInputFlinger.cpp +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Copyright (C) 2013 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include <stdint.h> -#include <sys/types.h> - -#include <binder/Parcel.h> -#include <binder/IPCThreadState.h> -#include <binder/IServiceManager.h> - -#include <input/IInputFlinger.h> - - -namespace android { - -class BpInputFlinger : public BpInterface<IInputFlinger> { -public: - BpInputFlinger(const sp<IBinder>& impl) : - BpInterface<IInputFlinger>(impl) { } - - virtual status_t doSomething() { - Parcel data, reply; - data.writeInterfaceToken(IInputFlinger::getInterfaceDescriptor()); - remote()->transact(BnInputFlinger::DO_SOMETHING_TRANSACTION, data, &reply); - return reply.readInt32(); - } -}; - -IMPLEMENT_META_INTERFACE(InputFlinger, "android.input.IInputFlinger"); - - -status_t BnInputFlinger::onTransact( - uint32_t code, const Parcel& data, Parcel* reply, uint32_t flags) { - switch(code) { - case DO_SOMETHING_TRANSACTION: { - CHECK_INTERFACE(IInputFlinger, data, reply); - reply->writeInt32(0); - break; - } - default: - return BBinder::onTransact(code, data, reply, flags); - } - return NO_ERROR; -} - -}; diff --git a/services/inputflinger/Android.mk b/services/inputflinger/Android.mk deleted file mode 100644 index e32d38a..0000000 --- a/services/inputflinger/Android.mk +++ /dev/null @@ -1,50 +0,0 @@ -# Copyright (C) 2013 The Android Open Source Project -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -LOCAL_PATH:= $(call my-dir) -include $(CLEAR_VARS) - -LOCAL_SRC_FILES:= \ - InputFlinger.cpp - -LOCAL_SHARED_LIBRARIES := \ - libbinder \ - libcutils \ - libinput \ - liblog \ - libutils - -LOCAL_CFLAGS += -fvisibility=hidden - -LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH) - -LOCAL_MODULE := libinputflinger - -include $(BUILD_SHARED_LIBRARY) - -######################################################################## -# build input flinger executable -include $(CLEAR_VARS) - -LOCAL_SRC_FILES:= \ - main.cpp - -LOCAL_SHARED_LIBRARIES := \ - libbinder \ - libinputflinger \ - libutils - -LOCAL_MODULE := inputflinger - -include $(BUILD_EXECUTABLE) diff --git a/services/inputflinger/InputFlinger.cpp b/services/inputflinger/InputFlinger.cpp deleted file mode 100644 index 9ea6ce5..0000000 --- a/services/inputflinger/InputFlinger.cpp +++ /dev/null @@ -1,89 +0,0 @@ -/* - * Copyright (C) 2013 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#define LOG_TAG "InputFlinger" - -#include "InputFlinger.h" - -#include <stdint.h> -#include <unistd.h> - -#include <sys/types.h> - -#include <binder/IPCThreadState.h> -#include <binder/PermissionCache.h> -#include <cutils/log.h> -#include <private/android_filesystem_config.h> - -namespace android { - -const String16 sAccessInputFlingerPermission("android.permission.ACCESS_INPUT_FLINGER"); -const String16 sDumpPermission("android.permission.DUMP"); - - -InputFlinger::InputFlinger() : - BnInputFlinger() { - ALOGI("InputFlinger is starting"); -} - -InputFlinger::~InputFlinger() { -} - -status_t InputFlinger::onTransact( - uint32_t code, const Parcel& data, Parcel* reply, uint32_t flags) { - switch (code) { - case DO_SOMETHING_TRANSACTION: - const IPCThreadState* ipc = IPCThreadState::self(); - const int pid = ipc->getCallingPid(); - const int uid = ipc->getCallingUid(); - if (!PermissionCache::checkPermission(sAccessInputFlingerPermission, pid, uid)) { - ALOGE("Permission Denial: " - "can't access InputFlinger from pid=%d, uid=%d", pid, uid); - return PERMISSION_DENIED; - } - break; - } - - return BnInputFlinger::onTransact(code, data, reply, flags); -} - -status_t InputFlinger::dump(int fd, const Vector<String16>& args) { - String8 result; - const IPCThreadState* ipc = IPCThreadState::self(); - const int pid = ipc->getCallingPid(); - const int uid = ipc->getCallingUid(); - if ((uid != AID_SHELL) - && !PermissionCache::checkPermission(sDumpPermission, pid, uid)) { - result.appendFormat("Permission Denial: " - "can't dump SurfaceFlinger from pid=%d, uid=%d\n", pid, uid); - } else { - dumpInternal(result); - } - write(fd, result.string(), result.size()); - return OK; -} - -void InputFlinger::dumpInternal(String8& result) { - result.append("INPUT FLINGER (dumpsys inputflinger)\n"); - result.append("... nothing here yet...\n"); -} - -status_t InputFlinger::doSomething() { - ALOGI("Did something..."); - return OK; -} - -}; // namespace android diff --git a/services/inputflinger/InputFlinger.h b/services/inputflinger/InputFlinger.h deleted file mode 100644 index 731ab17..0000000 --- a/services/inputflinger/InputFlinger.h +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Copyright (C) 2013 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef ANDROID_INPUT_FLINGER_H -#define ANDROID_INPUT_FLINGER_H - -#include <stdint.h> -#include <sys/types.h> - -#include <cutils/compiler.h> -#include <input/IInputFlinger.h> -#include <utils/String8.h> -#include <utils/String16.h> - -namespace android { - -class InputFlinger : public BnInputFlinger { -public: - static char const* getServiceName() ANDROID_API { - return "inputflinger"; - } - - InputFlinger() ANDROID_API; - - // IBinder interface - virtual status_t onTransact(uint32_t code, - const Parcel& data, Parcel* reply, uint32_t flags); - virtual status_t dump(int fd, const Vector<String16>& args); - - // IInputFlinger interface - virtual status_t doSomething(); - -private: - virtual ~InputFlinger(); - - void dumpInternal(String8& result); -}; - -} // namespace android - -#endif // ANDROID_INPUT_FLINGER_H diff --git a/services/inputflinger/main.cpp b/services/inputflinger/main.cpp deleted file mode 100644 index 3209a62..0000000 --- a/services/inputflinger/main.cpp +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Copyright (C) 2013 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include <binder/BinderService.h> -#include "InputFlinger.h" - -using namespace android; - -int main(int argc, char** argv) { - ProcessState::self()->setThreadPoolMaxThreadCount(4); - BinderService<InputFlinger>::publishAndJoinThreadPool(true); - return 0; -} diff --git a/services/surfaceflinger/Android.mk b/services/surfaceflinger/Android.mk index 81b0d14..3888d7e 100644 --- a/services/surfaceflinger/Android.mk +++ b/services/surfaceflinger/Android.mk @@ -82,6 +82,7 @@ LOCAL_SRC_FILES:= \ LOCAL_SHARED_LIBRARIES := \ libsurfaceflinger \ + libcutils \ liblog \ libbinder \ libutils diff --git a/services/surfaceflinger/RenderEngine/GLES20RenderEngine.cpp b/services/surfaceflinger/RenderEngine/GLES20RenderEngine.cpp index dcad390..cde1e3a 100644 --- a/services/surfaceflinger/RenderEngine/GLES20RenderEngine.cpp +++ b/services/surfaceflinger/RenderEngine/GLES20RenderEngine.cpp @@ -116,7 +116,11 @@ void GLES20RenderEngine::setupLayerBlending( } void GLES20RenderEngine::setupDimLayerBlending(int alpha) { - mState.setPlaneAlpha(alpha / 255.0f); + mState.setPlaneAlpha(1.0f); + mState.setPremultipliedAlpha(true); + mState.setOpaque(false); + mState.setColor(0, 0, 0, alpha/255.0f); + mState.disableTexture(); if (alpha == 0xFF) { glDisable(GL_BLEND); @@ -124,7 +128,6 @@ void GLES20RenderEngine::setupDimLayerBlending(int alpha) { glEnable(GL_BLEND); glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA); } - disableTexturing(); } void GLES20RenderEngine::setupLayerTexturing(const Texture& texture) { diff --git a/services/surfaceflinger/SurfaceFlinger.cpp b/services/surfaceflinger/SurfaceFlinger.cpp index a151142..9fd3f25 100644 --- a/services/surfaceflinger/SurfaceFlinger.cpp +++ b/services/surfaceflinger/SurfaceFlinger.cpp @@ -22,10 +22,6 @@ #include <math.h> #include <dlfcn.h> -#if defined(HAVE_PTHREADS) -#include <sys/resource.h> -#endif - #include <EGL/egl.h> #include <cutils/log.h> @@ -640,9 +636,6 @@ status_t SurfaceFlinger::postMessageSync(const sp<MessageBase>& msg, } void SurfaceFlinger::run() { -#if defined(HAVE_PTHREADS) - setpriority(PRIO_PROCESS, 0, PRIORITY_URGENT_DISPLAY); -#endif do { waitForEvent(); } while (true); diff --git a/services/surfaceflinger/main_surfaceflinger.cpp b/services/surfaceflinger/main_surfaceflinger.cpp index a609b6f..b161480 100644 --- a/services/surfaceflinger/main_surfaceflinger.cpp +++ b/services/surfaceflinger/main_surfaceflinger.cpp @@ -14,6 +14,11 @@ * limitations under the License. */ +#if defined(HAVE_PTHREADS) +#include <sys/resource.h> +#endif + +#include <cutils/sched_policy.h> #include <binder/IServiceManager.h> #include <binder/IPCThreadState.h> #include <binder/ProcessState.h> @@ -27,16 +32,21 @@ int main(int argc, char** argv) { // binder threads to 4. ProcessState::self()->setThreadPoolMaxThreadCount(4); + // start the thread pool + sp<ProcessState> ps(ProcessState::self()); + ps->startThreadPool(); + // instantiate surfaceflinger sp<SurfaceFlinger> flinger = new SurfaceFlinger(); +#if defined(HAVE_PTHREADS) + setpriority(PRIO_PROCESS, 0, PRIORITY_URGENT_DISPLAY); +#endif + set_sched_policy(0, SP_FOREGROUND); + // initialize before clients can connect flinger->init(); - // start the thread pool - sp<ProcessState> ps(ProcessState::self()); - ps->startThreadPool(); - // publish surface flinger sp<IServiceManager> sm(defaultServiceManager()); sm->addService(String16(SurfaceFlinger::getServiceName()), flinger, false); |