/* * Copyright (c) 2017 Amlogic, Inc. All rights reserved. * * This source code is subject to the terms and conditions defined in the * file 'LICENSE' which is part of this source code package. * * Description: */ #ifndef CLIENT_COMPOSER_H #define CLIENT_COMPOSER_H #include #define CLIENT_COMPOSER_NAME "Client" /* * ClientComposer: ask SurfaceFlinger to do composition. */ class ClientComposer : public IComposer { public: ClientComposer(); ~ClientComposer(); const char* getName() { return CLIENT_COMPOSER_NAME; } meson_composition_t getType() { return MESON_COMPOSITION_CLIENT; } bool isFbsSupport( std::vector> & fbs, std::vector> & overlayfbs, int composeIdx = 0); int32_t prepare(); int32_t addInputs( std::vector> & fbs, std::vector> & overlayfbs, int composeIdx = 0); int32_t getOverlyFbs(std::vector> & overlays); int32_t setOutput( std::shared_ptr & fb, int composeIdx = 0); int32_t start(int composeIdx = 0); std::shared_ptr getOutput(int composeIdx = 0); int32_t setReleaseFence() {return 0;} int32_t enable(bool enable __unused) {return 0;} protected: /* protect of mClientTarget */ std::mutex mMutex; std::shared_ptr mClientTarget; std::vector> mOverlayFbs; }; #endif/*CLIENT_COMPOSER_H*/