RemoteDisplay.cpp revision d7bee3a9d2ad76d073d91f0ee36d5ac5f9df480c
1d7bee3a9d2ad76d073d91f0ee36d5ac5f9df480cAndreas Huber/* 2d7bee3a9d2ad76d073d91f0ee36d5ac5f9df480cAndreas Huber * Copyright 2012, The Android Open Source Project 3d7bee3a9d2ad76d073d91f0ee36d5ac5f9df480cAndreas Huber * 4d7bee3a9d2ad76d073d91f0ee36d5ac5f9df480cAndreas Huber * Licensed under the Apache License, Version 2.0 (the "License"); 5d7bee3a9d2ad76d073d91f0ee36d5ac5f9df480cAndreas Huber * you may not use this file except in compliance with the License. 6d7bee3a9d2ad76d073d91f0ee36d5ac5f9df480cAndreas Huber * You may obtain a copy of the License at 7d7bee3a9d2ad76d073d91f0ee36d5ac5f9df480cAndreas Huber * 8d7bee3a9d2ad76d073d91f0ee36d5ac5f9df480cAndreas Huber * http://www.apache.org/licenses/LICENSE-2.0 9d7bee3a9d2ad76d073d91f0ee36d5ac5f9df480cAndreas Huber * 10d7bee3a9d2ad76d073d91f0ee36d5ac5f9df480cAndreas Huber * Unless required by applicable law or agreed to in writing, software 11d7bee3a9d2ad76d073d91f0ee36d5ac5f9df480cAndreas Huber * distributed under the License is distributed on an "AS IS" BASIS, 12d7bee3a9d2ad76d073d91f0ee36d5ac5f9df480cAndreas Huber * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13d7bee3a9d2ad76d073d91f0ee36d5ac5f9df480cAndreas Huber * See the License for the specific language governing permissions and 14d7bee3a9d2ad76d073d91f0ee36d5ac5f9df480cAndreas Huber * limitations under the License. 15d7bee3a9d2ad76d073d91f0ee36d5ac5f9df480cAndreas Huber */ 16d7bee3a9d2ad76d073d91f0ee36d5ac5f9df480cAndreas Huber 17d7bee3a9d2ad76d073d91f0ee36d5ac5f9df480cAndreas Huber#include "RemoteDisplay.h" 18d7bee3a9d2ad76d073d91f0ee36d5ac5f9df480cAndreas Huber 19d7bee3a9d2ad76d073d91f0ee36d5ac5f9df480cAndreas Huber#include "ANetworkSession.h" 20d7bee3a9d2ad76d073d91f0ee36d5ac5f9df480cAndreas Huber#include "source/WifiDisplaySource.h" 21d7bee3a9d2ad76d073d91f0ee36d5ac5f9df480cAndreas Huber 22d7bee3a9d2ad76d073d91f0ee36d5ac5f9df480cAndreas Hubernamespace android { 23d7bee3a9d2ad76d073d91f0ee36d5ac5f9df480cAndreas Huber 24d7bee3a9d2ad76d073d91f0ee36d5ac5f9df480cAndreas HuberRemoteDisplay::RemoteDisplay() 25d7bee3a9d2ad76d073d91f0ee36d5ac5f9df480cAndreas Huber : mInitCheck(NO_INIT), 26d7bee3a9d2ad76d073d91f0ee36d5ac5f9df480cAndreas Huber mLooper(new ALooper), 27d7bee3a9d2ad76d073d91f0ee36d5ac5f9df480cAndreas Huber mNetSession(new ANetworkSession), 28d7bee3a9d2ad76d073d91f0ee36d5ac5f9df480cAndreas Huber mSource(new WifiDisplaySource(mNetSession)) { 29d7bee3a9d2ad76d073d91f0ee36d5ac5f9df480cAndreas Huber mLooper->registerHandler(mSource); 30d7bee3a9d2ad76d073d91f0ee36d5ac5f9df480cAndreas Huber} 31d7bee3a9d2ad76d073d91f0ee36d5ac5f9df480cAndreas Huber 32d7bee3a9d2ad76d073d91f0ee36d5ac5f9df480cAndreas HuberRemoteDisplay::~RemoteDisplay() { 33d7bee3a9d2ad76d073d91f0ee36d5ac5f9df480cAndreas Huber} 34d7bee3a9d2ad76d073d91f0ee36d5ac5f9df480cAndreas Huber 35d7bee3a9d2ad76d073d91f0ee36d5ac5f9df480cAndreas Huberstatus_t RemoteDisplay::start() { 36d7bee3a9d2ad76d073d91f0ee36d5ac5f9df480cAndreas Huber mNetSession->start(); 37d7bee3a9d2ad76d073d91f0ee36d5ac5f9df480cAndreas Huber mLooper->start(); 38d7bee3a9d2ad76d073d91f0ee36d5ac5f9df480cAndreas Huber 39d7bee3a9d2ad76d073d91f0ee36d5ac5f9df480cAndreas Huber // XXX replace with 8554 for bcom dongle (it doesn't respect the 40d7bee3a9d2ad76d073d91f0ee36d5ac5f9df480cAndreas Huber // default port or the one advertised in the wfd IE). 41d7bee3a9d2ad76d073d91f0ee36d5ac5f9df480cAndreas Huber mSource->start(WifiDisplaySource::kWifiDisplayDefaultPort); 42d7bee3a9d2ad76d073d91f0ee36d5ac5f9df480cAndreas Huber 43d7bee3a9d2ad76d073d91f0ee36d5ac5f9df480cAndreas Huber return OK; 44d7bee3a9d2ad76d073d91f0ee36d5ac5f9df480cAndreas Huber} 45d7bee3a9d2ad76d073d91f0ee36d5ac5f9df480cAndreas Huber 46d7bee3a9d2ad76d073d91f0ee36d5ac5f9df480cAndreas Huberstatus_t RemoteDisplay::stop() { 47d7bee3a9d2ad76d073d91f0ee36d5ac5f9df480cAndreas Huber mSource->stop(); 48d7bee3a9d2ad76d073d91f0ee36d5ac5f9df480cAndreas Huber 49d7bee3a9d2ad76d073d91f0ee36d5ac5f9df480cAndreas Huber mLooper->stop(); 50d7bee3a9d2ad76d073d91f0ee36d5ac5f9df480cAndreas Huber mNetSession->stop(); 51d7bee3a9d2ad76d073d91f0ee36d5ac5f9df480cAndreas Huber 52d7bee3a9d2ad76d073d91f0ee36d5ac5f9df480cAndreas Huber return OK; 53d7bee3a9d2ad76d073d91f0ee36d5ac5f9df480cAndreas Huber} 54d7bee3a9d2ad76d073d91f0ee36d5ac5f9df480cAndreas Huber 55d7bee3a9d2ad76d073d91f0ee36d5ac5f9df480cAndreas Huber} // namespace android 56d7bee3a9d2ad76d073d91f0ee36d5ac5f9df480cAndreas Huber 57