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 
00057 /*----------------------------------------------------------------------
00058 |   prototypes
00059 +---------------------------------------------------------------------*/
00060 #ifdef __cplusplus
00061 extern "C" {
00062 #endif /* __cplusplus */
00063 
00067 BLT_Result BLT_Decoder_Create(BLT_Decoder** decoder);
00068 
00072 BLT_Result BLT_Decoder_Destroy(BLT_Decoder* decoder);
00073 
00077 BLT_Result BLT_Decoder_RegisterBuiltins(BLT_Decoder* decoder);
00078 
00083 BLT_Result BLT_Decoder_RegisterModule(BLT_Decoder* decoder,
00084                                       BLT_Module*  module);
00085 
00091 BLT_Result BLT_Decoder_SetInput(BLT_Decoder*  decoder, 
00092                                 BLT_CString   name, 
00093                                 BLT_CString   type);
00094 
00100 BLT_Result BLT_Decoder_SetOutput(BLT_Decoder* decoder, 
00101                                  BLT_CString  name, 
00102                                  BLT_CString  type);
00103 
00111 BLT_Result BLT_Decoder_AddNodeByName(BLT_Decoder*   decoder, 
00112                                      BLT_MediaNode* where,
00113                                      BLT_CString    name);
00114 
00119 BLT_Result BLT_Decoder_GetProperties(BLT_Decoder*     decoder,
00120                                      ATX_Properties** properties);
00121 
00127 BLT_Result BLT_Decoder_GetStatus(BLT_Decoder*       decoder,
00128                                  BLT_DecoderStatus* status);
00129 
00137 BLT_Result BLT_Decoder_GetStreamProperties(BLT_Decoder*     decoder,
00138                                            ATX_Properties** properties);
00139 
00143 BLT_Result BLT_Decoder_PumpPacket(BLT_Decoder* decoder);
00144 
00152 BLT_Result BLT_Decoder_Stop(BLT_Decoder* decoder);
00153 
00165 BLT_Result BLT_Decoder_Pause(BLT_Decoder* decoder);
00166 
00171 BLT_Result BLT_Decoder_SeekToTime(BLT_Decoder* decoder, BLT_UInt32 time);
00172 
00181 BLT_Result BLT_Decoder_SeekToPosition(BLT_Decoder* decoder,
00182                                       BLT_Size     offset,
00183                                       BLT_Size     range);
00184 
00191 BLT_Result BLT_Decoder_SetEventListener(BLT_Decoder*       decoder,
00192                                         BLT_EventListener* listener);
00193                                                
00194 #ifdef __cplusplus
00195 }
00196 #endif /* __cplusplus */
00197 
00200 #endif /* _BLT_DECODER_H_ */