1 /* 2 * Copyright (C) 2013 4th Line GmbH, Switzerland 3 * 4 * The contents of this file are subject to the terms of either the GNU 5 * Lesser General Public License Version 2 or later ("LGPL") or the 6 * Common Development and Distribution License Version 1 or later 7 * ("CDDL") (collectively, the "License"). You may not use this file 8 * except in compliance with the License. See LICENSE.txt for more 9 * information. 10 * 11 * This program is distributed in the hope that it will be useful, 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 14 */ 15 16 package org.fourthline.cling.model.profile; 17 18 import org.fourthline.cling.model.meta.DeviceDetails; 19 20 /** 21 * Provides custom device details metadata based on control point profile. 22 * <p> 23 * Use this instead of {@link DeviceDetails} when you create a 24 * {@link org.fourthline.cling.model.meta.LocalDevice} if dynamic metadata is 25 * required - e.g. when your control points expect different DLNA capabilities 26 * or if they are otherwise incompatible with the standard metadata of the 27 * service you provide. You can then provide custom metadata for each 28 * control point based on the detected control point information. 29 * </p> 30 * <p> 31 * Don't forget to provide a default, that is, if none of your conditions match 32 * you still have to provide a minimal {@link DeviceDetails} instance for 33 * generic control points. 34 * </p> 35 * 36 * @author Mario Franco 37 * @author Christian Bauer 38 */ 39 public interface DeviceDetailsProvider { 40 DeviceDetails provide(RemoteClientInfo info); 41 }