Wrap up version 1.3.3.
[minidlna.git] / minidlnatypes.h
bloba92cc7d09bd05754215796d44f6126ad93413d85
1 /* MiniUPnP project
2 * http://miniupnp.free.fr/ or http://miniupnp.tuxfamily.org/
4 * Copyright (c) 2006-2007, Thomas Bernard
5 * All rights reserved.
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.
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.
29 #ifndef __MINIDLNATYPES_H__
30 #define __MINIDLNATYPES_H__
32 #include "config.h"
33 #include "clients.h"
34 #include <time.h>
35 #include <fcntl.h>
37 #define MAX_LAN_ADDR 8
38 /* structure for storing lan addresses
39 * with ascii representation and mask */
40 struct 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 */
48 struct 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 */
56 struct string_s {
57 char *data; // ptr to start of memory area
58 size_t off;
59 size_t size;
62 typedef uint8_t media_types;
63 #define NO_MEDIA 0x00
64 #define TYPE_AUDIO 0x01
65 #define TYPE_VIDEO 0x02
66 #define TYPE_IMAGE 0x04
67 #define TYPE_PLAYLIST 0x09
68 #define TYPE_CAPTION 0x10
69 #define TYPE_NFO 0x20
70 #define ALL_MEDIA TYPE_AUDIO|TYPE_VIDEO|TYPE_IMAGE
72 enum file_types {
73 TYPE_UNKNOWN,
74 TYPE_DIR,
75 TYPE_FILE
78 struct media_dir_s {
79 char *path; /* base path */
80 media_types types; /* types of files to scan */
81 struct media_dir_s *next;
84 struct album_art_name_s {
85 char *name; /* base path */
86 uint8_t wildcard;
87 struct album_art_name_s *next;
90 #endif