BltDecoder.h

Go to the documentation of this file.
00001 /*****************************************************************
00002 |
00003 |   BlueTune - Sync Layer
00004 |
00005 |   (c) 2002-2006 Gilles Boccon-Gibod
00006 |   Author: Gilles Boccon-Gibod (bok@bok.net)
00007 |
00008  ****************************************************************/
00013 #ifndef _BLT_DECODER_H_
00014 #define _BLT_DECODER_H_
00015 
00016 /*----------------------------------------------------------------------
00017 |   includes
00018 +---------------------------------------------------------------------*/
00019 #include "BltDefs.h"
00020 #include "BltTypes.h"
00021 #include "BltStream.h"
00022 #include "BltTime.h"
00023 #include "BltEventListener.h"
00024 
00029 /*----------------------------------------------------------------------
00030 |   constants
00031 +---------------------------------------------------------------------*/
00032 #define BLT_DECODER_DEFAULT_OUTPUT_NAME "!default"
00033 
00034 /*----------------------------------------------------------------------
00035 |   types
00036 +---------------------------------------------------------------------*/
00046 typedef struct BLT_Decoder BLT_Decoder;
00047 
00051 typedef struct {
00052     BLT_StreamInfo     stream_info; 
00053     BLT_StreamPosition position;    
00054     BLT_TimeStamp      time_stamp;  
00055 } BLT_DecoderStatus;
00056 
00061 typedef enum {
00062     BLT_PROPERTY_SCOPE_CORE,
00063     BLT_PROPERTY_SCOPE_STREAM,
00064     BLT_PROPERTY_SCOPE_MODULE
00065 } BLT_PropertyScope;
00066 
00067 /*----------------------------------------------------------------------
00068 |   prototypes
00069 +---------------------------------------------------------------------*/
00070 #ifdef __cplusplus
00071 extern "C" {
00072 #endif /* __cplusplus */
00073 
00077 BLT_Result BLT_Decoder_Create(BLT_Decoder** decoder);
00078 
00082 BLT_Result BLT_Decoder_Destroy(BLT_Decoder* decoder);
00083 
00087 BLT_Result BLT_Decoder_RegisterBuiltins(BLT_Decoder* decoder);
00088 
00093 BLT_Result BLT_Decoder_RegisterModule(BLT_Decoder* decoder,
00094                                       BLT_Module*  module);
00095 
00101 BLT_Result BLT_Decoder_SetInput(BLT_Decoder*  decoder, 
00102                                 BLT_CString   name, 
00103                                 BLT_CString   type);
00104 
00110 BLT_Result BLT_Decoder_SetOutput(BLT_Decoder* decoder, 
00111                                  BLT_CString  name, 
00112                                  BLT_CString  type);
00113 
00121 BLT_Result BLT_Decoder_AddNodeByName(BLT_Decoder*   decoder, 
00122                                      BLT_MediaNode* where,
00123                                      BLT_CString    name);
00124 
00129 BLT_Result BLT_Decoder_GetProperties(BLT_Decoder*     decoder,
00130                                      ATX_Properties** properties);
00131 
00137 BLT_Result BLT_Decoder_GetStatus(BLT_Decoder*       decoder,
00138                                  BLT_DecoderStatus* status);
00139 
00147 BLT_Result BLT_Decoder_GetStreamProperties(BLT_Decoder*     decoder,
00148                                            ATX_Properties** properties);
00149 
00153 BLT_Result BLT_Decoder_PumpPacket(BLT_Decoder* decoder);
00154 
00162 BLT_Result BLT_Decoder_Stop(BLT_Decoder* decoder);
00163 
00175 BLT_Result BLT_Decoder_Pause(BLT_Decoder* decoder);
00176 
00181 BLT_Result BLT_Decoder_SeekToTime(BLT_Decoder* decoder, BLT_UInt32 time);
00182 
00191 BLT_Result BLT_Decoder_SeekToPosition(BLT_Decoder* decoder,
00192                                       BLT_Size     offset,
00193                                       BLT_Size     range);
00194 
00201 BLT_Result BLT_Decoder_SetEventListener(BLT_Decoder*       decoder,
00202                                         BLT_EventListener* listener);
00203                                                
00204 #ifdef __cplusplus
00205 }
00206 #endif /* __cplusplus */
00207 
00210 #endif /* _BLT_DECODER_H_ */