before you get into a point when you want to move certain object try to create some structure around your code. Instead of hundrets glVertex(...) glTexCoords(...) with hardcoded numbers in those create some easy to use functions that would accept a position as an input and internally would call OpenGL functions to render your objects. Further it would be easier for you to change things upon user action.
Better to take a known export format like FBX/collada and write a converter between export file and your binary file. This way you can easily support other modelling tools like blender or maya.
I've already got a MAXScript that exports from 3ds max to an intermediate format which my engine consumed. It already exports transformation based animations. I've enhanced it to export vertex weights for skinned meshes and everything worked like a charm. Follow this article if somebody would need a similar thing: http://www.gamedev.net/topic/567949-maxscript-getting-vertex-weights/. I had some troubles with "Physique" modifier and could not manage to extract weights from it, but found a utility that converts "Physique" to "Skin" modifier which is a lot simpler to export.
The bone interpolation should be done on the CPU, the vertex transformation on the GPU.
Currently do everything with CPU. How would I calculate vertex transformations on GPU? I can have about 30-40 bones, should I need to have those bone information loaded into the shader? Isn't there a limitation on the amount of input data the at the shader can accept?
The http://nehe.gamedev.net/ . Yes I have seen them. Do you mean the Legacy Tutorials? I think these are very old like in 2000 . Will it be still useful for beginners in OpenGL to follow them?
Yes, those are the ones that I meant. Yes, it got originated in early 2000's, but will remain useful for another century or so. It will teach you fundamentals of 3D programming which does not change within a decade.
AudioSessionSetProperty should be called at app initialization, not in OpenALInterruptionListener
Also, don't forget to check OpenAL return codes for an error.
Ed, something is still not right in my case. I followed your suggestion and moved AudioSessionSetProperty to app initialization but still my InterruptionListener is not getting called. If that would make differences my engine is written in C++ and all calls to OpenAL are made from C++.