diff --git a/gtk2_ardour/pingback.cc b/gtk2_ardour/pingback.cc index ae7c010c02..8dc68e4a92 100644 --- a/gtk2_ardour/pingback.cc +++ b/gtk2_ardour/pingback.cc @@ -24,6 +24,7 @@ #ifdef PLATFORM_WINDOWS #include #include +#include "pbd/windows_special_dirs.h" #else #include #endif @@ -52,34 +53,6 @@ struct ping_call { : version (v), announce_path (a) {} }; -#ifdef PLATFORM_WINDOWS -static bool -_query_registry (const char *regkey, const char *regval, std::string &rv) { - HKEY key; - DWORD size = PATH_MAX; - char tmp[PATH_MAX+1]; - - if ( (ERROR_SUCCESS == RegOpenKeyExA (HKEY_LOCAL_MACHINE, regkey, 0, KEY_READ, &key)) - && (ERROR_SUCCESS == RegQueryValueExA (key, regval, 0, NULL, reinterpret_cast(tmp), &size)) - ) - { - rv = Glib::locale_to_utf8 (tmp); - return true; - } - - if ( (ERROR_SUCCESS == RegOpenKeyExA (HKEY_LOCAL_MACHINE, regkey, 0, KEY_READ | KEY_WOW64_32KEY, &key)) - && (ERROR_SUCCESS == RegQueryValueExA (key, regval, 0, NULL, reinterpret_cast(tmp), &size)) - ) - { - rv = Glib::locale_to_utf8 (tmp); - return true; - } - - return false; -} -#endif - - static void* _pingback (void *arg) { @@ -140,7 +113,7 @@ _pingback (void *arg) h.free (query); #else std::string val; - if (_query_registry("SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion", "ProductName", val)) { + if (PBD::windows_query_registry ("SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion", "ProductName", val)) { char* query = h.escape (val.c_str(), strlen (val.c_str())); url += "r="; url += query; @@ -150,7 +123,7 @@ _pingback (void *arg) url += "r=&"; } - if (_query_registry("Hardware\\Description\\System\\CentralProcessor\\0", "Identifier", val)) { + if (PBD::windows_query_registry ("Hardware\\Description\\System\\CentralProcessor\\0", "Identifier", val)) { // remove "Family X Model YY Stepping Z" tail size_t cut = val.find (" Family "); if (string::npos != cut) {