Code Search for Developers
 
 
  

Osc.h from Make Controller at Krugle


Show Osc.h syntax highlighted

/****************************************************************************
**
** OSC
** MakingThings 2006.
**
****************************************************************************/

#ifndef OSC_H
#define OSC_H

#define OSC_MAX_MESSAGE 2048

#include "PacketInterface.h"
#include "MessageInterface.h"

#include <stdarg.h>
#include <stdlib.h>

class OscMessage
{
	public:
	  char* address;
	  char* s;
	  int   i;
	  float f;
	  
	  OscMessage()
	  {
	  	address = 0;
	  }
	  
	  ~OscMessage()
	  {
	  	if ( address != 0 )
	  	  free( address );
	  }
};

class Osc
{	
	public:
		enum Status { OK, ERROR_SENDING_TEXT_MESSAGE, ERROR_SENDING_COMPLEX_MESSAGE, 
			            ERROR_NO_PACKET, ERROR_CREATING_BUNDLE, ERROR_PACKET_LENGTH_0 };				

		Osc( PacketInterface* packetInterface, MessageInterface* messageInterface );

		Status createMessage( char* textMessage ); 
		Status createMessage( char* address, char* format, ... );
		Status sendPacket( );
		bool isMessageWaiting();
		Status receive( OscMessage* message ); 
	  		
	private:
		char* findDataTag( char* message, int length );
		void receivePacket( char* packet, int length,  OscMessage* message );
		void receiveMessage( char* message, int length, OscMessage* message );
		int extractData( char* buffer, OscMessage* message );
	 
		char* createBundle( char* buffer, int* length, int a, int b );
		char* createMessageInternal( char* bp, int* length, char* inputString );
		char* createMessageInternal( char* bp, int* length, char* address, char* format, va_list args );
		char* writePaddedString( char* buffer, int* length, char* string );
		//char* writenPaddedString( char* buffer, int* remaining, char* string, int length );
		char* writeTimetag( char* buffer, int* length, int a, int b );
		void resetOutBuffer( );
		
		// utility
		unsigned int endianSwap( unsigned int a );
				
		PacketInterface* packetInterface;
		MessageInterface* messageInterface;
		
		char outBuffer[ OSC_MAX_MESSAGE ];
	  char* outBufferPointer;
	  int outBufferRemaining;
	  int outMessageCount;
};

#endif	




See more files for this project here

Make Controller

The Make Controller is an open microcontroller platform for Makers of all kinds, by MakingThings. This project maintains the official firmware for the board and source for the software tools used with the board.

Project homepage: http://sourceforge.net/projects/makingthings
Programming language(s): C,C#,C++
License: other

  .externalToolBuilders/
    qmake.launch
  debug/
    ctest.exe
    ctestee.bin
    moc_CTestThread.cpp
    moc_CTestWindow.cpp
    test.bin
  io_win32/
    FCPipe.cpp
    FCPipe.h
    FCPipeUSB.cpp
    FCPipeUSB.h
    FC_Error.h
    SAM-BA.dll
    SAMBADLL.cpp
    SAMBADLL.h
    timer.cpp
    timer.h
    xmodem.cpp
    xmodem.h
  release/
    ctest.exe
    moc_CTestThread.cpp
    moc_CTestWindow.cpp
  .cdtproject
  .project
  CTestThread.cpp
  CTestThread.h
  CTestWindow.cpp
  CTestWindow.h
  CTestee.cpp
  CTestee.h
  CTester.cpp
  CTester.h
  Makefile
  Makefile.Debug
  Makefile.Release
  MessageInterface.h
  Osc.cpp
  Osc.h
  PacketInterface.h
  PacketUdp.cpp
  PacketUdp.h
  Samba.cpp
  Samba.h
  SetupAPI.Lib
  SetupAPI.h
  ctest.pro
  ctest.ui
  guid829.h
  loader256_data.h
  main.cpp
  object_script.ctest.Debug
  object_script.ctest.Release
  test.bin
  ui_ctest.h