// Common, groups Output and Encoding
// Copyright Alexander Liss
#include "sound2.h"
#include "shape2.h"
#include "array2.h"
// SoundSamples
int pack(CommBuffer& d,const SoundSamples& z)
{
int g=0;
DataCoder coder;
coder.use(d);
g=::pack(d,z.samples);
if(!g) g=coder.put(z.period);
if(!g) g=coder.put(z.carrier);
return g;
}
int unpack(SoundSamples& z,const CommBuffer& s,ReadControl& c)
{
int g=0;
DataCoder coder;
coder.use(s,c);
g=::unpack(z.samples,s,c);
if(!g) g=coder.get(z.period);
if(!g) g=coder.get(z.carrier);
return g;
}
// SoundAccordUnit
int pack(CommBuffer& d,const SoundAccordUnit& z)
{
int g=0;
DataCoder coder;
coder.use(d);
g=::pack(d,z.samples);
if(!g) g=::pack(d,z.vibro);
if(!g) g=coder.put(z.vigor);
return g;
}
int unpack(SoundAccordUnit& z,const CommBuffer& s,ReadControl& c)
{
int g=0;
DataCoder coder;
coder.use(s,c);
g=::unpack(z.samples,s,c);
if(!g) g=::unpack(z.vibro,s,c);
if(!g) g=coder.get(z.vigor);
return g;
}
// CosinSound
int pack(CommBuffer& d,const CosinSound& z)
{
int g=0;
DataCoder coder;
coder.use(d);
g=coder.put(z.vigor);
if(!g) g=coder.put(z.period);
if(!g) g=coder.put(z.phase);
if(!g) g=::pack(d,z.vibro);
return g;
}
int unpack(CosinSound& z,const CommBuffer& s,ReadControl& c)
{
int g=0;
DataCoder coder;
coder.use(s,c);
g=coder.get(z.vigor);
if(!g) g=coder.get(z.period);
if(!g) g=coder.get(z.phase);
if(!g) g=::unpack(z.vibro,s,c);
return g;
}
// CosinSoundAccordUnit
int pack(CommBuffer& d,const CosinSoundAccordUnit& z)
{
int g=0;
DataCoder coder;
coder.use(d);
g=coder.put(z.n);
if(!g) g=coder.put(z.m);
if(!g) g=::pack(d,z.vibro);
if(!g) g=coder.put(z.vigor);
return g;
}
int unpack(CosinSoundAccordUnit& z,const CommBuffer& s,ReadControl& c)
{
int g=0;
DataCoder coder;
coder.use(s,c);
g=coder.get(z.n);
if(!g) g=coder.get(z.m);
if(!g) g=::unpack(z.vibro,s,c);
if(!g) g=coder.get(z.vigor);
return g;
}
// CosinSoundAccord
int pack(CommBuffer& d,const CosinSoundAccord& z)
{
int g=0;
DataCoder coder;
coder.use(d);
g=::pack(d,z.units);
if(!g) g=coder.put(z.period);
if(!g) g=coder.put(z.phase);
return g;
}
int unpack(CosinSoundAccord& z,const CommBuffer& s,ReadControl& c)
{
int g=0;
DataCoder coder;
coder.use(s,c);
g=::unpack(z.units,s,c);
if(!g) g=coder.get(z.period);
if(!g) g=coder.get(z.phase);
return g;
}