You mean like this?
[color=#00979c]class[/color] [color=#000000]EMA[/color] [color=#000000]{[/color]
[color=#00979c]public[/color][color=#434f54]:[/color]
[color=#95a5a6]/* Constructor: Initialize constants */[/color]
[color=#000000]EMA[/color][color=#000000]([/color][color=#00979c]uint8_t[/color] [color=#000000]shiftFac[/color][color=#000000])[/color]
[color=#434f54]:[/color] [color=#000000]shiftFac[/color][color=#000000]([/color][color=#000000]shiftFac[/color][color=#000000])[/color][color=#434f54],[/color] [color=#000000]fixedPointAHalf[/color][color=#000000]([/color][color=#000000]1[/color] [color=#434f54]<<[/color] [color=#000000]([/color][color=#000000]([/color][color=#000000]shiftFac[/color] [color=#434f54]*[/color] [color=#000000]2[/color][color=#000000])[/color] [color=#434f54]-[/color] [color=#000000]1[/color][color=#000000])[/color][color=#000000])[/color] [color=#000000]{[/color][color=#000000]}[/color]
[color=#95a5a6]/* Filter a new raw input value x[n] and return the filtered output y[n].[/color]
[color=#95a5a6] Should be called at regular intervals for best results. */[/color]
[color=#00979c]int32_t[/color] [color=#d35400]filter[/color][color=#000000]([/color][color=#00979c]int32_t[/color] [color=#000000]value[/color][color=#000000])[/color] [color=#000000]{[/color]
[color=#000000]value[/color] [color=#434f54]=[/color] [color=#000000]value[/color] [color=#434f54]<<[/color] [color=#000000]([/color][color=#000000]shiftFac[/color] [color=#434f54]*[/color] [color=#000000]2[/color][color=#000000])[/color][color=#000000];[/color]
[color=#000000]filtered[/color] [color=#434f54]=[/color] [color=#000000]filtered[/color] [color=#434f54]+[/color] [color=#000000]([/color][color=#000000]([/color][color=#000000]value[/color] [color=#434f54]-[/color] [color=#000000]filtered[/color][color=#000000])[/color] [color=#434f54]>>[/color] [color=#000000]shiftFac[/color][color=#000000])[/color][color=#000000];[/color]
[color=#5e6d03]return[/color] [color=#000000]([/color][color=#000000]filtered[/color] [color=#434f54]+[/color] [color=#000000]fixedPointAHalf[/color][color=#000000])[/color] [color=#434f54]>>[/color] [color=#000000]([/color][color=#000000]shiftFac[/color] [color=#434f54]*[/color] [color=#000000]2[/color][color=#000000])[/color][color=#000000];[/color]
[color=#000000]}[/color]
[color=#00979c]private[/color][color=#434f54]:[/color]
[color=#95a5a6]/* Member variables */[/color]
[color=#00979c]const[/color] [color=#00979c]uint8_t[/color] [color=#000000]shiftFac[/color][color=#000000];[/color]
[color=#00979c]const[/color] [color=#00979c]int32_t[/color] [color=#000000]fixedPointAHalf[/color][color=#000000];[/color]
[color=#00979c]int32_t[/color] [color=#000000]filtered[/color] [color=#434f54]=[/color] [color=#000000]0[/color][color=#000000];[/color]
[color=#000000]}[/color][color=#000000];[/color]
[color=#000000]EMA[/color] [color=#000000]ema_R[/color][color=#000000]([/color][color=#000000]4[/color][color=#000000])[/color][color=#000000];[/color] [color=#434f54]// k = 0.5^4 = 0.0625[/color]
[color=#000000]EMA[/color] [color=#000000]ema_G[/color][color=#000000]([/color][color=#000000]4[/color][color=#000000])[/color][color=#000000];[/color]
[color=#000000]EMA[/color] [color=#000000]ema_B[/color][color=#000000]([/color][color=#000000]4[/color][color=#000000])[/color][color=#000000];[/color]
[color=#000000]EMA[/color] [color=#000000]ema_W[/color][color=#000000]([/color][color=#000000]4[/color][color=#000000])[/color][color=#000000];[/color]
[color=#00979c]const[/color] [color=#00979c]unsigned[/color] [color=#00979c]long[/color] [color=#d35400]interval[/color] [color=#434f54]=[/color] [color=#000000]10000[/color][color=#000000];[/color] [color=#434f54]// sample every 10 milliseconds[/color]
[color=#00979c]void[/color] [color=#000000]measureAndFilter[/color][color=#000000]([/color][color=#000000])[/color] [color=#000000]{[/color]
[color=#00979c]int[/color] [color=#000000]x[/color] [color=#434f54]=[/color] [color=#d35400]analogRead[/color][color=#000000]([/color][color=#00979c]A0[/color][color=#000000])[/color][color=#000000];[/color]
[color=#00979c]int[/color] [color=#000000]y_R[/color] [color=#434f54]=[/color] [color=#000000]ema_R[/color][color=#434f54].[/color][color=#d35400]filter[/color][color=#000000]([/color][color=#000000]x[/color][color=#434f54]/[/color][color=#000000]1[/color][color=#000000])[/color][color=#000000];[/color]
[color=#00979c]int[/color] [color=#000000]y_G[/color] [color=#434f54]=[/color] [color=#000000]ema_G[/color][color=#434f54].[/color][color=#d35400]filter[/color][color=#000000]([/color][color=#000000]x[/color][color=#434f54]/[/color][color=#000000]2[/color][color=#000000])[/color][color=#000000];[/color]
[color=#00979c]int[/color] [color=#000000]y_B[/color] [color=#434f54]=[/color] [color=#000000]ema_B[/color][color=#434f54].[/color][color=#d35400]filter[/color][color=#000000]([/color][color=#000000]x[/color][color=#434f54]/[/color][color=#000000]4[/color][color=#000000])[/color][color=#000000];[/color]
[color=#00979c]int[/color] [color=#000000]y_W[/color] [color=#434f54]=[/color] [color=#000000]ema_W[/color][color=#434f54].[/color][color=#d35400]filter[/color][color=#000000]([/color][color=#000000]x[/color][color=#434f54]/[/color][color=#000000]8[/color][color=#000000])[/color][color=#000000];[/color]
[b][color=#d35400]Serial[/color][/b][color=#434f54].[/color][color=#d35400]printf[/color][color=#000000]([/color][color=#005c5f]"%d\t%d\t%d\t%d\t%d\r\n"[/color][color=#434f54],[/color] [color=#000000]x[/color][color=#434f54],[/color] [color=#000000]y_R[/color][color=#434f54],[/color] [color=#000000]y_G[/color][color=#434f54],[/color] [color=#000000]y_B[/color][color=#434f54],[/color] [color=#000000]y_W[/color][color=#000000])[/color][color=#000000];[/color]
[color=#000000]}[/color]
[color=#00979c]void[/color] [color=#5e6d03]setup[/color][color=#000000]([/color][color=#000000])[/color] [color=#000000]{[/color]
[b][color=#d35400]Serial[/color][/b][color=#434f54].[/color][color=#d35400]begin[/color][color=#000000]([/color][color=#000000]115200[/color][color=#000000])[/color][color=#000000];[/color]
[color=#000000]}[/color]
[color=#00979c]void[/color] [color=#5e6d03]loop[/color][color=#000000]([/color][color=#000000])[/color] [color=#000000]{[/color]
[color=#00979c]static[/color] [color=#00979c]unsigned[/color] [color=#00979c]long[/color] [color=#000000]previousMicros[/color] [color=#434f54]=[/color] [color=#d35400]micros[/color][color=#000000]([/color][color=#000000])[/color][color=#000000];[/color]
[color=#5e6d03]if[/color] [color=#000000]([/color][color=#d35400]micros[/color][color=#000000]([/color][color=#000000])[/color] [color=#434f54]-[/color] [color=#000000]previousMicros[/color] [color=#434f54]>[/color] [color=#d35400]interval[/color][color=#000000])[/color] [color=#000000]{[/color] [color=#434f54]// sample at precise interval[/color]
[color=#000000]measureAndFilter[/color][color=#000000]([/color][color=#000000])[/color][color=#000000];[/color]
[color=#000000]previousMicros[/color] [color=#434f54]+=[/color] [color=#d35400]interval[/color][color=#000000];[/color]
[color=#000000]}[/color]
[color=#000000]}[/color]