ext_data


An ext_data contains the data for extended MIDI messages, i.e. system exclusive messages and meta messages. It is like a tagged union but the data members are all present rather than overlapping.

class ext_data
{
public:
   uchar st;
   baws sys_ex;
   meta meta_event;

   ext_data( const ext_data& e );
   ext_data(              const uchar *r, long len );
   ext_data( int meta_ty, const uchar *r, long len );

   long size() const;

   int sprint( char *s ) const;
   UtilStringPtr unparse() const;

   ext_data& operator=(const ext_data& e);
};
uchar st
Indicates the type of the extended data. Below is a list of what values it may take and what corresponding members of ext_data contain the data for that type of meta message.
smsgt::sys_ex
baws sys_ex contains the System Exclusive data.
smsgt::file_meta
meta meta_event contains the meta message.
ext_data( const uchar *r, long len )
Creates an ext_data System Exclusive from the the raw sequence of len bytes pointed to by r.
ext_data( int meta_ty, const uchar *r, long len )
Creates an ext_data meta message of type ty from the raw sequence of len bytes pointed to by r.
long size()
For a System Exclusive ext_data, returns the length of the System Exclusive message. For a meta message ext_data, returns zero.
int sprint( char *s )
Puts a textual representation of the object into s.
UtilStringPtr unparse()
Same as sprint() but returns a UtilStringPtr.