To start, we have a channelPlaying bool, which is passed as a "reference" to isPlaying using the syntax &channelPlaying. This seems to be somewhat a matter of style, but there are differences, though FMOD's examples uses the & version, so I've updated it to that one.
Secondly, FMODExChannel::isPlaying is the definition of a member function on the FMODExChannel. We call that with instance->isPlaying(), not instance::isPlaying() (which would be for a class function, afaik). Both references and class/instance operators seem to be similar to PHP style, which makes sense.
- bool *channelPlaying;
- self->mChannel::isPlaying(channelPlaying);
- bool isPlaying = self->mPlayState == PLAYING && *channelPlaying;
+ FMOD_RESULT result = FMOD_OK;
+ bool channelPlaying;
+
+ result = self->mChannel->isPlaying(&channelPlaying);
+ bool isPlaying = self->mPlayState == PLAYING && channelPlaying;
My understanding is that when written
instance->method()rather thaninstance.method()instanceis a pointer.::just resolves scope.