1 /*
2  *  Copyright (C) 2005-2018 Team Kodi
3  *  This file is part of Kodi - https://kodi.tv
4  *
5  *  SPDX-License-Identifier: GPL-2.0-or-later
6  *  See LICENSES/README.md for more information.
7  */
8 
9 #ifndef C_API_ADDONINSTANCE_PVR_CHANNELS_H
10 #define C_API_ADDONINSTANCE_PVR_CHANNELS_H
11 
12 #include "pvr_defines.h"
13 
14 #include <stdbool.h>
15 
16 //¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
17 // "C" Definitions group 2 - PVR channel
18 #ifdef __cplusplus
19 extern "C"
20 {
21 #endif /* __cplusplus */
22 
23   //============================================================================
24   /// @ingroup cpp_kodi_addon_pvr_Defs_Channel
25   /// @brief Denotes that no channel uid is available.
26   ///
27   /// Special @ref kodi::addon::PVRTimer::SetClientChannelUid() and
28   /// @ref kodi::addon::PVRRecording::SetChannelUid() value to indicate that no
29   /// channel uid is available.
30   #define PVR_CHANNEL_INVALID_UID -1
31   //----------------------------------------------------------------------------
32 
33   /*!
34    * @brief "C" PVR add-on channel.
35    *
36    * Structure used to interface in "C" between Kodi and Addon.
37    *
38    * See @ref kodi::addon::PVRChannel for description of values.
39    */
40   typedef struct PVR_CHANNEL
41   {
42     unsigned int iUniqueId;
43     bool bIsRadio;
44     unsigned int iChannelNumber;
45     unsigned int iSubChannelNumber;
46     char strChannelName[PVR_ADDON_NAME_STRING_LENGTH];
47     char strMimeType[PVR_ADDON_INPUT_FORMAT_STRING_LENGTH];
48     unsigned int iEncryptionSystem;
49     char strIconPath[PVR_ADDON_URL_STRING_LENGTH];
50     bool bIsHidden;
51     bool bHasArchive;
52     int iOrder;
53   } PVR_CHANNEL;
54 
55   /*!
56    * @brief "C" PVR add-on signal status information.
57    *
58    * Structure used to interface in "C" between Kodi and Addon.
59    *
60    * See @ref kodi::addon::PVRSignalStatus for description of values.
61    */
62   typedef struct PVR_SIGNAL_STATUS
63   {
64     char strAdapterName[PVR_ADDON_NAME_STRING_LENGTH];
65     char strAdapterStatus[PVR_ADDON_NAME_STRING_LENGTH];
66     char strServiceName[PVR_ADDON_NAME_STRING_LENGTH];
67     char strProviderName[PVR_ADDON_NAME_STRING_LENGTH];
68     char strMuxName[PVR_ADDON_NAME_STRING_LENGTH];
69     int iSNR;
70     int iSignal;
71     long iBER;
72     long iUNC;
73   } PVR_SIGNAL_STATUS;
74 
75   //============================================================================
76   /// @ingroup cpp_kodi_addon_pvr_Defs_Channel_PVRDescrambleInfo
77   /// @brief Special @ref cpp_kodi_addon_pvr_Defs_Channel_PVRDescrambleInfo
78   /// value to indicate that a struct member's value is not available
79   ///
80   #define PVR_DESCRAMBLE_INFO_NOT_AVAILABLE -1
81   //----------------------------------------------------------------------------
82 
83   /*!
84    * @brief "C" PVR add-on descramble information.
85    *
86    * Structure used to interface in "C" between Kodi and Addon.
87    *
88    * See @ref kodi::addon::PVRDescrambleInfo for description of values.
89    */
90   typedef struct PVR_DESCRAMBLE_INFO
91   {
92     int iPid;
93     int iCaid;
94     int iProvid;
95     int iEcmTime;
96     int iHops;
97     char strCardSystem[PVR_ADDON_DESCRAMBLE_INFO_STRING_LENGTH];
98     char strReader[PVR_ADDON_DESCRAMBLE_INFO_STRING_LENGTH];
99     char strFrom[PVR_ADDON_DESCRAMBLE_INFO_STRING_LENGTH];
100     char strProtocol[PVR_ADDON_DESCRAMBLE_INFO_STRING_LENGTH];
101   } PVR_DESCRAMBLE_INFO;
102 
103 #ifdef __cplusplus
104 }
105 #endif /* __cplusplus */
106 
107 #endif /* !C_API_ADDONINSTANCE_PVR_CHANNELS_H */
108