diff options
| author | Robert Jonsson <spamatica@gmail.com> | 2009-12-27 11:30:35 +0000 | 
|---|---|---|
| committer | Robert Jonsson <spamatica@gmail.com> | 2009-12-27 11:30:35 +0000 | 
| commit | b703eab295330e6f81564fbb39a10a1a2fdd2f54 (patch) | |
| tree | e46b5c9a6bc22fd661c15d1d2123f5bf631cef80 /muse_qt4_evolution/midiplugins/libmidiplugin/evdata.h | |
| parent | 5d5fa0fdf913907edbc3d2d29a7548f0cb658c94 (diff) | |
moved old qt4 branch
Diffstat (limited to 'muse_qt4_evolution/midiplugins/libmidiplugin/evdata.h')
| -rw-r--r-- | muse_qt4_evolution/midiplugins/libmidiplugin/evdata.h | 64 | 
1 files changed, 64 insertions, 0 deletions
diff --git a/muse_qt4_evolution/midiplugins/libmidiplugin/evdata.h b/muse_qt4_evolution/midiplugins/libmidiplugin/evdata.h new file mode 100644 index 00000000..8247b6e0 --- /dev/null +++ b/muse_qt4_evolution/midiplugins/libmidiplugin/evdata.h @@ -0,0 +1,64 @@ +//========================================================= +//  MusE +//  Linux Music Editor +//  $Id: evdata.h,v 1.2 2005/05/11 14:18:39 wschweer Exp $ +// +//  (C) Copyright 1999-2003 Werner Schweer (ws@seh.de) +//========================================================= + +#ifndef __EVDATA_H__ +#define __EVDATA_H__ + +//--------------------------------------------------------- +//   EvData +//    variable len event data (sysex, meta etc.) +//--------------------------------------------------------- + +class EvData { +      int* refCount; + +   public: +      unsigned char* data; +      int dataLen; + +      EvData()  { +            data     = 0; +            dataLen  = 0; +            refCount = new int(1); +            } +      EvData(const EvData& ed) { +            data     = ed.data; +            dataLen  = ed.dataLen; +            refCount = ed.refCount; +            (*refCount)++; +            } + +      EvData& operator=(const EvData& ed) { +            if (data == ed.data) +                  return *this; +            if (--(*refCount) == 0) { +                  delete refCount; +                  delete[] data; +                  } +            data     = ed.data; +            dataLen  = ed.dataLen; +            refCount = ed.refCount; +            (*refCount)++; +            return *this; +            } + +      ~EvData() { +            if (--(*refCount) == 0) { +                  delete[] data; +                  delete refCount; +                  } +            } +      void setData(const unsigned char* p, int l) { +            data = new unsigned char[l]; +            memcpy(data, p, l); +            dataLen = l; +            } +      }; + +#endif +  | 
