156f610dd235b577725198e9341caae92379fdf23Saurabh Shah/* 2d5e3e404e1344eb2148c8df9f3e35d841ddd4285Saurabh Shah * Copyright (c) 2012-2013, The Linux Foundation. All rights reserved. 356f610dd235b577725198e9341caae92379fdf23Saurabh Shah * 456f610dd235b577725198e9341caae92379fdf23Saurabh Shah * Redistribution and use in source and binary forms, with or without 556f610dd235b577725198e9341caae92379fdf23Saurabh Shah * modification, are permitted provided that the following conditions are 656f610dd235b577725198e9341caae92379fdf23Saurabh Shah * met: 756f610dd235b577725198e9341caae92379fdf23Saurabh Shah * * Redistributions of source code must retain the above copyright 856f610dd235b577725198e9341caae92379fdf23Saurabh Shah * notice, this list of conditions and the following disclaimer. 956f610dd235b577725198e9341caae92379fdf23Saurabh Shah * * Redistributions in binary form must reproduce the above 1056f610dd235b577725198e9341caae92379fdf23Saurabh Shah * copyright notice, this list of conditions and the following 1156f610dd235b577725198e9341caae92379fdf23Saurabh Shah * disclaimer in the documentation and/or other materials provided 1256f610dd235b577725198e9341caae92379fdf23Saurabh Shah * with the distribution. 13a43fb8fce6d9be5577de1e0f49c99bd4fe2f6d44Duy Truong * * Neither the name of The Linux Foundation nor the names of its 1456f610dd235b577725198e9341caae92379fdf23Saurabh Shah * contributors may be used to endorse or promote products derived 1556f610dd235b577725198e9341caae92379fdf23Saurabh Shah * from this software without specific prior written permission. 1656f610dd235b577725198e9341caae92379fdf23Saurabh Shah * 1756f610dd235b577725198e9341caae92379fdf23Saurabh Shah * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED 1856f610dd235b577725198e9341caae92379fdf23Saurabh Shah * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 1956f610dd235b577725198e9341caae92379fdf23Saurabh Shah * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT 2056f610dd235b577725198e9341caae92379fdf23Saurabh Shah * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS 2156f610dd235b577725198e9341caae92379fdf23Saurabh Shah * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 2256f610dd235b577725198e9341caae92379fdf23Saurabh Shah * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 2356f610dd235b577725198e9341caae92379fdf23Saurabh Shah * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR 2456f610dd235b577725198e9341caae92379fdf23Saurabh Shah * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 2556f610dd235b577725198e9341caae92379fdf23Saurabh Shah * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE 2656f610dd235b577725198e9341caae92379fdf23Saurabh Shah * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN 2756f610dd235b577725198e9341caae92379fdf23Saurabh Shah * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 2856f610dd235b577725198e9341caae92379fdf23Saurabh Shah */ 2956f610dd235b577725198e9341caae92379fdf23Saurabh Shah 3056f610dd235b577725198e9341caae92379fdf23Saurabh Shah#include <QService.h> 3156f610dd235b577725198e9341caae92379fdf23Saurabh Shah 3256f610dd235b577725198e9341caae92379fdf23Saurabh Shah#define QSERVICE_DEBUG 0 3356f610dd235b577725198e9341caae92379fdf23Saurabh Shah 3456f610dd235b577725198e9341caae92379fdf23Saurabh Shahusing namespace android; 3556f610dd235b577725198e9341caae92379fdf23Saurabh Shah 3656f610dd235b577725198e9341caae92379fdf23Saurabh Shahnamespace qService { 3756f610dd235b577725198e9341caae92379fdf23Saurabh Shah 3856f610dd235b577725198e9341caae92379fdf23Saurabh ShahQService* QService::sQService = NULL; 3956f610dd235b577725198e9341caae92379fdf23Saurabh Shah// ---------------------------------------------------------------------------- 40d5e3e404e1344eb2148c8df9f3e35d841ddd4285Saurabh ShahQService::QService() 4156f610dd235b577725198e9341caae92379fdf23Saurabh Shah{ 4256f610dd235b577725198e9341caae92379fdf23Saurabh Shah ALOGD_IF(QSERVICE_DEBUG, "QService Constructor invoked"); 4356f610dd235b577725198e9341caae92379fdf23Saurabh Shah} 4456f610dd235b577725198e9341caae92379fdf23Saurabh Shah 4556f610dd235b577725198e9341caae92379fdf23Saurabh ShahQService::~QService() 4656f610dd235b577725198e9341caae92379fdf23Saurabh Shah{ 4756f610dd235b577725198e9341caae92379fdf23Saurabh Shah ALOGD_IF(QSERVICE_DEBUG,"QService Destructor invoked"); 4856f610dd235b577725198e9341caae92379fdf23Saurabh Shah} 4956f610dd235b577725198e9341caae92379fdf23Saurabh Shah 5056f610dd235b577725198e9341caae92379fdf23Saurabh Shahvoid QService::securing(uint32_t startEnd) { 51d5e3e404e1344eb2148c8df9f3e35d841ddd4285Saurabh Shah if(mClient.get()) { 52d5e3e404e1344eb2148c8df9f3e35d841ddd4285Saurabh Shah mClient->notifyCallback(SECURING, startEnd); 53d5e3e404e1344eb2148c8df9f3e35d841ddd4285Saurabh Shah } 5456f610dd235b577725198e9341caae92379fdf23Saurabh Shah} 5556f610dd235b577725198e9341caae92379fdf23Saurabh Shah 5656f610dd235b577725198e9341caae92379fdf23Saurabh Shahvoid QService::unsecuring(uint32_t startEnd) { 57d5e3e404e1344eb2148c8df9f3e35d841ddd4285Saurabh Shah if(mClient.get()) { 58d5e3e404e1344eb2148c8df9f3e35d841ddd4285Saurabh Shah mClient->notifyCallback(UNSECURING, startEnd); 59d5e3e404e1344eb2148c8df9f3e35d841ddd4285Saurabh Shah } 60d5e3e404e1344eb2148c8df9f3e35d841ddd4285Saurabh Shah} 61d5e3e404e1344eb2148c8df9f3e35d841ddd4285Saurabh Shah 62d5e3e404e1344eb2148c8df9f3e35d841ddd4285Saurabh Shahvoid QService::connect(const sp<qClient::IQClient>& client) { 63d5e3e404e1344eb2148c8df9f3e35d841ddd4285Saurabh Shah mClient = client; 6456f610dd235b577725198e9341caae92379fdf23Saurabh Shah} 6556f610dd235b577725198e9341caae92379fdf23Saurabh Shah 66e1f47e78496b6b9382d8c71c959ae6365c7a05d2Jeykumar Sankaranandroid::status_t QService::screenRefresh() { 67e1f47e78496b6b9382d8c71c959ae6365c7a05d2Jeykumar Sankaran status_t result = NO_ERROR; 68e1f47e78496b6b9382d8c71c959ae6365c7a05d2Jeykumar Sankaran if(mClient.get()) { 69e1f47e78496b6b9382d8c71c959ae6365c7a05d2Jeykumar Sankaran result = mClient->notifyCallback(SCREEN_REFRESH, 0); 70e1f47e78496b6b9382d8c71c959ae6365c7a05d2Jeykumar Sankaran } 71e1f47e78496b6b9382d8c71c959ae6365c7a05d2Jeykumar Sankaran return result; 72e1f47e78496b6b9382d8c71c959ae6365c7a05d2Jeykumar Sankaran} 73e1f47e78496b6b9382d8c71c959ae6365c7a05d2Jeykumar Sankaran 74d5e3e404e1344eb2148c8df9f3e35d841ddd4285Saurabh Shahvoid QService::init() 7556f610dd235b577725198e9341caae92379fdf23Saurabh Shah{ 7656f610dd235b577725198e9341caae92379fdf23Saurabh Shah if(!sQService) { 77d5e3e404e1344eb2148c8df9f3e35d841ddd4285Saurabh Shah sQService = new QService(); 7856f610dd235b577725198e9341caae92379fdf23Saurabh Shah sp<IServiceManager> sm = defaultServiceManager(); 7956f610dd235b577725198e9341caae92379fdf23Saurabh Shah sm->addService(String16("display.qservice"), sQService); 8056f610dd235b577725198e9341caae92379fdf23Saurabh Shah if(sm->checkService(String16("display.qservice")) != NULL) 8156f610dd235b577725198e9341caae92379fdf23Saurabh Shah ALOGD_IF(QSERVICE_DEBUG, "adding display.qservice succeeded"); 8256f610dd235b577725198e9341caae92379fdf23Saurabh Shah else 8356f610dd235b577725198e9341caae92379fdf23Saurabh Shah ALOGD_IF(QSERVICE_DEBUG, "adding display.qservice failed"); 8456f610dd235b577725198e9341caae92379fdf23Saurabh Shah } 8556f610dd235b577725198e9341caae92379fdf23Saurabh Shah} 8656f610dd235b577725198e9341caae92379fdf23Saurabh Shah 8756f610dd235b577725198e9341caae92379fdf23Saurabh Shah} 88