107bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani/*
207bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani *  Copyright (c) 2013, The Linux Foundation. All rights reserved.
307bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani *
407bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani * Redistribution and use in source and binary forms, with or without
507bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani * modification, are permitted provided that the following conditions are
607bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani * met:
707bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani *     * Redistributions of source code must retain the above copyright
807bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani *       notice, this list of conditions and the following disclaimer.
907bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani *     * Redistributions in binary form must reproduce the above
1007bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani *       copyright notice, this list of conditions and the following
1107bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani *       disclaimer in the documentation and/or other materials provided
1207bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani *       with the distribution.
1307bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani *     * Neither the name of The Linux Foundation nor the names of its
1407bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani *       contributors may be used to endorse or promote products derived
1507bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani *       from this software without specific prior written permission.
1607bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani *
1707bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
1807bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
1907bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
2007bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani * ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
2107bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
2207bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
2307bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani * SUBSTITUTE GOODS OR CLIENTS; LOSS OF USE, DATA, OR PROFITS; OR
2407bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
2507bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
2607bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
2707bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
2807bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani */
2907bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani
3007bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani#ifndef ANDROID_QCLIENT_H
3107bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani#define ANDROID_QCLIENT_H
3207bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani
3307bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani#include <utils/Errors.h>
3407bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani#include <sys/types.h>
3507bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani#include <cutils/log.h>
3607bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani#include <binder/IServiceManager.h>
3707bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani#include <media/IMediaDeathNotifier.h>
3807bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani#include <IQClient.h>
3907bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani
4007bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malanistruct hwc_context_t;
4107bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani
4207bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malaniclass Params;
4307bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malaninamespace qClient {
4407bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani// ----------------------------------------------------------------------------
4507bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani
4607bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malaniclass QClient : public BnQClient {
4707bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malanipublic:
4807bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani    QClient(hwc_context_t *ctx);
4907bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani    virtual ~QClient();
5007bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani    virtual android::status_t notifyCallback(uint32_t command,
5107bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani            const android::Parcel* inParcel,
5207bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani            android::Parcel* outParcel);
5307bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani
5407bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malaniprivate:
5507bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani    //Notifies of Media Player death
5607bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani    class MPDeathNotifier : public android::IMediaDeathNotifier {
5707bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani    public:
5807bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani        MPDeathNotifier(hwc_context_t* ctx) : mHwcContext(ctx){}
5907bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani        virtual void died();
6007bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani        hwc_context_t *mHwcContext;
6107bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani    };
6207bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani
6307bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani    hwc_context_t *mHwcContext;
6407bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani    const android::sp<android::IMediaDeathNotifier> mMPDeathNotifier;
6507bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani};
6607bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani}; // namespace qClient
6707bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani#endif // ANDROID_QCLIENT_H
68