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).
17 #include "AtmoChannelAssignment.h"
20 CAtmoChannelAssignment::CAtmoChannelAssignment(void)
22 m_psz_name = strdup("");
28 CAtmoChannelAssignment::CAtmoChannelAssignment(CAtmoChannelAssignment &source)
30 m_num_channels = 0; m_psz_name = NULL;
31 m_mappings = source.getMapArrayClone(m_num_channels);
32 setName( source.getName() );
33 system = source.system;
36 CAtmoChannelAssignment::~CAtmoChannelAssignment(void)
42 void CAtmoChannelAssignment::setName(const char *pszNewName)
45 m_psz_name = pszNewName ? strdup(pszNewName) : strdup("");
48 void CAtmoChannelAssignment::setSize(int numChannels)
50 if(numChannels != m_num_channels)
53 m_num_channels = numChannels;
54 if(m_num_channels > 0)
56 m_mappings = new int[m_num_channels];
57 memset(m_mappings, 0, sizeof(int) * m_num_channels);
64 int *CAtmoChannelAssignment::getMapArrayClone(int &count)
66 count = m_num_channels;
67 if(count == 0) return NULL;
68 int *temp = new int[m_num_channels];
69 memcpy(temp, m_mappings, sizeof(int) * m_num_channels);
73 int CAtmoChannelAssignment::getZoneIndex(int channel)
75 if(m_mappings && (channel>=0) && (channel<m_num_channels))
76 return m_mappings[channel] ;
81 void CAtmoChannelAssignment::setZoneIndex(int channel, int zone)
83 if(m_mappings && (channel>=0) && (channel<m_num_channels))
84 m_mappings[channel] = zone;