Mercurial > hg > sonic-visualiser
comparison main/MainWindow.cpp @ 374:11f804c7582a macness_autotpl
method to map from genre string to template choice; and to use it when importing from itunes
author | Dan Stowell <dan.stowell@eecs.qmul.ac.uk> |
---|---|
date | Fri, 15 Oct 2010 13:30:41 +0100 |
parents | ca9f27734349 |
children | 62e9f62752e1 |
comparison
equal
deleted
inserted
replaced
373:80d91b72ae7d | 374:11f804c7582a |
---|---|
2159 tr("<b>File open failed</b><p>Audio file \"%1\" could not be opened").arg(path)); | 2159 tr("<b>File open failed</b><p>Audio file \"%1\" could not be opened").arg(path)); |
2160 } | 2160 } |
2161 } | 2161 } |
2162 } | 2162 } |
2163 | 2163 |
2164 void | |
2165 MainWindow::initGenreToTemplateMap() | |
2166 { | |
2167 // Note that the set of templates must always be kept small, for reasons of usability, manageability, code size. | |
2168 | |
2169 // TODO add all the standard ID3 + winamp genre labels (lowercased). | |
2170 | |
2171 m_genreToTemplateMap["classical"] = "classical"; | |
2172 | |
2173 // 'dance' template is for things where beat and rhythm are particularly important | |
2174 m_genreToTemplateMap["dance"] = "dance"; | |
2175 m_genreToTemplateMap["disco"] = "dance"; | |
2176 m_genreToTemplateMap["electronic"] = "dance"; | |
2177 m_genreToTemplateMap["funk"] = "dance"; | |
2178 m_genreToTemplateMap["hip-hop"] = "dance"; | |
2179 m_genreToTemplateMap["industrial"] = "dance"; | |
2180 m_genreToTemplateMap["rap"] = "dance"; | |
2181 m_genreToTemplateMap["techno"] = "dance"; | |
2182 | |
2183 m_genreToTemplateMap["acoustic"] = "melodic"; | |
2184 m_genreToTemplateMap["alternative"] = "melodic"; // ??? | |
2185 m_genreToTemplateMap["blues"] = "melodic"; | |
2186 m_genreToTemplateMap["classic rock"] = "melodic"; | |
2187 m_genreToTemplateMap["country"] = "melodic"; | |
2188 m_genreToTemplateMap["grunge"] = "melodic"; | |
2189 m_genreToTemplateMap["jazz"] = "melodic"; | |
2190 m_genreToTemplateMap["metal"] = "melodic"; | |
2191 m_genreToTemplateMap["new age"] = "melodic"; | |
2192 m_genreToTemplateMap["oldies"] = "melodic"; | |
2193 m_genreToTemplateMap["other"] = "melodic"; | |
2194 m_genreToTemplateMap["pop"] = "melodic"; | |
2195 m_genreToTemplateMap["r&b"] = "melodic"; | |
2196 m_genreToTemplateMap["reggae"] = "melodic"; | |
2197 m_genreToTemplateMap["rock"] = "melodic"; | |
2198 m_genreToTemplateMap["ska"] = "melodic"; | |
2199 m_genreToTemplateMap["soundtrack"] = "melodic"; | |
2200 } | |
2201 | |
2202 | |
2203 QString | |
2204 MainWindow::templateNameFromGenre(QString genre){ | |
2205 if(m_genreToTemplateMap.isEmpty()) | |
2206 initGenreToTemplateMap(); | |
2207 | |
2208 QString tplName = m_genreToTemplateMap.value(genre.toLower(), ""); | |
2209 | |
2210 //return tplName; | |
2211 return QString("testtemplate"); // TODO TEMPORARY - remove once templates are made | |
2212 } | |
2213 | |
2214 | |
2164 #ifdef Q_WS_MAC | 2215 #ifdef Q_WS_MAC |
2165 void | 2216 void |
2166 MainWindow::importITunesAudio() | 2217 MainWindow::importITunesAudio() |
2167 { | 2218 { |
2168 QStringList nowPlaying = iTunesNowPlaying(); | 2219 QStringList nowPlaying = iTunesNowPlaying(); |
2169 QString path = nowPlaying.at(0); | 2220 QString path = nowPlaying.at(0); |
2170 QString genre = (nowPlaying.size() > 1) ? nowPlaying.at(1) : ""; | 2221 QString genre = (nowPlaying.size() > 1) ? nowPlaying.at(1) : ""; |
2171 std::cerr << "MainWindow::importITunesAudio(): genre is " << genre.toStdString() << std::endl; | 2222 std::cerr << "MainWindow::importITunesAudio(): genre is " << genre.toStdString() << std::endl; |
2223 QString tplName = templateNameFromGenre(genre); | |
2172 | 2224 |
2173 if (path != "") { | 2225 if (path != "") { |
2174 if (openAudio(path, ReplaceMainModel) == FileOpenFailed) { | 2226 if (openAudio(path, ReplaceMainModel, tplName) == FileOpenFailed) { |
2175 emit hideSplash(); | 2227 emit hideSplash(); |
2176 QMessageBox::critical(this, tr("Failed to open file"), | 2228 QMessageBox::critical(this, tr("Failed to open file"), |
2177 tr("<b>File open failed</b><p>Audio file \"%1\" could not be opened").arg(path)); | 2229 tr("<b>File open failed</b><p>Audio file \"%1\" could not be opened").arg(path)); |
2178 } | 2230 } |
2179 } | 2231 } |