Android Open Source - DroidUPnP Upnp Service Controller






From Project

Back to project page DroidUPnP.

License

The source code is released under:

GNU General Public License

If you think the Android project DroidUPnP listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

/**
 * Copyright (C) 2013 Aurlien Chabot <aurelien@chabot.fr>
 * //from  ww  w  . j  av a 2s.co  m
 * This file is part of DroidUPNP.
 * 
 * DroidUPNP is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * DroidUPNP is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with DroidUPNP.  If not, see <http://www.gnu.org/licenses/>.
 */

package org.droidupnp.model.cling;

import java.util.Observer;

import org.droidupnp.controller.upnp.IUpnpServiceController;
import org.droidupnp.model.CObservable;
import org.droidupnp.model.upnp.ContentDirectoryDiscovery;
import org.droidupnp.model.upnp.IUpnpDevice;
import org.droidupnp.model.upnp.RendererDiscovery;

import android.app.Activity;
import android.util.Log;

public abstract class UpnpServiceController implements IUpnpServiceController {

  private static final String TAG = "UpnpServiceController";

  protected IUpnpDevice renderer;
  protected IUpnpDevice contentDirectory;

  protected CObservable rendererObservable;
  protected CObservable contentDirectoryObservable;

  private final ContentDirectoryDiscovery contentDirectoryDiscovery;
  private final RendererDiscovery rendererDiscovery;

  @Override
  public ContentDirectoryDiscovery getContentDirectoryDiscovery()
  {
    return contentDirectoryDiscovery;
  }

  @Override
  public RendererDiscovery getRendererDiscovery()
  {
    return rendererDiscovery;
  }

  protected UpnpServiceController()
  {
    rendererObservable = new CObservable();
    contentDirectoryObservable = new CObservable();

    contentDirectoryDiscovery = new ContentDirectoryDiscovery(getServiceListener());
    rendererDiscovery = new RendererDiscovery(getServiceListener());
  }

  @Override
  public void setSelectedRenderer(IUpnpDevice renderer)
  {
    setSelectedRenderer(renderer, false);
  }

  @Override
  public void setSelectedRenderer(IUpnpDevice renderer, boolean force)
  {
    // Skip if no change and no force
    if (!force && renderer != null && this.renderer != null && this.renderer.equals(renderer))
      return;

    this.renderer = renderer;
    rendererObservable.notifyAllObservers();
  }

  @Override
  public void setSelectedContentDirectory(IUpnpDevice contentDirectory)
  {
    setSelectedContentDirectory(contentDirectory, false);
  }

  @Override
  public void setSelectedContentDirectory(IUpnpDevice contentDirectory, boolean force)
  {
    // Skip if no change and no force
    if (!force && contentDirectory != null && this.contentDirectory != null
        && this.contentDirectory.equals(contentDirectory))
      return;

    this.contentDirectory = contentDirectory;
    contentDirectoryObservable.notifyAllObservers();
  }

  @Override
  public IUpnpDevice getSelectedRenderer()
  {
    return renderer;
  }

  @Override
  public IUpnpDevice getSelectedContentDirectory()
  {
    return contentDirectory;
  }

  @Override
  public void addSelectedRendererObserver(Observer o)
  {
    Log.i(TAG, "New SelectedRendererObserver");
    rendererObservable.addObserver(o);
  }

  @Override
  public void delSelectedRendererObserver(Observer o)
  {
    rendererObservable.deleteObserver(o);
  }

  @Override
  public void addSelectedContentDirectoryObserver(Observer o)
  {
    contentDirectoryObservable.addObserver(o);
  }

  @Override
  public void delSelectedContentDirectoryObserver(Observer o)
  {
    contentDirectoryObservable.deleteObserver(o);
  }

  // Pause the service
  @Override
  public void pause()
  {
    rendererDiscovery.pause(getServiceListener());
    contentDirectoryDiscovery.pause(getServiceListener());
  }

  // Resume the service
  @Override
  public void resume(Activity activity)
  {
    rendererDiscovery.resume(getServiceListener());
    contentDirectoryDiscovery.resume(getServiceListener());
  }

}




Java Source Code List

