RTP Audio System  2.0.0
audioclientapppacket.h
Go to the documentation of this file.
00001 // ##########################################################################
00002 // ####                                                                  ####
00003 // ####                      RTP Audio Server Project                    ####
00004 // ####                    ============================                  ####
00005 // ####                                                                  ####
00006 // #### Audio Client App Packet                                          ####
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: audioclientapppacket.h 1286 2011-12-18 13:43:16Z dreibh $
00032 
00033 
00034 #ifndef AUDIOCLIENTAPPPACKET_H
00035 #define AUDIOCLIENTAPPPACKET_H
00036 
00037 
00038 // #include <linux/ip.h>
00039 
00040 
00041 // ###### IPv6 Traffic Class Settings #######################################
00045 const card8 AudioServerDefaultTrafficClass = 0x00;
00046    // IPTOS_THROUGHPUT|IPTOS_RELIABILITY|IPTOS_LOWDELAY|IPTOS_PREC_FLASH;
00047 
00051 const card8 AudioClientDefaultTrafficClass = 0x00;
00052    // IPTOS_RELIABILITY|IPTOS_PREC_PRIORITY;
00053 
00057 static const cardinal RTPAudioDefaultPort = 7500;
00058 
00062 static const card32 RTPAudioDataPPID = 0x2909ffff;
00063 
00067 static const card32 RTPAudioControlPPID = 0x2909fffe;
00068 
00069 
00081 struct AudioClientAppPacket
00082 {
00083    // ====== Constructor ====================================================
00084    public:
00088    AudioClientAppPacket();
00089 
00090    // ====== Byte order translation =========================================
00094    void translate();
00095 
00096 
00097    // ====== Status functions ===============================================
00101    void reset();
00102 
00103 
00104    // ====== Constants ======================================================
00108    static const card32 AudioClientFormatID = 0x75003388;
00109 
00113    enum AudioClientAppMode {
00114       ACAS_UnknownCommand = 0,
00115       ACAS_Play           = 1,
00116       ACAS_Pause          = 2
00117    };
00118 
00119 
00120    // ====== Packet data ====================================================
00121    public:
00125    card32 FormatID;
00126 
00130    card16 SequenceNumber;
00131 
00135    card16 PosChgSeqNumber;
00136 
00137 
00141    card16 Status;
00142 
00146    card16 SamplingRate;
00147 
00151    card8 Channels;
00152 
00156    card8 Bits;
00157 
00161    card16 Encoding;
00162 
00166    card32 BandwidthLimit;
00167 
00171    card64 StartPosition;
00172 
00176    card64 RestartPosition;
00177 
00181    char MediaName[128];
00182 } __attribute__((packed));
00183 
00184 
00196 struct AudioClientSDESPrivPacket
00197 {
00198    card8                PrefixLength;
00199    char                 Prefix[7];
00200    AudioClientAppPacket Status;
00201 } __attribute__((packed));
00202 
00203 
00204 #endif
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines