GstEnginePipeline: Parse album from stream title tag

Fixes #1023
This commit is contained in:
Jonas Kvinge
2022-08-30 16:56:08 +02:00
parent 34c7225ab7
commit 32f9c4e670

View File

@@ -1176,29 +1176,30 @@ void GstEnginePipeline::TagMessageReceived(GstMessage *msg) {
bundle.lyrics = ParseStrTag(taglist, GST_TAG_LYRICS); bundle.lyrics = ParseStrTag(taglist, GST_TAG_LYRICS);
if (!bundle.title.isEmpty() && bundle.artist.isEmpty() && bundle.album.isEmpty()) { if (!bundle.title.isEmpty() && bundle.artist.isEmpty() && bundle.album.isEmpty()) {
QStringList title_splitted;
if (bundle.title.contains(" - ")) { if (bundle.title.contains(" - ")) {
QStringList title_splitted = bundle.title.split(" - "); title_splitted = bundle.title.split(" - ");
bundle.artist = title_splitted.first().trimmed();
bundle.title = title_splitted.last().trimmed();
} }
else if (bundle.title.contains('~') && bundle.title.count('~') >= 2) { else if (bundle.title.contains('~')) {
QStringList title_splitted = bundle.title.split('~'); title_splitted = bundle.title.split('~');
int i = 1; }
for (const QString &part : title_splitted) { if (!title_splitted.isEmpty() && title_splitted.count() >= 2) {
int i = 0;
for (const QString &title_part : title_splitted) {
++i;
switch (i) { switch (i) {
case 1: case 1:
bundle.artist = part; bundle.artist = title_part.trimmed();
break; break;
case 2: case 2:
bundle.title = part; bundle.title = title_part.trimmed();
break; break;
case 3: case 3:
bundle.album = part; bundle.album = title_part.trimmed();
break; break;
default: default:
break; break;
} }
++i;
} }
} }
} }