CODE
class Test_Class : private play_callback {
public:
// play_callback methods
virtual void on_playback_new_track(metadb_handle_ptr p_track) {Send_Message();}
virtual void on_playback_stop(play_control::t_stop_reason reason) {}
virtual void on_playback_dynamic_info_track(const file_info & p_info) {}
virtual void on_playback_starting(play_control::t_track_command p_command, bool p_paused) {}
virtual void on_playback_seek(double p_time) {}
virtual void on_playback_pause(bool p_state) {}
virtual void on_playback_edited(metadb_handle_ptr p_track) {}
virtual void on_playback_dynamic_info(const file_info & p_info) {}
virtual void on_playback_time(double p_time) {}
virtual void on_volume_change(float p_new_val) {}
void Send_Message();
Test_Class() {
// Register play callback.
try {
static_api_ptr_t<play_callback_manager> pcm;
pcm->register_callback(this,
flag_on_playback_new_track, false);
}
catch (const exception_service_not_found &) {
// play_callback_manager does not exist; something is very wrong.
}
}
};
play callback code taken from tutorial.public:
// play_callback methods
virtual void on_playback_new_track(metadb_handle_ptr p_track) {Send_Message();}
virtual void on_playback_stop(play_control::t_stop_reason reason) {}
virtual void on_playback_dynamic_info_track(const file_info & p_info) {}
virtual void on_playback_starting(play_control::t_track_command p_command, bool p_paused) {}
virtual void on_playback_seek(double p_time) {}
virtual void on_playback_pause(bool p_state) {}
virtual void on_playback_edited(metadb_handle_ptr p_track) {}
virtual void on_playback_dynamic_info(const file_info & p_info) {}
virtual void on_playback_time(double p_time) {}
virtual void on_volume_change(float p_new_val) {}
void Send_Message();
Test_Class() {
// Register play callback.
try {
static_api_ptr_t<play_callback_manager> pcm;
pcm->register_callback(this,
flag_on_playback_new_track, false);
}
catch (const exception_service_not_found &) {
// play_callback_manager does not exist; something is very wrong.
}
}
};
I create an instance of this class in on_init, and even test that it was constructed properly by calling Test_Class.Send_Message(). Everything works fine (Send_Message is triggered on foobar start up) but when I attempt to play a track I get repeated Runtime errors.
What did I miss?
