|
a/src/upmpdutils.cxx |
|
b/src/upmpdutils.cxx |
|
... |
|
... |
159 |
UPNPXMLD(upnpClass, upnp:class, "object.item.audioItem.musicTrack");
|
159 |
UPNPXMLD(upnpClass, upnp:class, "object.item.audioItem.musicTrack");
|
160 |
UPNPXML(genre, upnp:genre);
|
160 |
UPNPXML(genre, upnp:genre);
|
161 |
UPNPXML(album, upnp:album);
|
161 |
UPNPXML(album, upnp:album);
|
162 |
UPNPXML(tracknum, upnp:originalTrackNumber);
|
162 |
UPNPXML(tracknum, upnp:originalTrackNumber);
|
163 |
|
163 |
|
164 |
string sfs = SoapHelp::i2s((samplefreq == 0 ? 44100 : samplefreq));
|
|
|
165 |
string lmime((mime.empty() ? "audio/mpeg" : mime));
|
|
|
166 |
|
|
|
167 |
ss << "<res " <<
|
164 |
ss << "<res " <<
|
168 |
"duration=\"" << upnpduration(duration_secs * 1000) << "\" " <<
|
165 |
"duration=\"" << upnpduration(duration_secs * 1000) << "\" " <<
|
|
|
166 |
"size=\"" << lltodecstr(size) << "\" " <<
|
|
|
167 |
"bitrate=\"" << SoapHelp::i2s(bitrate) << "\" " <<
|
169 |
"sampleFrequency=\"" << sfs << "\" " <<
|
168 |
"sampleFrequency=\"" << SoapHelp::i2s(samplefreq) << "\" " <<
|
170 |
"audioChannels=\"2\" " <<
|
169 |
"nrAudioChannels=\"" << SoapHelp::i2s(channels) << "\" " <<
|
171 |
"protocolInfo=\"http-get:*:" << lmime << ":*\"" << ">" <<
|
170 |
"protocolInfo=\"http-get:*:" << mime << ":* " << "\" >"<<
|
172 |
SoapHelp::xmlQuote(uri) <<
|
171 |
SoapHelp::xmlQuote(uri) <<
|
173 |
"</res>";
|
172 |
"</res>";
|
174 |
}
|
173 |
}
|
175 |
UPNPXML(artist, dc:creator);
|
174 |
UPNPXML(artist, dc:creator);
|
176 |
UPNPXML(artist, upnp:artist);
|
175 |
UPNPXML(artist, upnp:artist);
|
177 |
UPNPXML(artUri, upnp:albumArtURI);
|
176 |
UPNPXML(artUri, upnp:albumArtURI);
|
178 |
ss << "</" << typetag << ">";
|
177 |
ss << "</" << typetag << ">";
|
|
|
178 |
LOGDEB("UpSong::didl(): " << ss.str() << endl);
|
179 |
return ss.str();
|
179 |
return ss.str();
|
180 |
}
|
180 |
}
|
181 |
|
181 |
|
182 |
const string& headDIDL()
|
182 |
const string& headDIDL()
|
183 |
{
|
183 |
{
|