Tja, das ist nicht ganz so trivial aber machbar. Du musst Dir halt
überlegen, wann der Sinus auch als Sinus erkannt werden soll, also wie
optimal der gemessene Sinus sein muss.
Wenn Du Frequenz, Amplitude und Offset gemessen hast, kannst Du ja
einen dazu passenden Sinus in einem anderen Puffer berechnen, und dann
die beiden Puffer (gemessener "Sinus" und errechnetere, echter Sinus)
Sample für Sample vergleichen.
Für den Vergelich bildest Du am besten eine Fehler-Quadratsumme. Also
für jedes Sample den Fehler zwischen gemessen und errechnet quadrieren
und alle diese Quadrate zusammenzählen.
So könntest Du das gemesse Signal mit verschiedenen errechneten
Signalen vergleichen. Das mit der kleinsten Fehlerquadratsumme ist das
gemessene. Zusätzlich könntest Du noch ein Obergrenze einbauen, so dass
"zu falsche" Signale nicht als Sinus oder Dreieck oder sonst etwas
erkannt werden können.
Eine andere Möglichkeit wäre, sogenannte "Kreuzkorrelation". Dazu
einfach mal in der Wikipedia schmökern:
http://de.wikipedia.org/wiki/Kreuzkorrelation