mediacontrol_structures.h
上传用户:kjfoods
上传日期:2020-07-06
资源大小:29949k
文件大小:4k
源码类别:

midi

开发平台:

Unix_Linux

  1. /*****************************************************************************
  2.  * mediacontrol_structures.h: global header for mediacontrol
  3.  *****************************************************************************
  4.  * Copyright (C) 2005-2008 the VideoLAN team
  5.  * $Id: 6a3748276664ddd6c649cda61bc1dd308b65bb97 $
  6.  *
  7.  * Authors: Olivier Aubert <olivier.aubert@liris.univ-lyon1.fr>
  8.  *
  9.  * This program is free software; you can redistribute it and/or modify
  10.  * it under the terms of the GNU General Public License as published by
  11.  * the Free Software Foundation; either version 2 of the License, or
  12.  * (at your option) any later version.
  13.  *
  14.  * This program is distributed in the hope that it will be useful,
  15.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  16.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  17.  * GNU General Public License for more details.
  18.  *
  19.  * You should have received a copy of the GNU General Public License
  20.  * along with this program; if not, write to the Free Software
  21.  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
  22.  *****************************************************************************/
  23. /**
  24.  * file
  25.  * This file defines libvlc mediacontrol_* data structures
  26.  */
  27. /**
  28.  * defgroup mediacontrol_structures MediaControl Structures
  29.  * Data structures used in the MediaControl API.
  30.  *
  31.  * @{
  32.  */
  33. #ifndef VLC_CONTROL_STRUCTURES_H
  34. #define VLC_CONTROL_STRUCTURES_H 1
  35. # ifdef __cplusplus
  36. extern "C" {
  37. # endif
  38. #include <stdint.h>
  39. /**
  40.  * A position may have different origins:
  41.  *  - absolute counts from the movie start
  42.  *  - relative counts from the current position
  43.  *  - modulo counts from the current position and wraps at the end of the movie
  44.  */
  45. typedef enum  {
  46.     mediacontrol_AbsolutePosition,
  47.     mediacontrol_RelativePosition,
  48.     mediacontrol_ModuloPosition
  49. } mediacontrol_PositionOrigin;
  50. /**
  51.  * Units available in mediacontrol Positions
  52.  *  - ByteCount number of bytes
  53.  *  - SampleCount number of frames
  54.  *  - MediaTime time in milliseconds
  55.  */
  56. typedef enum {
  57.     mediacontrol_ByteCount,
  58.     mediacontrol_SampleCount,
  59.     mediacontrol_MediaTime
  60. } mediacontrol_PositionKey;
  61. /**
  62.  * Possible player status
  63.  * Note the order of these enums must match exactly the order of
  64.  * libvlc_state_t and input_state_e enums.
  65.  */
  66. typedef enum {
  67.     mediacontrol_UndefinedStatus=0, mediacontrol_InitStatus,
  68.     mediacontrol_BufferingStatus, mediacontrol_PlayingStatus,
  69.     mediacontrol_PauseStatus,     mediacontrol_StopStatus,
  70.     mediacontrol_EndStatus,       mediacontrol_ErrorStatus,
  71. } mediacontrol_PlayerStatus;
  72. /**
  73.  * MediaControl Position
  74.  */
  75. typedef struct {
  76.     mediacontrol_PositionOrigin origin;
  77.     mediacontrol_PositionKey key;
  78.     int64_t value;
  79. } mediacontrol_Position;
  80. /**
  81.  * RGBPicture structure
  82.  * This generic structure holds a picture in an encoding specified by type.
  83.  */
  84. typedef struct {
  85.     int  width;
  86.     int  height;
  87.     uint32_t type;
  88.     int64_t date;
  89.     int  size;
  90.     char *data;
  91. } mediacontrol_RGBPicture;
  92. /**
  93.  * Playlist sequence
  94.  * A simple list of strings.
  95.  */
  96. typedef struct {
  97.     int size;
  98.     char **data;
  99. } mediacontrol_PlaylistSeq;
  100. typedef struct {
  101.     int code;
  102.     char *message;
  103. } mediacontrol_Exception;
  104. /**
  105.  * Exception codes
  106.  */
  107. #define mediacontrol_PositionKeyNotSupported    1
  108. #define mediacontrol_PositionOriginNotSupported 2
  109. #define mediacontrol_InvalidPosition            3
  110. #define mediacontrol_PlaylistException          4
  111. #define mediacontrol_InternalException          5
  112. /**
  113.  * Stream information
  114.  * This structure allows to quickly get various informations about the stream.
  115.  */
  116. typedef struct {
  117.     mediacontrol_PlayerStatus streamstatus;
  118.     char *url;         /* The URL of the current media stream */
  119.     int64_t position;  /* actual location in the stream (in ms) */
  120.     int64_t length;    /* total length of the stream (in ms) */
  121. } mediacontrol_StreamInformation;
  122. # ifdef __cplusplus
  123. }
  124. # endif
  125. #endif
  126. /** @} */