2 // C++ Implementation: kttsdlibtalker2
7 // Author: Robert Vogl <voglrobe@lapislazuli>, (C) 2004
9 // Copyright: See COPYING file that comes with this distribution
13 #include <unistd.h> //sleep
16 #include <QtDBus/QtDBus>
21 // App specific includes
22 #include "kttsdlibtalker2.h"
23 #include <ktoolinvocation.h>
25 kttsdlibtalker2::kttsdlibtalker2(QObject
*parent
, const char *name
)
32 kttsdlibtalker2::~kttsdlibtalker2()
37 void kttsdlibtalker2::KTTSD_init(KApplication
*Appl
)
40 kDebug(100200) << "kttsdlibtalker2::KTTSD_init()";
42 bool kttsdRunning
= (QDBus::sessionBus().busService()->nameHasOwner("org.kde.kttsd"));
45 // kDebug() << "KCMKttsMgr::slotEnableKttsd_toggled:: Starting KTTSD";
47 if (KToolInvocation::startServiceByDesktopName("kttsd", QStringList(), &error
))
49 kDebug() << "Starting KTTSD failed with message " << error
;
51 m_kspeech
= (org::kde::KSpeech
*)(QDBus::sessionBus().findInterface
<org::kde::KSpeech
>("org.kde.kttsd", "/org/kde/KSpeech"));
52 m_kspeech
->setParent(this);
53 // Connect KTTSD DBUS signals to our slots.
54 connect(m_kspeech
, SIGNAL(textStarted(const QString
&, uint
)),
55 this, SLOT(textStarted(const QString
&, uint
)));
56 connect(m_kspeech
, SIGNAL(textFinished(const QString
&, uint
)),
57 this, SLOT(textFinished(const QString
&, uint
)));
58 connect(m_kspeech
, SIGNAL(textStopped(const QString
&, uint
)),
59 this, SLOT(textStopped(const QString
&, uint
)));
60 m_appId
= QDBus::sessionBus().baseService();
62 kDebug(100200) << " successfully registered. appId: " << m_appId
;
66 uint
kttsdlibtalker2::KTTSD_setText(const QString
&text
, QString lang
)
68 kDebug(100200) << "kttsdlibtalker2::KTTSD_setText()";
69 uint jobNum
= m_kspeech
->setText(text
, lang
);
74 void kttsdlibtalker2::KTTSD_startText(uint jobNum
)
76 kDebug(100200) << "kttsdlibtalker2::KTTSD_startText()";
77 m_kspeech
->startText(jobNum
);
81 void kttsdlibtalker2::KTTSD_stopText(uint jobNum
)
83 kDebug(100200) << "kttsdlibtalker2::KTTSD_stopText()";
84 m_kspeech
->stopText(jobNum
);
88 void kttsdlibtalker2::KTTSD_pauseText(uint jobNum
)
90 kDebug(100200) << "kttsdlibtalker2::KTTSD_pauseText()";
91 m_kspeech
->pauseText(jobNum
);
95 void kttsdlibtalker2::KTTSD_resumeText(uint jobNum
)
97 kDebug(100200) << "kttsdlibtalker2::KTTSD_resumeText()";
98 m_kspeech
->resumeText(jobNum
);
102 uint
kttsdlibtalker2::KTTSD_moveRelTextSentence(const int n
, const uint jobNum
)
104 kDebug(100200) << "kttsdlibtalker2::KTTSD_moveRelTextSentence()";
105 uint seqNum
= m_kspeech
->moveRelTextSentence(n
, jobNum
);
110 void kttsdlibtalker2::KTTSD_removeText(uint jobNum
)
112 kDebug(100200) << "kttsdlibtalker2::KTTSD_removeText()";
113 m_kspeech
->removeText(jobNum
);
117 int kttsdlibtalker2::KTTSD_getTextJobState(uint jobNum
)
124 int kttsdlibtalker2::KTTSD_getCurrentTextJob()
132 ////////////////////////////////////////////
134 ////////////////////////////////////////////
136 Q_ASYNC
void kttsdlibtalker2::textStarted(const QString
&appID
,
139 kDebug(100200) << "*** kttsdlibtalker2::textStarted()";
140 if ( appID
!= m_appId
)
142 emit
signalTextStarted(jobNum
);
146 Q_ASYNC
void kttsdlibtalker2::textFinished(const QString
&appID
,
149 kDebug(100200) << "*** kttsdlibtalker2::textFinished()";
150 if ( appID
!= m_appId
)
152 emit
signalTextFinished(jobNum
);
156 Q_ASYNC
void kttsdlibtalker2::textStopped(const QString
&appID
,
159 kDebug(100200) << "*** kttsdlibtalker2::textStopped()";
160 if ( appID
!= m_appId
)
162 emit
signalTextStopped(jobNum
);
165 #include "kttsdlibtalker2.moc"