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 }