Annoyme Portierung auf Mac OS X

Ich hatte mich schon immer auf eine Gelegenheit gefreut mal etwas bestehendes auf eine andere Platform zu portieren. Ich hab zwar schon unter Solarix und AIX gecodet aber nun hatte ich eben die Chance mein eigenes Annoyme auf OSX zu testen und war angenehm überrascht. Bis auf ein paar Probleme mit Includes, Anpassungen der cmake Skripte und Dateinamenprobleme hat es ganz gut geklappt.

Interessant war jedoch auch ein Problem mit libao unter 10.4 siehe: https://trac.xiph.org/ticket/727

Laufen tut annoyme jedoch noch nicht ganz auf Mac, die libao Version kann hier offenbar nur mit 44k Samples umgehen und bei annoyme gibts zur Zeit nur 22k.


./annoyme
...
Opening sound output.
ao_macosx_open: Only support 44.1kHz right now
terminate called after throwing an instance of 'SoundOutputException'

Ingesamt würde ich auch sagen ist dies ein ziemlich guter Test für cmake gewesen von dem ich recht begeistert bin. Im gegensatz zu den autotools war der Einstieg auch recht einfach auch wenn man beim Einstieg vom ersten Howto eigentlich direkt in die Funktionsreferenz gehen muss da man ansonsten nur auf das Buch verwiesen wird und andere Einleitungsdokumente fehlen. http://www.cmake.org/

Mac – Case Insensitivity

Ein weiterer Fallstrick der mich bei meiner spielerei mit dem Mac überraschte war die offensichtliche Case Insensitivtät unter OSX.

Als jemand der sich unter der Shell relativ wohl fühlt ist dies ein druchaus überraschendes Verhalten. Mir ist es jedoch erst aufgefallen, alls ich etwas aus dem Annoyme git Repository ausgecheckt habe und seltsamerweise immer eine Datei verändert war.

Im Repository gibt es eine Datei „annoyme.cpp“, welche main beinhaltet und „Annyome.cpp“ für die Hauptklasse der Anwendung. Anscheinend muss ich mir hier aus portibilitätsgründen etwas neues ausdenken.

Hier ein kleines Beispiel wie sich die Case Insensitivität auf der Shell auswirken kann:

/tmp/testrange)$ ls -l
/tmp/testrange)$ touch thesame
/tmp/testrange)$ ls -l
total 0
-rw-r--r-- 1 bpeter wheel 0B 5 Apr 21:37 thesame
/tmp/testrange)$ touch TheSame
/tmp/testrange)$ ls -l
total 0
-rw-r--r-- 1 bpeter wheel 0B 5 Apr 21:38 thesame
/tmp/testrange)$ rm tHeSaMe
/tmp/testrange)$ ls -l