diff options
Diffstat (limited to 'khotkeys/shared/voices.h')
-rw-r--r-- | khotkeys/shared/voices.h | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/khotkeys/shared/voices.h b/khotkeys/shared/voices.h new file mode 100644 index 000000000..b0193e7c2 --- /dev/null +++ b/khotkeys/shared/voices.h @@ -0,0 +1,83 @@ +/**************************************************************************** + + KHotKeys + + Copyright (C) 2005 Olivier Goffart <ogoffart @ kde.org> + + Distributed under the terms of the GNU General Public License version 2. + +****************************************************************************/ + +#ifndef VOICES_H_ +#define VOICES_H_ + +#include <qwidget.h> +#include <kshortcut.h> + +class Sound; +class QTimer; +class KGlobalAccel; + +namespace KHotKeys +{ + +class Voice; +class SoundRecorder; + +class Voice_trigger; +class VoiceSignature; + + +class KDE_EXPORT Voice : public QObject + { + Q_OBJECT + public: + Voice( bool enabled_P, QObject* parent_P ); + virtual ~Voice(); + void enable( bool enable_P ); + + void register_handler( Voice_trigger* ); + void unregister_handler( Voice_trigger* ); +// bool x11Event( XEvent* e ); + + void set_shortcut( const KShortcut &k); + + /** + * return QString::null is a new signature is far enough from others signature + * otherwise, return the stringn which match. + */ + QString isNewSoundFarEnough(const VoiceSignature& s, const QString& currentTrigger); + + bool doesVoiceCodeExists(const QString &s); + + public slots: + void record_start(); + void record_stop(); + + private slots: + void slot_sound_recorded( const Sound & ); + void slot_key_pressed(); + void slot_timeout(); + + signals: + void handle_voice( const QString &voice ); + private: + + bool _enabled; + bool _recording; + + QValueList<Voice_trigger *> _references; + SoundRecorder *_recorder; + + KShortcut _shortcut; + KGlobalAccel *_kga; + + QTimer *_timer; + }; + + +KDE_EXPORT extern Voice* voice_handler; + +} // namespace KHotKeys + +#endif |