11b86fe063badb5f28c467ade39be0f4008688947Andreas Huber/*
21b86fe063badb5f28c467ade39be0f4008688947Andreas Huber * Copyright (C) 2013 The Android Open Source Project
31b86fe063badb5f28c467ade39be0f4008688947Andreas Huber *
41b86fe063badb5f28c467ade39be0f4008688947Andreas Huber * Licensed under the Apache License, Version 2.0 (the "License");
51b86fe063badb5f28c467ade39be0f4008688947Andreas Huber * you may not use this file except in compliance with the License.
61b86fe063badb5f28c467ade39be0f4008688947Andreas Huber * You may obtain a copy of the License at
71b86fe063badb5f28c467ade39be0f4008688947Andreas Huber *
81b86fe063badb5f28c467ade39be0f4008688947Andreas Huber *      http://www.apache.org/licenses/LICENSE-2.0
91b86fe063badb5f28c467ade39be0f4008688947Andreas Huber *
101b86fe063badb5f28c467ade39be0f4008688947Andreas Huber * Unless required by applicable law or agreed to in writing, software
111b86fe063badb5f28c467ade39be0f4008688947Andreas Huber * distributed under the License is distributed on an "AS IS" BASIS,
121b86fe063badb5f28c467ade39be0f4008688947Andreas Huber * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
131b86fe063badb5f28c467ade39be0f4008688947Andreas Huber * See the License for the specific language governing permissions and
141b86fe063badb5f28c467ade39be0f4008688947Andreas Huber * limitations under the License.
151b86fe063badb5f28c467ade39be0f4008688947Andreas Huber */
161b86fe063badb5f28c467ade39be0f4008688947Andreas Huber
171b86fe063badb5f28c467ade39be0f4008688947Andreas Huber//#define LOG_NDEBUG 0
181b86fe063badb5f28c467ade39be0f4008688947Andreas Huber#define LOG_TAG "IMediaHTTPService"
191b86fe063badb5f28c467ade39be0f4008688947Andreas Huber#include <utils/Log.h>
201b86fe063badb5f28c467ade39be0f4008688947Andreas Huber
211b86fe063badb5f28c467ade39be0f4008688947Andreas Huber#include <media/IMediaHTTPService.h>
221b86fe063badb5f28c467ade39be0f4008688947Andreas Huber
231b86fe063badb5f28c467ade39be0f4008688947Andreas Huber#include <binder/Parcel.h>
241b86fe063badb5f28c467ade39be0f4008688947Andreas Huber#include <media/IMediaHTTPConnection.h>
251b86fe063badb5f28c467ade39be0f4008688947Andreas Huber
261b86fe063badb5f28c467ade39be0f4008688947Andreas Hubernamespace android {
271b86fe063badb5f28c467ade39be0f4008688947Andreas Huber
281b86fe063badb5f28c467ade39be0f4008688947Andreas Huberenum {
291b86fe063badb5f28c467ade39be0f4008688947Andreas Huber    MAKE_HTTP = IBinder::FIRST_CALL_TRANSACTION,
301b86fe063badb5f28c467ade39be0f4008688947Andreas Huber};
311b86fe063badb5f28c467ade39be0f4008688947Andreas Huber
321b86fe063badb5f28c467ade39be0f4008688947Andreas Huberstruct BpMediaHTTPService : public BpInterface<IMediaHTTPService> {
33090ef604f81447eab4aa0a5b45d6307482573560Chih-Hung Hsieh    explicit BpMediaHTTPService(const sp<IBinder> &impl)
341b86fe063badb5f28c467ade39be0f4008688947Andreas Huber        : BpInterface<IMediaHTTPService>(impl) {
351b86fe063badb5f28c467ade39be0f4008688947Andreas Huber    }
361b86fe063badb5f28c467ade39be0f4008688947Andreas Huber
371b86fe063badb5f28c467ade39be0f4008688947Andreas Huber    virtual sp<IMediaHTTPConnection> makeHTTPConnection() {
381b86fe063badb5f28c467ade39be0f4008688947Andreas Huber        Parcel data, reply;
391b86fe063badb5f28c467ade39be0f4008688947Andreas Huber        data.writeInterfaceToken(
401b86fe063badb5f28c467ade39be0f4008688947Andreas Huber                IMediaHTTPService::getInterfaceDescriptor());
411b86fe063badb5f28c467ade39be0f4008688947Andreas Huber
421b86fe063badb5f28c467ade39be0f4008688947Andreas Huber        remote()->transact(MAKE_HTTP, data, &reply);
431b86fe063badb5f28c467ade39be0f4008688947Andreas Huber
441b86fe063badb5f28c467ade39be0f4008688947Andreas Huber        status_t err = reply.readInt32();
451b86fe063badb5f28c467ade39be0f4008688947Andreas Huber
461b86fe063badb5f28c467ade39be0f4008688947Andreas Huber        if (err != OK) {
4737d8b27e5470d8243288a87e90871efd43f29606Chong Zhang            ALOGE("Unable to make HTTP connection (err = %d)", err);
481b86fe063badb5f28c467ade39be0f4008688947Andreas Huber            return NULL;
491b86fe063badb5f28c467ade39be0f4008688947Andreas Huber        }
501b86fe063badb5f28c467ade39be0f4008688947Andreas Huber
511b86fe063badb5f28c467ade39be0f4008688947Andreas Huber        return interface_cast<IMediaHTTPConnection>(reply.readStrongBinder());
521b86fe063badb5f28c467ade39be0f4008688947Andreas Huber    }
531b86fe063badb5f28c467ade39be0f4008688947Andreas Huber};
541b86fe063badb5f28c467ade39be0f4008688947Andreas Huber
551b86fe063badb5f28c467ade39be0f4008688947Andreas HuberIMPLEMENT_META_INTERFACE(
561b86fe063badb5f28c467ade39be0f4008688947Andreas Huber        MediaHTTPService, "android.media.IMediaHTTPService");
571b86fe063badb5f28c467ade39be0f4008688947Andreas Huber
58d2027336b45f524a196403d351ec317782793792Glenn Kasten} // namespace android
59