"Fossies" - the Fresh Open Source Software Archive

Member "minidlna-1.3.0/clients.h" (24 Nov 2020, 2879 Bytes) of package /linux/privat/minidlna-1.3.0.tar.gz:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) C and C++ source code syntax highlighting (style: standard) with prefixed line numbers and code folding option. Alternatively you can here view or download the uninterpreted source code file. For more information about "clients.h" see the Fossies "Dox" file reference documentation and the latest Fossies "Diffs" side-by-side code changes report: 1.2.1_vs_1.3.0.

    1 /* MiniDLNA media server
    2  * Copyright (C) 2013-2017  NETGEAR
    3  *
    4  * This file is part of MiniDLNA.
    5  *
    6  * MiniDLNA is free software; you can redistribute it and/or modify
    7  * it under the terms of the GNU General Public License version 2 as
    8  * published by the Free Software Foundation.
    9  *
   10  * MiniDLNA is distributed in the hope that it will be useful,
   11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
   12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   13  * GNU General Public License for more details.
   14  *
   15  * You should have received a copy of the GNU General Public License
   16  * along with MiniDLNA. If not, see <http://www.gnu.org/licenses/>.
   17  */
   18 #ifndef __CLIENTS_H__
   19 #define __CLIENTS_H__
   20 #include <stdint.h>
   21 #include <sys/time.h>
   22 #include <netinet/in.h>
   23 
   24 #define CLIENT_CACHE_SLOTS 25
   25 
   26 /* Client capability/quirk flags */
   27 #define FLAG_DLNA               0x00000001
   28 #define FLAG_MIME_AVI_DIVX      0x00000002
   29 #define FLAG_MIME_AVI_AVI       0x00000004
   30 #define FLAG_MIME_FLAC_FLAC     0x00000008
   31 #define FLAG_MIME_WAV_WAV       0x00000010
   32 #define FLAG_RESIZE_THUMBS      0x00000020
   33 #define FLAG_NO_RESIZE          0x00000040
   34 #define FLAG_MS_PFS             0x00000080 /* Microsoft PlaysForSure client */
   35 #define FLAG_SAMSUNG            0x00000100
   36 #define FLAG_SAMSUNG_DCM10      0x00000200
   37 #define FLAG_AUDIO_ONLY         0x00000400
   38 #define FLAG_FORCE_SORT         0x00000800
   39 #define FLAG_CAPTION_RES        0x00001000
   40 #define FLAG_SKIP_DLNA_PN       0x00002000 /* during browsing */
   41 #define FLAG_CONVERT_MS         0x00004000 /* convert ms to s */
   42 /* Response-related flags */
   43 #define FLAG_HAS_CAPTIONS       0x10000000
   44 #define RESPONSE_TRUNCATED      0x80000000
   45 #define RESPONSE_FLAGS          0xF0000000
   46 
   47 enum match_types {
   48     EMatchNone,
   49     EUserAgent,
   50     EXAVClientInfo,
   51     EFriendlyName,
   52     EModelName,
   53     EFriendlyNameSSDP
   54 };
   55 
   56 enum client_types {
   57     EXbox = 1,
   58     EPS3,
   59     EDenonReceiver,
   60     EDirecTV,
   61     EFreeBox,
   62     ELGDevice,
   63     ELGNetCastDevice,
   64     ELifeTab,
   65     EMarantzDMP,
   66     EMediaRoom,
   67     ENetgearEVA2000,
   68     EPanasonic,
   69     EPopcornHour,
   70     ERokuSoundBridge,
   71     ESamsungSeriesA,
   72     ESamsungSeriesB,
   73     ESamsungSeriesCDEBDP,
   74     ESamsungSeriesQ,
   75     ESamsungSeriesCDE,
   76     ESamsungBDJ5500,
   77     ESonyBDP,
   78     ESonyBravia,
   79     ESonyInternetTV,
   80     EToshibaTV,
   81     EHyundaiTV,
   82     EAsusOPlay,
   83     EBubbleUPnP,
   84     ENetFrontLivingConnect,
   85     EKodi,
   86     EMovian,
   87     EStandardDLNA150,
   88     EStandardUPnP
   89 };
   90 
   91 struct client_type_s {
   92     enum client_types type;
   93     uint32_t flags;
   94     const char *name;
   95     const char *match;
   96     enum match_types match_type;
   97 };
   98 
   99 struct client_cache_s {
  100     struct in_addr addr;
  101     unsigned char mac[6];
  102     struct client_type_s *type;
  103     time_t age;
  104     int connections;
  105 };
  106 
  107 extern struct client_type_s client_types[];
  108 extern struct client_cache_s clients[CLIENT_CACHE_SLOTS];
  109 
  110 struct client_cache_s *SearchClientCache(struct in_addr addr, int quiet);
  111 struct client_cache_s *AddClientCache(struct in_addr addr, int type);
  112 
  113 #endif