1/* MiniUPnP project
2 * http://miniupnp.free.fr/ or http://miniupnp.tuxfamily.org/
3 * (c) 2006-2007 Thomas Bernard
4 * This software is subject to the conditions detailed
5 * in the LICENCE file provided within the distribution */
6#ifndef __MINIDLNATYPES_H__
7#define __MINIDLNATYPES_H__
8
9#include "config.h"
10#include <netinet/in.h>
11
12/* structure for storing lan addresses
13 * with ascii representation and mask */
14struct lan_addr_s {
15	char str[16];	/* example: 192.168.0.1 */
16	struct in_addr addr, mask;	/* ip/mask */
17};
18
19struct runtime_vars_s {
20	int port;	/* HTTP Port */
21	int notify_interval;	/* seconds between SSDP announces */
22};
23
24enum media_types {
25	ALL_MEDIA,
26	AUDIO_ONLY,
27	VIDEO_ONLY,
28	IMAGES_ONLY,
29	NO_MEDIA
30};
31
32enum file_types {
33	TYPE_UNKNOWN,
34	TYPE_DIR,
35	TYPE_FILE
36};
37
38enum client_types {
39	EXbox = 1,
40	EPS3,
41	ESamsungTV,
42	EDenonReceiver,
43	EFreeBox,
44	EPopcornHour,
45	EStandardDLNA150 = 100
46};
47
48struct media_dir_s {
49	char * path;            /* Base path */
50	enum media_types type;  /* type of files to scan */
51	struct media_dir_s * next;
52};
53
54struct album_art_name_s {
55	char * name;            /* Base path */
56	struct album_art_name_s * next;
57};
58
59struct client_cache_s {
60	struct in_addr addr;
61	unsigned char mac[6];
62	enum client_types type;
63	u_int32_t flags;
64	time_t age;
65};
66
67#endif
68