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 "clients.h" 34#include <time.h> 35#include <fcntl.h> 36 37#define MAX_LAN_ADDR 4 38/* structure for storing lan addresses 39 * with ascii representation and mask */ 40struct lan_addr_s { 41 char str[16]; /* example: 192.168.0.1 */ 42 struct in_addr addr; /* ip */ 43 struct in_addr mask; /* netmask */ 44 int snotify; /* notify socket */ 45 unsigned int ifindex; /* interface index */ 46}; 47 48struct runtime_vars_s { 49 int port; /* HTTP Port */ 50 int notify_interval; /* seconds between SSDP announces */ 51 int max_connections; /* max number of simultaneous conenctions */ 52 const char *root_container; /* root ObjectID (instead of "0") */ 53 const char *ifaces[MAX_LAN_ADDR]; /* list of configured network interfaces */ 54}; 55 56struct string_s { 57 char *data; // ptr to start of memory area 58 size_t off; 59 size_t size; 60}; 61 62typedef uint8_t media_types; 63#define NO_MEDIA 0x00 64#define TYPE_AUDIO 0x01 65#define TYPE_VIDEO 0x02 66#define TYPE_IMAGES 0x04 67#define ALL_MEDIA TYPE_AUDIO|TYPE_VIDEO|TYPE_IMAGES 68 69enum file_types { 70 TYPE_UNKNOWN, 71 TYPE_DIR, 72 TYPE_FILE 73}; 74 75struct media_dir_s { 76 char *path; /* base path */ 77 media_types types; /* types of files to scan */ 78 struct media_dir_s *next; 79}; 80 81struct album_art_name_s { 82 char *name; /* base path */ 83 uint8_t wildcard; 84 struct album_art_name_s *next; 85}; 86 87#endif 88