summaryrefslogtreecommitdiffstats
path: root/kttsd/plugins/command/commandconf.h
blob: 4607718fe20a10515c1df0ae378b36df47f2e1cc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
/***************************************************** vim:set ts=4 sw=4 sts=4:
  Configuration for the Command Plug in
  -------------------
  Copyright : (C) 2002,2004 by Gunnar Schmi Dt and Gary Cramblitt
  -------------------
  Original author: Gunnar Schmi Dt <kmouth@schmi-dt.de>
  Current Maintainer: Gary Cramblitt <garycramblitt@comcast.net>
 ******************************************************************************/

/***************************************************************************
 *                                                                         *
 *   This program is free software; you can redistribute it and/or modify  *
 *   it under the terms of the GNU General Public License as published by  *
 *   the Free Software Foundation; version 2 of the License.               *
 *                                                                         *
 ***************************************************************************/

#ifndef _COMMANDCONF_H_
#define _COMMANDCONF_H_

// TQt includes.
#include <tqstring.h>
#include <tqstringlist.h>

// KDE includes.
#include <kconfig.h>

// KTTS includes.
#include <pluginconf.h>

// Command Plugin includes.
#include "commandconfwidget.h"

class CommandProc;
class KProgressDialog;

class CommandConf : public PlugInConf {
    Q_OBJECT
    TQ_OBJECT

    public:
        /** Constructor */
        CommandConf( TQWidget* tqparent = 0, const char* name = 0, const TQStringList &args = TQStringList());

        /** Destructor */
        ~CommandConf();

        /** This method is invoked whenever the module should read its 
        * configuration (most of the times from a config file) and update the 
        * user interface. This happens when the user clicks the "Reset" button in 
        * the control center, to undo all of his changes and restore the currently 
        * valid settings. NOTE that this is not called after the modules is loaded,
        * so you probably want to call this method in the constructor.
        */
        void load(KConfig *config, const TQString &configGroup);

        /** This function gets called when the user wants to save the settings in 
        * the user interface, updating the config files or wherever the 
        * configuration is stored. The method is called when the user clicks "Apply" 
        * or "Ok". 
        */
        void save(KConfig *config, const TQString &configGroup);

        /** This function is called to set the settings in the module to sensible
        * default values. It gets called when hitting the "Default" button. The 
        * default values should probably be the same as the ones the application 
        * uses when started without a config file. 
        */
        void defaults();

        /**
        * This function informs the plugin of the desired language to be spoken
        * by the plugin.  The plugin should attempt to adapt itself to the
        * specified language code, choosing sensible defaults if necessary.
        * If the passed-in code is TQString(), no specific language has
        * been chosen.
        * @param lang        The desired language code or Null if none.
        *
        * If the plugin is unable to support the desired language, that is OK.
        * Language codes are given by ISO 639-1 and are in lowercase.
        * The code may also include an ISO 3166 country code in uppercase
        * separated from the language code by underscore (_).  For
        * example, en_GB.  If your plugin supports the given language, but
        * not the given country, treat it as though the country
        * code were not specified, i.e., adapt to the given language.
        */
        void setDesiredLanguage(const TQString &lang);

        /**
        * Return fully-specified talker code for the configured plugin.  This code
        * uniquely identifies the configured instance of the plugin and distinquishes
        * one instance from another.  If the plugin has not been fully configured,
        * i.e., cannot yet synthesize, return TQString().
        * @return            Fully-specified talker code.
        */
        TQString getTalkerCode();

    private slots:
        void configChanged(){
            // kdDebug() << "CommandConf::configChanged: Running" << endl;
            emit changed(true);
        };
        void slotCommandTest_clicked();
        void slotSynthFinished();
        void slotSynthStopped();

    private:
        TQString m_languageCode;

        // Configuration Widget.
        CommandConfWidget* m_widget;

        // Command synthesizer.
        CommandProc* m_commandProc;
        // Synthesized wave file name.
        TQString m_waveFile;
        // Progress dialog.
        KProgressDialog* m_progressDlg;
        // Codec list.
        TQStringList m_codecList;
};
#endif      // _COMMANDCONF_H_