RTP Audio System  2.0.0
mediainfo.h
Go to the documentation of this file.
00001 // ##########################################################################
00002 // ####                                                                  ####
00003 // ####                      RTP Audio Server Project                    ####
00004 // ####                    ============================                  ####
00005 // ####                                                                  ####
00006 // #### Media Info                                                       ####
00007 // ####                                                                  ####
00008 // ####           Copyright (C) 1999-2012 by Thomas Dreibholz            ####
00009 // ####                                                                  ####
00010 // #### Contact:                                                         ####
00011 // ####    EMail: dreibh@iem.uni-due.de                                  ####
00012 // ####    WWW:   https://www.nntb.no/~dreibh/rtpaudio                ####
00013 // ####                                                                  ####
00014 // #### ---------------------------------------------------------------- ####
00015 // ####                                                                  ####
00016 // #### This program is free software: you can redistribute it and/or    ####
00017 // #### modify it under the terms of the GNU General Public License as   ####
00018 // #### published by the Free Software Foundation, either version 3 of   ####
00019 // #### the License, or (at your option) any later version.              ####
00020 // ####                                                                  ####
00021 // #### This program is distributed in the hope that it will be useful,  ####
00022 // #### but WITHOUT ANY WARRANTY; without even the implied warranty of   ####
00023 // #### MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the    ####
00024 // #### GNU General Public License for more details.                     ####
00025 // ####                                                                  ####
00026 // #### You should have received a copy of the GNU General Public        ####
00027 // #### License along with this program.  If not, see                    ####
00028 // #### <http://www.gnu.org/licenses/>.                                  ####
00029 // ####                                                                  ####
00030 // ##########################################################################
00031 // $Id: mediainfo.h 1286 2011-12-18 13:43:16Z dreibh $
00032 
00033 
00034 #ifndef MEDIAINFO_H
00035 #define MEDIAINFO_H
00036 
00037 
00038 #include "tools.h"
00039 
00040 
00044 enum MediaError
00045 {
00046    ME_NoError            = 0,
00047    ME_NoMedia            = 1,
00048    ME_EOF                = 2,
00049 
00050    ME_UnrecoverableError = 20,
00051    ME_BadMedia           = ME_UnrecoverableError + 0,
00052    ME_ReadError          = ME_UnrecoverableError + 1,
00053    ME_OutOfMemory        = ME_UnrecoverableError + 2,
00054 };
00055 
00056 
00060 const card64 PositionStepsPerSecond = (card64)1000000000;
00061 
00062 
00063 
00071 struct MediaInfo
00072 {
00073    // ====== Constructor ====================================================
00077    public:
00078    MediaInfo();
00079 
00080 
00081    // ====== Reset ==========================================================
00085    void reset();
00086 
00087 
00091    void translate();
00092 
00093 
00094    // ====== MediaInfo data =================================================
00098    card64 StartTimeStamp;
00099 
00103    card64 EndTimeStamp;
00104 
00105 
00109    static const cardinal MaxTitleLength   = 47;
00110 
00114    static const cardinal MaxArtistLength  = 47;
00115 
00119    static const cardinal MaxCommentLength = 47;
00120 
00121 
00125    char Title[MaxTitleLength + 1];
00126 
00130    char Artist[MaxArtistLength + 1];
00131 
00135    char Comment[MaxCommentLength + 1];
00136 } __attribute((packed));
00137 
00138 
00142 std::ostream& operator<<(std::ostream& os, const MediaInfo& mi);
00143 
00144 
00145 #endif
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines