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