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> {
331b86fe063badb5f28c467ade39be0f4008688947Andreas Huber    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) {
471b86fe063badb5f28c467ade39be0f4008688947Andreas Huber            return NULL;
481b86fe063badb5f28c467ade39be0f4008688947Andreas Huber        }
491b86fe063badb5f28c467ade39be0f4008688947Andreas Huber
501b86fe063badb5f28c467ade39be0f4008688947Andreas Huber        return interface_cast<IMediaHTTPConnection>(reply.readStrongBinder());
511b86fe063badb5f28c467ade39be0f4008688947Andreas Huber    }
521b86fe063badb5f28c467ade39be0f4008688947Andreas Huber};
531b86fe063badb5f28c467ade39be0f4008688947Andreas Huber
541b86fe063badb5f28c467ade39be0f4008688947Andreas HuberIMPLEMENT_META_INTERFACE(
551b86fe063badb5f28c467ade39be0f4008688947Andreas Huber        MediaHTTPService, "android.media.IMediaHTTPService");
561b86fe063badb5f28c467ade39be0f4008688947Andreas Huber
571b86fe063badb5f28c467ade39be0f4008688947Andreas Huber}  // namespace android
581b86fe063badb5f28c467ade39be0f4008688947Andreas Huber
59