/thirdparty/liblastfm2/src/core/misc.h
http://github.com/tomahawk-player/tomahawk · C Header · 111 lines · 81 code · 11 blank · 19 comment · 2 complexity · 1d60e41c581cce534695bbe6ae391d15 MD5 · raw file
- /*
- Copyright 2009 Last.fm Ltd.
- - Primarily authored by Max Howell, Jono Cole and Doug Mansell
- This file is part of liblastfm.
- liblastfm 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 3 of the License, or
- (at your option) any later version.
- liblastfm 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 liblastfm. If not, see <http://www.gnu.org/licenses/>.
- */
- #ifndef LASTFM_MISC_H
- #define LASTFM_MISC_H
- #include <lastfm/global.h>
- #include <QCryptographicHash>
- #include <QDir>
- #include <QString>
- #ifdef Q_WS_MAC
- typedef const struct __CFString* CFStringRef;
- #endif
- namespace lastfm
- {
- namespace dir
- {
- #ifdef Q_WS_WIN
- LASTFM_DLLEXPORT QDir programFiles();
- #endif
- #ifdef Q_WS_MAC
- LASTFM_DLLEXPORT QDir bundle();
- #endif
- LASTFM_DLLEXPORT QDir runtimeData();
- LASTFM_DLLEXPORT QDir cache();
- LASTFM_DLLEXPORT QDir logs();
- }
-
- #ifdef Q_WS_MAC
- LASTFM_DLLEXPORT QByteArray CFStringToUtf8( CFStringRef );
- LASTFM_DLLEXPORT CFStringRef QStringToCFString( const QString& );
- inline QString CFStringToQString( CFStringRef s );
- #endif
- inline const char* platform()
- {
- #ifdef Q_WS_WIN
- switch (QSysInfo::WindowsVersion)
- {
- case QSysInfo::WV_32s: return "Windows 3.1 with Win32s";
- case QSysInfo::WV_95: return "Windows 95";
- case QSysInfo::WV_98: return "Windows 98";
- case QSysInfo::WV_Me: return "Windows Me";
- case QSysInfo::WV_DOS_based: return "MS-DOS-based Windows";
- case QSysInfo::WV_NT: return "Windows NT";
- case QSysInfo::WV_2000: return "Windows 2000";
- case QSysInfo::WV_XP: return "Windows XP";
- case QSysInfo::WV_2003: return "Windows Server 2003";
- case QSysInfo::WV_VISTA: return "Windows Vista";
- case QSysInfo::WV_NT_based: return "NT-based Windows";
- case QSysInfo::WV_CE: return "Windows CE";
- case QSysInfo::WV_CENET: return "Windows CE.NET";
- case QSysInfo::WV_CE_based: return "CE-based Windows";
- default: return "Unknown";
- }
- #elif defined Q_WS_MAC
- switch (QSysInfo::MacintoshVersion)
- {
- case QSysInfo::MV_Unknown: return "Unknown Mac";
- case QSysInfo::MV_9: return "Mac OS 9";
- case QSysInfo::MV_10_0: return "Mac OS X 10.0";
- case QSysInfo::MV_10_1: return "Mac OS X 10.1";
- case QSysInfo::MV_10_2: return "Mac OS X 10.2";
- case QSysInfo::MV_10_3: return "Mac OS X 10.3";
- case QSysInfo::MV_10_4: return "Mac OS X 10.4";
- case QSysInfo::MV_10_5: return "Mac OS X 10.5";
- default: return "Unknown";
- }
- #elif defined Q_WS_X11
- return "UNIX X11";
- #else
- return "Unknown";
- #endif
- }
-
- inline QString md5( const QByteArray& src )
- {
- QByteArray const digest = QCryptographicHash::hash( src, QCryptographicHash::Md5 );
- return QString::fromLatin1( digest.toHex() ).rightJustified( 32, '0' ).toLower();
- }
- }
- #ifdef Q_WS_MAC
- inline QString lastfm::CFStringToQString( CFStringRef s )
- {
- return QString::fromUtf8( CFStringToUtf8( s ) );
- }
- #endif
- #endif //LASTFM_MISC_H