Als Codec bezeichnet man IC in denen A/D sowie D/A Wandlung integriert sind.
Viele enthalten zusätzlich analoge Audiomixer.
C++ für einen Mikrocontroller mit sagen wir 1KB RAM und 8KB Flash
halte ich einfach für Overkill. Die ATMegas werden halt hardwarenah programmiert.
Das hantieren mit Objekten ist hier einfach zu abstrakt und auch nicht nötig.
Ich mach jedenfalls immer mit Winavr.