예제 #1
0
파일: servicemp3.cpp 프로젝트: TitanNit/tdt
		// we got (http) metadata.
void eMP3Decoder::metaDataUpdated(eString meta)
{
	{
		singleLock s(lock);  // must protect access on metadata array
		eString streamTitle, streamUrl;
		if (meta.left(6) == "Stream")
			while (!meta.empty())
			{
				unsigned int eq=meta.find('=');
				if (eq == eString::npos)
						break;
				eString left=meta.left(eq);
				meta=meta.mid(eq+1); // skip until =
				eq=meta.find(';');
				if (eq == eString::npos)
					break;
				eString right=meta.left(eq);
				meta=meta.mid(eq+1);
				if (left=="StreamTitle")
					streamTitle=right;
				else if (left == "StreamUrl")
					streamUrl=right;
				else
					eDebug("unknown tag: %s = %s", left.c_str(), right.c_str());			
			}
		else
			streamTitle=meta;

		metadata[0]=streamTitle;
		metadata[1]=streamUrl;
	}

	handler->messages.send(eServiceHandlerMP3::eMP3DecoderMessage(eServiceHandlerMP3::eMP3DecoderMessage::infoUpdated));
}