fi.iki.elonen.NanoHTTPD.java
fi.iki.elonen.ServerRunner.java
fi.iki.elonen.SimpleWebServer.java
org.droidupnp.DrawerFragment.java
org.droidupnp.Main.java
org.droidupnp.controller.cling.ContentDirectoryCommand.java
org.droidupnp.controller.cling.Factory.java
org.droidupnp.controller.cling.RendererCommand.java
org.droidupnp.controller.cling.ServiceController.java
org.droidupnp.controller.cling.ServiceListener.java
org.droidupnp.controller.upnp.IUpnpServiceController.java
org.droidupnp.controller.upnp.UpnpDebugListener.java
org.droidupnp.model.CObservable.java
org.droidupnp.model.cling.CDevice.java
org.droidupnp.model.cling.CRegistryListener.java
org.droidupnp.model.cling.RendererState.java
org.droidupnp.model.cling.TrackMetadata.java
org.droidupnp.model.cling.UpnpRegistry.java
org.droidupnp.model.cling.UpnpServiceController.java
org.droidupnp.model.cling.UpnpService.java
org.droidupnp.model.cling.didl.ClingAudioItem.java
org.droidupnp.model.cling.didl.ClingDIDLContainer.java
org.droidupnp.model.cling.didl.ClingDIDLItem.java
org.droidupnp.model.cling.didl.ClingDIDLObject.java
org.droidupnp.model.cling.didl.ClingDIDLParentContainer.java
org.droidupnp.model.cling.didl.ClingImageItem.java
org.droidupnp.model.cling.didl.ClingVideoItem.java
org.droidupnp.model.cling.localContent.AlbumContainer.java
org.droidupnp.model.cling.localContent.ArtistContainer.java
org.droidupnp.model.cling.localContent.AudioContainer.java
org.droidupnp.model.cling.localContent.CustomContainer.java
org.droidupnp.model.cling.localContent.DynamicContainer.java
org.droidupnp.model.cling.localContent.ImageContainer.java
org.droidupnp.model.cling.localContent.VideoContainer.java
org.droidupnp.model.mediaserver.ContentDirectoryService.java
org.droidupnp.model.mediaserver.MediaServer.java
org.droidupnp.model.upnp.ARendererState.java
org.droidupnp.model.upnp.CallableContentDirectoryFilter.java
org.droidupnp.model.upnp.CallableRendererFilter.java
org.droidupnp.model.upnp.ContentDirectoryDiscovery.java
org.droidupnp.model.upnp.DeviceDiscovery.java
org.droidupnp.model.upnp.DeviceListener.java
org.droidupnp.model.upnp.ICallableFilter.java
org.droidupnp.model.upnp.IContentDirectoryCommand.java
org.droidupnp.model.upnp.IDeviceDiscoveryObserver.java
org.droidupnp.model.upnp.IFactory.java
org.droidupnp.model.upnp.IRegistryListener.java
org.droidupnp.model.upnp.IRendererCommand.java
org.droidupnp.model.upnp.IRendererState.java
org.droidupnp.model.upnp.IServiceListener.java
org.droidupnp.model.upnp.IUpnpDevice.java
org.droidupnp.model.upnp.IUpnpRegistry.java
org.droidupnp.model.upnp.PeeringConnectionManager.java
org.droidupnp.model.upnp.RendererDiscovery.java
org.droidupnp.model.upnp.didl.DIDLDevice.java
org.droidupnp.model.upnp.didl.IDIDLContainer.java
org.droidupnp.model.upnp.didl.IDIDLItem.java
org.droidupnp.model.upnp.didl.IDIDLObject.java
org.droidupnp.model.upnp.didl.IDIDLParentContainer.java
org.droidupnp.view.ContentDirectoryDeviceFragment.java
org.droidupnp.view.ContentDirectoryDialog.java
org.droidupnp.view.ContentDirectoryEnabler.java
org.droidupnp.view.ContentDirectoryFragment.java
org.droidupnp.view.Content.java
org.droidupnp.view.DIDLObjectDisplay.java
org.droidupnp.view.DeviceDisplay.java
org.droidupnp.view.DeviceFragment.java
org.droidupnp.view.DeviceInfoDialog.java
org.droidupnp.view.PlaylistFragment.java
org.droidupnp.view.RendererDeviceFragment.java
org.droidupnp.view.RendererDialog.java
org.droidupnp.view.RendererFragment.java
org.droidupnp.view.ServiceDiscoveryFragment.java
org.droidupnp.view.SettingsActivity.java
org.droidupnp.view.UpnpDeviceListFragment.java