void CShiftPWM::SetGroupOf3(int group, unsigned char v0,unsigned char v1,unsigned char v2){ if(IsValidPin(group*3+2) ){ m_PWMValues[group*3]=v0; m_PWMValues[group*3+1]=v1; m_PWMValues[group*3+2]=v2; } }
void CShiftPWM::SetGroupOf2(int group, unsigned char v0,unsigned char v1, int offset){ int skip = m_pinGrouping*(group/m_pinGrouping); // is not equal to 2*group. Division is rounded down first. if(IsValidPin(group+skip+offset+m_pinGrouping) ){ m_PWMValues[group+skip+offset] =v0; m_PWMValues[group+skip+offset+m_pinGrouping] =v1; } }
void CShiftPWM::SetRGB(int led, unsigned char r,unsigned char g,unsigned char b, int offset){ int skip = 2*m_pinGrouping*(led/m_pinGrouping); // is not equal to 2*led. Division is rounded down first. if(IsValidPin(led+skip+offset+2*m_pinGrouping) ){ m_PWMValues[pmap[led+skip+offset]] =( (unsigned int) r * m_maxBrightness)>>8; m_PWMValues[pmap[led+skip+offset+m_pinGrouping]] =( (unsigned int) g * m_maxBrightness)>>8; m_PWMValues[pmap[led+skip+offset+2*m_pinGrouping]] =( (unsigned int) b * m_maxBrightness)>>8; }
void CShiftPWM::SetGroupOf4(int group, unsigned char v0,unsigned char v1,unsigned char v2,unsigned char v3){ if(IsValidPin(group*4+3) ){ m_PWMValues[group*4]=v0; m_PWMValues[group*4+1]=v1; m_PWMValues[group*4+2]=v2; m_PWMValues[group*4+3]=v3; } }
void CShiftPWM::SetGroupOf5(int group, unsigned char v0,unsigned char v1,unsigned char v2,unsigned char v3,unsigned char v4){ if(IsValidPin(group*5+4) ){ m_PWMValues[group*5]=v0; m_PWMValues[group*5+1]=v1; m_PWMValues[group*5+2]=v2; m_PWMValues[group*5+3]=v3; m_PWMValues[group*5+4]=v4; } }
void CShiftPWM::SetGroupOf5(int group, unsigned char v0,unsigned char v1,unsigned char v2,unsigned char v3,unsigned char v4, int offset){ int skip = 4*m_pinGrouping*(group/m_pinGrouping); // is not equal to 2*group. Division is rounded down first. if(IsValidPin(group+skip+offset+4*m_pinGrouping) ){ m_PWMValues[group+skip+offset] =v0; m_PWMValues[group+skip+offset+m_pinGrouping] =v1; m_PWMValues[group+skip+offset+m_pinGrouping*2] =v2; m_PWMValues[group+skip+offset+m_pinGrouping*3] =v3; m_PWMValues[group+skip+offset+m_pinGrouping*4] =v4; } }
void CShiftPWM::SetGroupOf2(int group, unsigned char v0,unsigned char v1){ if(IsValidPin(group*2+1) ){ m_PWMValues[group*2]=v0; m_PWMValues[group*2+1]=v1; } }
void CShiftPWM::SetOne(int pin, unsigned char value){ if(IsValidPin(pin) ){ m_PWMValues[pin]=value; } }
void CShiftPWM::SetRGB(int led, unsigned char r,unsigned char g,unsigned char b){ if(IsValidPin(led*3+2) ){ m_PWMValues[led*3]=( (unsigned int) r * m_maxBrightness)>>8; m_PWMValues[led*3+1]=( (unsigned int) g * m_maxBrightness)>>8; m_PWMValues[led*3+2]=( (unsigned int) b * m_maxBrightness)>>8; }