Marsyas  0.6.0-alpha
/usr/src/RPM/BUILD/marsyas-0.6.0/src/marsyas/realtime/udp_transmitter.cpp
Go to the documentation of this file.
00001 /*
00002 ** Copyright (C) 2014 George Tzanetakis <gtzan@cs.uvic.ca>
00003 **
00004 ** This program is free software; you can redistribute it and/or modify
00005 ** it under the terms of the GNU General Public License as published by
00006 ** the Free Software Foundation; either version 2 of the License, or
00007 ** (at your option) any later version.
00008 **
00009 ** This program is distributed in the hope that it will be useful,
00010 ** but WITHOUT ANY WARRANTY; without even the implied warranty of
00011 ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00012 ** GNU General Public License for more details.
00013 **
00014 ** You should have received a copy of the GNU General Public License
00015 ** along with this program; if not, write to the Free Software
00016 ** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
00017 */
00018 
00019 #include "udp_transmitter.h"
00020 
00021 #include <oscpack/ip/UdpSocket.h>
00022 #include <oscpack/ip/IpEndpointName.h>
00023 
00024 namespace Marsyas {
00025 namespace RealTime {
00026 
00027 struct UdpTransmitter::private_data
00028 {
00029   IpEndpointName endpoint;
00030   UdpSocket socket;
00031 };
00032 
00033 UdpTransmitter::UdpTransmitter( const char *address, int ip )
00034 {
00035   p = new private_data;
00036   p->endpoint = IpEndpointName(address, ip);
00037 }
00038 
00039 bool UdpTransmitter::hasDestination( const char *address, int ip )
00040 {
00041   return p->endpoint == IpEndpointName(address, ip);
00042 }
00043 
00044 void UdpTransmitter::process( const char * data, int size )
00045 {
00046   p->socket.SendTo( p->endpoint, data, size );
00047 }
00048 
00049 }
00050 }