19 #include <QtCore/QTextStream>
21 #include <kapplication.h>
24 #include <kaboutdata.h>
25 #include <kcmdlineargs.h>
27 #include <kconfiggroup.h>
28 #include <kservicetypetrader.h>
33 int main(
int argc,
char *argv[])
36 "testfilter", 0, ki18n(
"testfilter"),
37 "0.1.0", ki18n(
"A utility for testing Jovie filter plugins."),
38 KAboutData::License_GPL, ki18n(
"Copyright 2005, Gary Cramblitt <garycramblitt@comcast.net>"));
39 aboutdata.addAuthor(ki18n(
"Gary Cramblitt"), ki18n(
"Maintainer"),
"garycramblitt@comcast.net");
41 KCmdLineArgs::init( argc, argv, &aboutdata );
44 KCmdLineOptions options;
45 options.add(
"+pluginName", ki18n(
"Name of a Jovie filter plugin (required)"));
47 options.add(
"talker <talker>", ki18n(
"Talker code passed to filter"),
"en");
49 options.add(
"appid <appID>", ki18n(
"D-Bus application ID passed to filter"),
"testfilter");
51 options.add(
"group <filterID>", ki18n(
"Config file group name passed to filter"),
"testfilter");
52 options.add(
"list", ki18n(
"Display list of available Filter PlugIns and exit"));
54 options.add(
"break", ki18n(
"Display tabs as \\t, otherwise they are removed"));
55 options.add(
"list", ki18n(
"Display list of available filter plugins and exit"));
56 KCmdLineArgs::addCmdLineOptions( options );
60 KCmdLineArgs *args = KCmdLineArgs::parsedArgs();
62 KService::List offers = KServiceTypeTrader::self()->query(QLatin1String(
"KTTSD/FilterPlugin"));
64 if (args->isSet(
"list"))
67 foreach (
const KService::Ptr service, offers)
69 kDebug() << service->name();
75 if (args->count() > 0) filterName = args->arg(0);
76 QString talker = args->getOption(
"talker");
77 QString appId = args->getOption(
"appid");
78 QString groupName = args->getOption(
"group");
80 if (filterName.isEmpty()) kError(1) <<
"No filter name given." << endl;
83 foreach (
const KService::Ptr service, offers)
85 if (service->name() == filterName)
89 KPluginLoader loader(service->library());
90 KPluginFactory *factory = loader.factory();
101 KConfig* config =
new KConfig(QLatin1String(
"kttsdrc"));
102 plugIn->
init( config, groupName);
103 QTextStream inp ( stdin, QIODevice::ReadOnly );
105 text = inp.readLine();
107 text = plugIn->
convert( text, talkerCode, appId );
108 if ( args->isSet(
"break") )
109 text.replace( QLatin1Char(
'\t'), QLatin1String(
"\\t") );
111 text.remove( QLatin1Char(
'\t'));
119 kError(2) <<
"Unable to create instance from library." << endl;
124 kError(3) <<
"Unable to create factory." << endl;
128 kError(4) <<
"Unable to find a plugin named " << filterName << endl;
virtual bool init(KConfig *config, const QString &configGroup)
Initialize the filter.
virtual QString convert(const QString &inputText, TalkerCode *talkerCode, const QString &appId)
Convert input, returning output.
int main(int argc, char *argv[])