1/* MiniUPnP project 2 * http://miniupnp.free.fr/ or http://miniupnp.tuxfamily.org/ 3 * 4 * Copyright (c) 2006-2007, Thomas Bernard 5 * All rights reserved. 6 * 7 * Redistribution and use in source and binary forms, with or without 8 * modification, are permitted provided that the following conditions are met: 9 * * Redistributions of source code must retain the above copyright 10 * notice, this list of conditions and the following disclaimer. 11 * * Redistributions in binary form must reproduce the above copyright 12 * notice, this list of conditions and the following disclaimer in the 13 * documentation and/or other materials provided with the distribution. 14 * * The name of the author may not be used to endorse or promote products 15 * derived from this software without specific prior written permission. 16 * 17 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 18 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 19 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 20 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 21 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 22 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 23 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 24 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 25 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 26 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 27 * POSSIBILITY OF SUCH DAMAGE. 28 */ 29#ifndef __MINIDLNATYPES_H__ 30#define __MINIDLNATYPES_H__ 31 32#include "config.h" 33#include <netinet/in.h> 34 35/* structure for storing lan addresses 36 * with ascii representation and mask */ 37struct lan_addr_s { 38 char str[16]; /* example: 192.168.0.1 */ 39 struct in_addr addr, mask; /* ip/mask */ 40}; 41 42struct runtime_vars_s { 43 int port; /* HTTP Port */ 44 int notify_interval; /* seconds between SSDP announces */ 45 char *root_container; /* root ObjectID (instead of "0") */ 46}; 47 48struct string_s { 49 char *data; // ptr to start of memory area 50 int off; 51 int size; 52}; 53 54enum media_types { 55 ALL_MEDIA, 56 AUDIO_ONLY, 57 VIDEO_ONLY, 58 IMAGES_ONLY, 59 NO_MEDIA 60}; 61 62enum file_types { 63 TYPE_UNKNOWN, 64 TYPE_DIR, 65 TYPE_FILE 66}; 67 68enum client_types { 69 EXbox = 1, 70 EPS3, 71 ESamsungSeriesC, 72 EDenonReceiver, 73 EFreeBox, 74 EPopcornHour, 75 EMediaRoom, 76 ESonyBDP, 77 ESonyBravia, 78 ERokuSoundBridge, 79 EToshibaTV, 80 ELGDevice, 81 ENetgearEVA2000, 82 ESamsungSeriesA, 83 ESamsungSeriesB, 84 EMarantzDMP, 85 ELifeTab, 86 EDirecTV, 87 EStandardDLNA150 = 100 88}; 89 90struct media_dir_s { 91 char * path; /* Base path */ 92 enum media_types type; /* type of files to scan */ 93 struct media_dir_s * next; 94}; 95 96struct album_art_name_s { 97 char * name; /* Base path */ 98 uint8_t wildcard; 99 struct album_art_name_s * next; 100}; 101 102struct client_cache_s { 103 struct in_addr addr; 104 unsigned char mac[6]; 105 enum client_types type; 106 uint32_t flags; 107 time_t age; 108}; 109 110#endif 111