diff --git a/src/Makefile.am b/src/Makefile.am index 1b5d1a31..a0ac0b99 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -10,5 +10,5 @@ INCLUDES= $(all_includes) # the library search path. ncmpcpp_LDFLAGS = $(all_libraries) noinst_HEADERS = browser.h charset.h clock.h display.h global.h help.h \ - helpers.h info.h lyrics.h media_library.h menu.h mpdpp.h playlist_editor.h \ + helpers.h home.h info.h lyrics.h media_library.h menu.h mpdpp.h playlist_editor.h \ screen.h scrollpad.h search_engine.h settings.h song.h tag_editor.h window.h diff --git a/src/home.h b/src/home.h new file mode 100644 index 00000000..ef10462c --- /dev/null +++ b/src/home.h @@ -0,0 +1,47 @@ +/*************************************************************************** + * Copyright (C) 2008-2009 by Andrzej Rybczak * + * electricityispower@gmail.com * + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the * + * Free Software Foundation, Inc., * + * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. * + ***************************************************************************/ + +#ifndef _HOME_H +#define _HOME_H + +#include +#include + +#ifdef WIN32 +# define _WIN32_IE 0x0400 +# include + +inline std::string _GetHomeFolder() +{ + char path[300]; + return SHGetSpecialFolderPath(0, path, CSIDL_PERSONAL, 0) ? path : ""; +} + +# define GET_HOME_FOLDER _GetHomeFolder() +#else +# define GET_HOME_FOLDER getenv("HOME") ? getenv("HOME") : ""; +#endif // WIN32 + +const std::string home_path = GET_HOME_FOLDER; + +#undef GET_HOME_FOLDER + +#endif + diff --git a/src/ncmpcpp.h b/src/ncmpcpp.h index 671d5d2d..dca899fc 100644 --- a/src/ncmpcpp.h +++ b/src/ncmpcpp.h @@ -21,18 +21,10 @@ #ifndef _NCMPCPP_H #define _NCMPCPP_H -#include - #include "window.h" #include "menu.h" #include "scrollpad.h" -#ifdef WIN32 -# define HOME_ENV "USERPROFILE" -#else -# define HOME_ENV "HOME" -#endif // WIN32 - #ifdef HAVE_PTHREAD_H # include #else @@ -47,9 +39,5 @@ typedef std::pair string_pair; const int ncmpcpp_window_timeout = 250; -const std::string home_path = getenv(HOME_ENV) ? getenv(HOME_ENV) : ""; - -#undef HOME_ENV - #endif diff --git a/src/settings.h b/src/settings.h index 5bbce102..cf417e33 100644 --- a/src/settings.h +++ b/src/settings.h @@ -23,6 +23,7 @@ #include +#include "home.h" #include "libmpdclient.h" #include "ncmpcpp.h"