17a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé/* 27a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé * Copyright (C) 2012 The Android Open Source Project 37a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé * 47a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé * Licensed under the Apache License, Version 2.0 (the "License"); 57a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé * you may not use this file except in compliance with the License. 67a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé * You may obtain a copy of the License at 77a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé * 87a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé * http://www.apache.org/licenses/LICENSE-2.0 97a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé * 107a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé * Unless required by applicable law or agreed to in writing, software 117a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé * distributed under the License is distributed on an "AS IS" BASIS, 127a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 137a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé * See the License for the specific language governing permissions and 147a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé * limitations under the License. 157a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé */ 167a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé 177a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé#ifndef SDP_LOADER_H_ 187a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé 197a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé#define SDP_LOADER_H_ 207a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé 217a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé#include <media/stagefright/foundation/AMessage.h> 227a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé#include <media/stagefright/foundation/AHandler.h> 237a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé#include <utils/String8.h> 247a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé 257a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhénamespace android { 267a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé 277a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhéstruct HTTPBase; 281b86fe063badb5f28c467ade39be0f4008688947Andreas Huberstruct IMediaHTTPService; 297a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé 307a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhéstruct SDPLoader : public AHandler { 317a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé enum Flags { 327a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé // Don't log any URLs. 337a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé kFlagIncognito = 1, 347a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé }; 357a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé enum { 367a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé kWhatSDPLoaded = 'sdpl' 377a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé }; 381b86fe063badb5f28c467ade39be0f4008688947Andreas Huber SDPLoader( 391b86fe063badb5f28c467ade39be0f4008688947Andreas Huber const sp<AMessage> ¬ify, 401b86fe063badb5f28c467ade39be0f4008688947Andreas Huber uint32_t flags, 4181e68448f3361eaf8618930471fdc3c21bdf5cbcAndreas Huber const sp<IMediaHTTPService> &httpService); 427a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé 437a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé void load(const char* url, const KeyedVector<String8, String8> *headers); 447a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé 457a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé void cancel(); 467a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé 477a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhéprotected: 487a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé virtual ~SDPLoader() {} 497a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé 507a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé virtual void onMessageReceived(const sp<AMessage> &msg); 517a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé 527a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhéprivate: 537a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé enum { 547a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé kWhatLoad = 'load', 557a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé }; 567a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé 577a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé void onLoad(const sp<AMessage> &msg); 587a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé 597a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé sp<AMessage> mNotify; 607a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé const char* mUrl; 617a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé uint32_t mFlags; 627a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé sp<ALooper> mNetLooper; 637a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé bool mCancelled; 647a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé 657a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé sp<HTTPBase> mHTTPDataSource; 667a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé 677a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé DISALLOW_EVIL_CONSTRUCTORS(SDPLoader); 687a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé}; 697a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé 707a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé} // namespace android 717a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé 727a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé#endif // SDP_LOADER_H_ 73