Ok, i think i have this problem solved.
For future reference.....
class my_play : private play_callback
{
public:
my_play() {}
~my_play() {}
void doregister()
{
static_api_ptr_t<play_callback_manager> pcm;
pcm->register_callback(this, flag_on_playback_new_track | flag_on_playback_dynamic_info_track | flag_on_playback_stop, false);
}
void unregister()
{
static_api_ptr_t<play_callback_manager> pcm;
pcm->unregister_callback(this);
}
virtual void on_playback_starting(play_control::t_track_command p_command, bool p_paused)
{
if (mem != NULL)
if (p_paused)
//paused
mem->info.status = 2;
else
//playing
mem->info.status = 1;
}
//......... snip
};
And then I:
class my_initquit : public initquit
{
public:
virtual void on_init()
{
//create playstatus class
play_status = new my_play();
play_status->doregister();
}
virtual void on_quit()
{
}
};
static initquit_factory_t<my_initquit> foo_initquit;