/**************************************************************************** KHotKeys Copyright (C) 2005 Olivier Goffart Distributed under the terms of the GNU General Public License version 2. ****************************************************************************/ #ifndef VOICES_H_ #define VOICES_H_ #include #include 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 _references; SoundRecorder *_recorder; KShortcut _shortcut; KGlobalAccel *_kga; QTimer *_timer; }; KDE_EXPORT extern Voice* voice_handler; } // namespace KHotKeys #endif