xbmc
audioencoder.h
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_AUDIO_ENCODER_H
10 #define C_API_ADDONINSTANCE_AUDIO_ENCODER_H
11 
12 #include "../addon_base.h"
13 
14 #ifdef __cplusplus
15 extern "C"
16 {
17 #endif /* __cplusplus */
18 
19  typedef KODI_ADDON_INSTANCE_HDL KODI_ADDON_AUDIOENCODER_HDL;
20 
22  {
23  const char* title;
24  const char* artist;
25  const char* album;
26  const char* album_artist;
27  const char* media_type;
28  const char* genre;
29  int duration;
30  int track;
31  int disc;
32  const char* disc_subtitle;
33  int disc_total;
34  const char* release_date;
35  const char* lyrics;
36  int samplerate;
37  int channels;
38  int bits_per_sample;
39  int track_length;
40  const char* comment;
41  };
42 
43  typedef bool(ATTR_APIENTRYP PFN_KODI_ADDON_AUDIOENCODER_START_V1)(
44  KODI_ADDON_AUDIOENCODER_HDL hdl, const struct KODI_ADDON_AUDIOENCODER_INFO_TAG* tag);
45  typedef ssize_t(ATTR_APIENTRYP PFN_KODI_ADDON_AUDIOENCODER_ENCODE_V1)(
46  KODI_ADDON_AUDIOENCODER_HDL hdl, const uint8_t* pbt_stream, size_t num_bytes_read);
47  typedef bool(ATTR_APIENTRYP PFN_KODI_ADDON_AUDIOENCODER_FINISH_V1)(
48  KODI_ADDON_AUDIOENCODER_HDL hdl);
49 
51  {
52  KODI_HANDLE kodiInstance;
53  ssize_t (*write)(KODI_HANDLE kodiInstance, const uint8_t* data, size_t len);
54  ssize_t (*seek)(KODI_HANDLE kodiInstance, ssize_t pos, int whence);
56 
58  {
59  PFN_KODI_ADDON_AUDIOENCODER_START_V1 start;
60  PFN_KODI_ADDON_AUDIOENCODER_ENCODE_V1 encode;
61  PFN_KODI_ADDON_AUDIOENCODER_FINISH_V1 finish;
63 
65  {
66  struct AddonToKodiFuncTable_AudioEncoder* toKodi;
67  struct KodiToAddonFuncTable_AudioEncoder* toAddon;
69 
70 #ifdef __cplusplus
71 } /* extern "C" */
72 #endif /* __cplusplus */
73 
74 #endif /* !C_API_ADDONINSTANCE_AUDIO_ENCODER_H */
Definition: audioencoder.h:57
Definition: audioencoder.h:50
Definition: audioencoder.h:64
Definition: audioencoder.h:21
Definition: LibInputPointer.h:13
Definition: visualization.h:21