Help - Search - Members - Calendar
Full Version: How to use track_property_provider
Hydrogenaudio Forums > Hosted Forums > foobar2000 > Development - (fb2k)
dominura
Please teach the usage of track_property_provider.
foosion
Warning: Code is untested.
CODE
class custom_track_property_provider : public track_property_provider_v2
{
public:
virtual void enumerate_properties(metadb_handle_list_cref p_tracks, track_property_callback & p_out)
{
// Compute value based on p_tracks.
pfc::string8 value;

if (compute_property_value(p_tracks, value))
{
p_out.set_property("XYZ Group", 0.0, "XYZ Property", value);
}
}

virtual bool is_our_tech_info(const char * p_name)
{
// Remove "xyz" and "uvw" from unknown tech info section.
if ((0 == stricmp_utf_8(p_name, "xyz")) || (0 == stricmp_utf_8(p_name, "uvw")))
{
return true;
}
else
{
return false;
}
}

virtual void enumerate_properties_v2(metadb_handle_list_cref p_tracks, track_property_callback_v2 & p_out)
{
if (p_out.is_group_wanted("XYZ Group"))
{
enumerate_properties(p_track, p_out);
}
}

private:
bool compute_property_value(metadb_handle_list_cref p_track, pfc::string_base & p_out);
};

namespace {
track_property_provider_factory<custom_track_property_provider> g_custom_track_property_provider;
}
dominura
QUOTE (foosion @ Mar 9 2009, 08:24) *
Warning: Code is untested.


Thank you for a good example.
The problem was solved.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2009 Invision Power Services, Inc.