27 #define TKF_FILE_SUFFIX "tkf"
28 #define TKX_FILE_SUFFIX "tkx"
29 #define TKM_FILE_SUFFIX "tkm"
30 #define TKB_FILE_SUFFIX "tkb"
32 #define SKN_FILE_SUFFIX "skn"
33 #define JPG_FILE_SUFFIX "jpg"
34 #define PNG_FILE_SUFFIX "png"
35 #define XML_FILE_SUFFIX "xml"
37 #define LRC_FILE_SUFFIX "lrc"
38 #define KRC_FILE_SUFFIX "krc"
39 #define QRC_FILE_SUFFIX "qrc"
40 #define TRC_FILE_SUFFIX "trc"
41 #define YRC_FILE_SUFFIX "yrc"
42 #define KSC_FILE_SUFFIX "ksc"
44 #define TPL_FILE_SUFFIX "tkpl"
45 #define M3U_FILE_SUFFIX "m3u"
46 #define M3U8_FILE_SUFFIX "m3u8"
47 #define PLS_FILE_SUFFIX "pls"
48 #define WPL_FILE_SUFFIX "wpl"
49 #define XSPF_FILE_SUFFIX "xspf"
50 #define JSPF_FILE_SUFFIX "jspf"
51 #define ASX_FILE_SUFFIX "asx"
52 #define CSV_FILE_SUFFIX "csv"
53 #define TXT_FILE_SUFFIX "txt"
54 #define FPL_FILE_SUFFIX "fpl"
55 #define DBPL_FILE_SUFFIX "dbpl"
57 #define MP3_FILE_SUFFIX "mp3"
58 #define APE_FILE_SUFFIX "ape"
59 #define FLAC_FILE_SUFFIX "flac"
60 #define MP4_FILE_SUFFIX "mp4"
61 #define FLV_FILE_SUFFIX "flv"
64 #define TKF_FILE TTK_STR_CAT(TTK_DOT, TKF_FILE_SUFFIX)
65 #define TKX_FILE TTK_STR_CAT(TTK_DOT, TKX_FILE_SUFFIX)
66 #define TKM_FILE TTK_STR_CAT(TTK_DOT, TKM_FILE_SUFFIX)
67 #define TKB_FILE TTK_STR_CAT(TTK_DOT, TKB_FILE_SUFFIX)
69 #define SKN_FILE TTK_STR_CAT(TTK_DOT, SKN_FILE_SUFFIX)
70 #define JPG_FILE TTK_STR_CAT(TTK_DOT, JPG_FILE_SUFFIX)
71 #define PNG_FILE TTK_STR_CAT(TTK_DOT, PNG_FILE_SUFFIX)
72 #define MP3_FILE TTK_STR_CAT(TTK_DOT, MP3_FILE_SUFFIX)
73 #define TPL_FILE TTK_STR_CAT(TTK_DOT, TPL_FILE_SUFFIX)
74 #define XML_FILE TTK_STR_CAT(TTK_DOT, XML_FILE_SUFFIX)
76 #define LRC_FILE TTK_STR_CAT(TTK_DOT, LRC_FILE_SUFFIX)
77 #define KRC_FILE TTK_STR_CAT(TTK_DOT, KRC_FILE_SUFFIX)
78 #define QRC_FILE TTK_STR_CAT(TTK_DOT, QRC_FILE_SUFFIX)
79 #define TRC_FILE TTK_STR_CAT(TTK_DOT, TRC_FILE_SUFFIX)
80 #define YRC_FILE TTK_STR_CAT(TTK_DOT, YRC_FILE_SUFFIX)
81 #define KSC_FILE TTK_STR_CAT(TTK_DOT, KSC_FILE_SUFFIX)
83 #define MP3_FILE TTK_STR_CAT(TTK_DOT, MP3_FILE_SUFFIX)
84 #define APE_FILE TTK_STR_CAT(TTK_DOT, APE_FILE_SUFFIX)
85 #define FLAC_FILE TTK_STR_CAT(TTK_DOT, FLAC_FILE_SUFFIX)
86 #define MP4_FILE TTK_STR_CAT(TTK_DOT, MP4_FILE_SUFFIX)
87 #define FLV_FILE TTK_STR_CAT(TTK_DOT, FLV_FILE_SUFFIX)
90 #define APPDATA_DIR TTK_STR_CAT("AppData", TTK_SEPARATOR)
91 #define APPCACHE_DIR TTK_STR_CAT("AppCache", TTK_SEPARATOR)
92 #define APPBACKUP_DIR TTK_STR_CAT("AppBackup", TTK_SEPARATOR)
93 #define DOWNLOAD_DIR TTK_STR_CAT("Downloads", TTK_SEPARATOR)
95 #define LRC_DIR TTK_STR_CAT("Lyric", TTK_SEPARATOR)
96 #define MUSIC_DIR TTK_STR_CAT("Music", TTK_SEPARATOR)
97 #define ARCHIVE_DIR TTK_STR_CAT("Archive", TTK_SEPARATOR)
99 #define LANGUAGE_DIR TTK_STR_CAT("GLanguage", TTK_SEPARATOR)
100 #define PLUGINS_DIR TTK_STR_CAT("GPlugins", TTK_SEPARATOR)
101 #define THEME_DIR TTK_STR_CAT("GTheme", TTK_SEPARATOR)
103 #define ART_DIR TTK_STR_CAT("Art", TTK_SEPARATOR)
104 #define BACKGROUND_DIR TTK_STR_CAT("Background", TTK_SEPARATOR)
105 #define CACHE_DIR TTK_STR_CAT("Cache", TTK_SEPARATOR)
106 #define RESOURCE_DIR TTK_STR_CAT("resource", TTK_SEPARATOR)
108 #define CONFIG_DIR TTK_STR_CAT("config", TTK_SEPARATOR)
109 #define USER_THEME_DIR TTK_STR_CAT("theme", TTK_SEPARATOR)
112 #define MAKE_TRANSFORM_NAME TTK_STR_CAT("avconv", TKX_FILE)
113 #define MAKE_PLAYER_NAME TTK_STR_CAT("avplayer", TKX_FILE)
114 #define MAKE_GAIN_NAME TTK_STR_CAT("avgain", TKX_FILE)
117 #define MAKE_CONFIG_DIR TTK_STR_CAT(PLUGINS_DIR, CONFIG_DIR)
118 #define MAKE_TRANSFORM_PATH TTK_STR_CAT(PLUGINS_DIR, MAKE_TRANSFORM_NAME)
119 #define MAKE_PLAYER_PATH TTK_STR_CAT(PLUGINS_DIR, MAKE_PLAYER_NAME)
120 #define MAKE_GAIN_PATH TTK_STR_CAT(PLUGINS_DIR, MAKE_GAIN_NAME)
123 #define COFIG_PATH TTK_STR_CAT("config", XML_FILE)
124 #define PLAYLIST_PATH TTK_STR_CAT("playlist", TPL_FILE)
125 #define NORMAL_DOWN_PATH TTK_STR_CAT("download", TKF_FILE)
126 #define CLOUD_DOWN_PATH TTK_STR_CAT("cdownload", TKF_FILE)
127 #define CLOUD_UP_PATH TTK_STR_CAT("cupload", TKF_FILE)
128 #define SEARCH_PATH TTK_STR_CAT("search", TKF_FILE)
131 #define MAIN_DIR_FULL TTK::applicationPath() + TTK_PARENT_DIR
133 #define DOWNLOAD_DIR_FULL MAIN_DIR_FULL + DOWNLOAD_DIR
134 #define APPDATA_DIR_FULL TTK::configPath() + APPDATA_DIR
135 #define APPCACHE_DIR_FULL TTK::configPath() + APPCACHE_DIR
136 #define APPBACKUP_DIR_FULL TTK::configPath() + APPBACKUP_DIR
138 #define LRC_DIR_FULL DOWNLOAD_DIR_FULL + LRC_DIR
139 #define MUSIC_DIR_FULL DOWNLOAD_DIR_FULL + MUSIC_DIR
140 #define ARCHIVE_DIR_DIR_FULL DOWNLOAD_DIR_FULL + ARCHIVE_DIR
142 #define ART_DIR_FULL APPCACHE_DIR_FULL + ART_DIR
143 #define BACKGROUND_DIR_FULL APPCACHE_DIR_FULL + BACKGROUND_DIR
144 #define CACHE_DIR_FULL APPCACHE_DIR_FULL + CACHE_DIR
145 #define RESOURCE_DIR_FULL APPCACHE_DIR_FULL + RESOURCE_DIR
147 #define COFIG_PATH_FULL APPDATA_DIR_FULL + COFIG_PATH
148 #define PLAYLIST_PATH_FULL APPDATA_DIR_FULL + PLAYLIST_PATH
149 #define NORMAL_DOWN_PATH_FULL APPDATA_DIR_FULL + NORMAL_DOWN_PATH
150 #define CLOUD_DOWN_PATH_FULL APPDATA_DIR_FULL + CLOUD_DOWN_PATH
151 #define CLOUD_UP_PATH_FULL APPDATA_DIR_FULL + CLOUD_UP_PATH
152 #define SEARCH_PATH_FULL APPDATA_DIR_FULL + SEARCH_PATH
153 #define USER_THEME_DIR_FULL APPDATA_DIR_FULL + USER_THEME_DIR
156 #define THEME_DIR_FULL TTK::applicationPath() + THEME_DIR
157 #define PLUGINS_DIR_FULL TTK::applicationPath() + PLUGINS_DIR
158 #define LANGUAGE_DIR_FULL TTK::applicationPath() + LANGUAGE_DIR
161 #define MAKE_CONFIG_DIR_FULL TTK::applicationPath() + MAKE_CONFIG_DIR
162 #define MAKE_TRANSFORM_PATH_FULL TTK::applicationPath() + MAKE_TRANSFORM_PATH
163 #define MAKE_PLAYER_PATH_FULL TTK::applicationPath() + MAKE_PLAYER_PATH
164 #define MAKE_GAIN_PATH_FULL TTK::applicationPath() + MAKE_GAIN_PATH
167 #define WINDOW_WIDTH_MIN 1000
168 #define WINDOW_HEIGHT_MIN 665
169 #define LEFT_SIDE_WIDTH_MIN 320
170 #define CONCISE_WIDTH_MIN LEFT_SIDE_WIDTH_MIN + 2
252 return m_url.isEmpty();
257 return m_bitrate < other.m_bitrate;
262 return m_bitrate == other.m_bitrate || m_url == other.m_url;
286 return m_id.isEmpty() || m_name.isEmpty();
319 const bool portable = QFile::exists(
MAIN_DIR_FULL +
"ttk_portable");
328 #endif // MUSICOBJECT_H
IndexProperty(int first, int second) noexcept
The class of the music song property.
bool isEmpty() const noexcept
MusicArtistProperty()=default
The class of the index property.
The class of the music artist property.
MusicSongProperty() noexcept
The namespace of the application object.
bool isEmpty() const noexcept
MusicArtistProperty(const QString &id, const QString &name) noexcept
bool operator==(const MusicSongProperty &other) const noexcept
static QString configPath()
bool operator<(const MusicSongProperty &other) const noexcept
TTK_DECLARE_LIST(IndexProperty)