DeviceRegistryListener
+ remoteDeviceDiscoveryStarted()+ remoteDeviceDiscoveryFailed()+ remoteDeviceAdded()+ remoteDeviceRemoved()+ localDeviceAdded()+ localDeviceRemoved()+ beforeShutdown()+ afterShutdown()
UdpServer.start()
HttpManager
+ doGetRequest()+ doGetRequest()+ doGetRequest()+ doGetOtherRequest()+ get()+ doPostRequest()+ doPostRequest()+ doGetFile()
case MSG_OPENDETAIL
Core.init()--Core.initMidware()
startSearch()
LogicThread
Core
+ init()+ unInit()+ setMidGlobalCallback()+ getWhleTvDiscoverListener()+ getWhaleTvDiscoverListener()+ searchDevices()+ getWhaleyTvManager()+ getHumidity()+ getAppList()+ getMidGloabalCallback()+ uploadDeviceInfo()+ statisticsId()+ searchMovie()
case MSG_SCREEN_SHOT
searchDevices()
HttpServer
+ serve()+ stop()+ encodeUri()+ serveFile()- myServerSocket
MyThread
UdpServer
+ getDatagramSocket()+ stop()+ start()
case MSG_PACKAGECHANGE
case MSG_TV_SENT_PICS
case MSG_COLLECTMOVIE
TvRemoteApplication
WhaleyTv
AppInstallManager.onInstallStatusChanged()
org.fourthline.cling.model.meta.RemoteDevice
UdpRunnable.run()--switch(action)
RendererCommand
+ finalize()+ start()+ stop()+ getAVTransportService()+ commandPlay()+ commandStop()+ commandPause()+ setURI()+ updateMediaInfo()+ updatePositionInfo()+ updateTransportInfo()
case MSG_SLIDE_PLAY/ MSG_SLIDE_PLAY1
org.fourthline.cling.support.model.container.Container
case PLAY_MSG
RendererStatus
+ getState()+ setState()+ setPositionInfo()+ getMediaInfo()+ getTransportInfo()+ setTransportInfo()+ getRemainingDuration()+ getPosition()+ getDurationSeconds()+ resetTrackInfo()+ getElapsedPercent()
UpnpCore
+ deviceConnect()+ deviceDisconnect()+ init()+ unInit()+ startSearch()+ doPlay()+ seekPlay()+ stopPlay()+ stopPause()+ cmdPlay()+ resumePlay()+ getPosition()+ getTvUpnpStatus()- serviceConnection- myAvListenres- videoContainer- audioContainer- imageContainer
case POSITION_MSG
ConnectingManager
+ onFinish() (should be onSearchFinished)+ startSearch()+ isFinished()+ getFlag()+ getKnownList()+ addKnownTv()+ clearKnownTv()+ deleteKnownTv()+ addKnownListChangedListener()+ removeKnownListChangeListener()+ notifyKnownListChanged()+ addEventListener()+ removeEventListener()+ notifySearchFinished()+ notifySearchStarted()+ notifyConnectStatusChanged()+ getConnectedTv()+ setConnectedTv()+ disconnect()+ onNetworkStateChanged()+ getConnectStatus()
AndroidUpnpService
case MSG_APP_INSTALL
WhaleyApi
+ getNetLocation()+ getHumidity()+ postUploadImage()+ installLocalApp()+ doGetRequest()+ getDeviceName()
case MSG_SWITCH_PLAY
java.net.DatagramSocket
Core.getMidGlobalCallback()
org.fourthline.cling.controlPoint.ControlPoint
onAppInstallEvent.onInstallStatusChanged()
case REMOTE_STATUS_MSG
Attention!ConnectingManager does not belong to midware
WhaleyTvManager
+ connect()+ disconnect()+getHttpServer()+ getDeviceName()+ sentKeyEvent()+ getTvPlayingStatus()+ setVolume()+ getVolume()+ sentScreenShotCmd()+ installLocalApp()+ installAppFromNet()+ setWallpapers()+ startScreenSaver()+ delScreenSaver()+ whaleyPlay()+ whaleySeek()+ whaleyStop()+ whaleyPause()+ whaleyResumePlay()+ getTVUpnpStatus()+ getProgInfo()+ getBaiduTiebaInfo()+ getDoubanSComment()+ getDoubanLComment()+ getBaiduTiebaH5()+ getDoubanH5()+ sendUdpServerInfo()+ getScreenShotName()+ getWappaperName()+ openTvApp()+ getTvAppList()+ collectVideo()
MyAvListenres
java.net.ServerSocket
java.net.DatagramPacket
AsyncHttpClient
GlobalCallbackManager.onMidCallback()--CallbackHandler.sendMessage()