Exemple #1
0
		// 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));
}
Exemple #2
0
static eString getWapZapContent(eString path)
{
	eString tpath, result;

	unsigned int pos = 0, lastpos = 0, temp = 0;

	if ((path.find(";", 0)) == eString::npos)
		path = ";" + path;

	while ((pos = path.find(";", lastpos)) != eString::npos)
	{
		lastpos = pos + 1;
		if ((temp = path.find(";", lastpos)) != eString::npos)
			tpath = path.mid(lastpos, temp - lastpos);
		else
			tpath = path.mid(lastpos, strlen(path.c_str()) - lastpos);

		eServiceReference current_service = string2ref(tpath);
		eServiceInterface *iface = eServiceInterface::getInstance();

		// first pass thru is to get all user bouquets
		eWapNavigatorListDirectory navlist(result, path, tpath, *iface);
		Signal1<void, const eServiceReference&> signal;
		signal.connect(slot(navlist, &eWapNavigatorListDirectory::addEntry));
		iface->enterDirectory(current_service, signal);
		eDebug("entered");
		iface->leaveDirectory(current_service);
		eDebug("exited");
	}

	return result;
}
Exemple #3
0
std::map<eString, eString> getRequestOptions(eString opt, char delimiter)
{
	std::map<eString, eString> result;

	if (opt[0] == '?')
		opt = opt.mid(1);

	while (opt.length())
	{
		unsigned int e = opt.find("=");
		if (e == eString::npos)
			e = opt.length();
		unsigned int a = opt.find(delimiter, e);
		if (a == eString::npos)
			a = opt.length();
		eString n = opt.left(e);

		unsigned int b = opt.find(delimiter, e + 1);
		if (b == eString::npos)
			b = (unsigned)-1;
		eString r = httpUnescape(opt.mid(e + 1, b - e - 1));
		result.insert(std::pair<eString, eString>(n, r));
		opt = opt.mid(a + 1);
	}
	return result;
}
Exemple #4
0
eString buildShortServiceName( const eString &str )
{
	eString tmp;
	static char stropen[3] = { 0xc2, 0x86, 0x00 };
	static char strclose[3] = { 0xc2, 0x87, 0x00 };
	unsigned int open=eString::npos-1;

	while ( (open = str.find(stropen, open+2)) != eString::npos ) {
	        unsigned int close = str.find(strclose, open);
	        if ( close != eString::npos )
			tmp += str.mid( open+2, close-(open+2) );
	}
	if ( tmp == "" )
		tmp = str;

	return tmp;
}
Exemple #5
0
static void writeSecretString( const eString &str )
{
	FILE *f = fopen("/etc/ppp/pap-secrets", "w");
	if (!f)
		eFatal("couldn't create /etc/ppp/pap-secrets");
	eString tmp;
	unsigned int pos =
		str.find('*');
	if ( pos != eString::npos )
	{
		tmp = '\"' + str.left(pos) + "\"\t*\t\"" +
			str.mid(pos+1, str.length()-pos ) + "\"\n";
	}
	fwrite( tmp.c_str(), 1, tmp.length(), f );

	fclose(f);
}
void eServiceHandlerExternal::addFile(void *node, const eString &filename)
{
	for (unsigned int i = 0; i < extensionFileList.size(); i++)
	{
		int matchsize = extensionFileList[i].pattern.length();
		if (filename.right(matchsize).upper() == extensionFileList[i].pattern.upper())
		{
			eServiceReference ref(id, 0, filename);
			eString filenamestripped = filename;

			uint i = filename.find_last_of('/');
			if (i != eString::npos)
			{
				filenamestripped = filename.mid(i + 1, filename.length());
			}
			ref.descr = filenamestripped.c_str();
			eServiceFileHandler::getInstance()->addReference(node, ref);
			eDebug("Add file: %s", filename.c_str());
			return;
		}
	}
}
Exemple #7
0
	void eTOnlineDialog::init_eTOnlineDialog(eString Login)
	{
		setText("T - Online");
		cmove(ePoint(140,140));
		cresize(eSize(450,270));

		eLabel *l = new eLabel(this);
		l->move(ePoint(10,10));
		l->resize(eSize(220,30));
		l->setText("Anschlusskennung:");

		Kennung = new eTextInputField(this,l);
		Kennung->move(ePoint(230,10));
		Kennung->resize(eSize(200,35));
		Kennung->setMaxChars(12);
		Kennung->setUseableChars("1234567890");
		Kennung->loadDeco();
		Kennung->setHelpText("Anschlusskennung eingeben mit OK (12 Stellen)");
		Kennung->setEditHelpText("Anschlusskennung eingeben (0..9, ok)");

		l = new eLabel(this);
		l->move(ePoint(10,60));
		l->resize(eSize(220,30));
		l->setText("T-Online Nummer:");

		tOnlineNummer = new eTextInputField(this,l);
		tOnlineNummer->move(ePoint(230,60));
		tOnlineNummer->resize(eSize(200,35));
		tOnlineNummer->setMaxChars(12);
		tOnlineNummer->setUseableChars("1234567890");
		tOnlineNummer->loadDeco();
		tOnlineNummer->setHelpText("T-Online Nummer eingeben mit OK (12 Stellen)");
		tOnlineNummer->setEditHelpText("T-Online Nummer eingeben (0..9, ok)");

		l = new eLabel(this);
		l->move(ePoint(10,110));
		l->resize(eSize(220,30));
		l->setText("Mitbenutzernummer:");

		Mitbenutzer = new eTextInputField(this,l);
		Mitbenutzer->move(ePoint(230,110));
		Mitbenutzer->resize(eSize(70,35));
		Mitbenutzer->setMaxChars(4);
		Mitbenutzer->setUseableChars("1234567890");
		Mitbenutzer->loadDeco();
		Mitbenutzer->setHelpText("Mitbenutzernummer eingeben mit OK (4 Stellen)");
		Mitbenutzer->setEditHelpText("Mitbenutzernummer eingeben (0..9, ok)");

		ok = new eButton(this);
		ok->move(ePoint(10,160));
		ok->resize(eSize(170,40));
		ok->setShortcut("green");
		ok->setShortcutPixmap("green");
		ok->setText("speichern");
		ok->setHelpText("Daten übernehmen und Fenster schliessen");
		ok->loadDeco();
		CONNECT(ok->selected, eWidget::accept);

		sbar = new eStatusBar(this);
		sbar->move( ePoint(0, clientrect.height()-50) );
		sbar->resize( eSize( clientrect.width(), 50) );
		sbar->loadDeco();

		if (Login)
		{
			unsigned int pos1 = Login.find("#"),
									pos2 = Login.find("@");
			if ( pos1 != eString::npos && pos2 != eString::npos )
			{
				Kennung->setText(Login.left(12));
				tOnlineNummer->setText(Login.mid(12,12));
				Mitbenutzer->setText(Login.mid(pos1+1,4));
			}
		}
	}