2 * AtmoChannelAssignment.cpp: Class for storing a hardware channel to zone mapping
5 * See the README.txt file for copyright information and how to reach the author(s).
12 #include "AtmoChannelAssignment.h"
15 CAtmoChannelAssignment::CAtmoChannelAssignment(void)
17 m_psz_name = strdup("");
23 CAtmoChannelAssignment::CAtmoChannelAssignment(CAtmoChannelAssignment &source)
25 m_num_channels = 0; m_psz_name = NULL;
26 m_mappings = source.getMapArrayClone(m_num_channels);
27 setName( source.getName() );
28 system = source.system;
31 CAtmoChannelAssignment::~CAtmoChannelAssignment(void)
36 void CAtmoChannelAssignment::setName(const char *pszNewName)
39 m_psz_name = pszNewName ? strdup(pszNewName) : strdup("");
42 void CAtmoChannelAssignment::setSize(int numChannels)
44 if(numChannels != m_num_channels)
48 m_num_channels = numChannels;
49 if(m_num_channels > 0)
51 m_mappings = new int[m_num_channels];
52 memset(m_mappings, 0, sizeof(int) * m_num_channels);
57 int *CAtmoChannelAssignment::getMapArrayClone(int &count)
59 count = m_num_channels;
60 if(count == 0) return NULL;
61 int *temp = new int[m_num_channels];
62 memcpy(temp, m_mappings, sizeof(int) * m_num_channels);
66 int CAtmoChannelAssignment::getZoneIndex(int channel)
68 if(m_mappings && (channel>=0) && (channel<m_num_channels))
69 return m_mappings[channel] ;
74 void CAtmoChannelAssignment::setZoneIndex(int channel, int zone)
76 if(m_mappings && (channel>=0) && (channel<m_num_channels))
77 m_mappings[channel] = zone;