~ubuntu-branches/ubuntu/precise/jovie/precise

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
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
/*************************************************** vim:set ts=4 sw=4 sts=4:
  This class holds the data for a single application.
  It contains the application's default settings.
  -------------------
  Copyright:
  (C) 2006 by Gary Cramblitt <garycramblitt@comcast.net>
  -------------------
  Original author: 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; either version 2 of the License, or
  (at your option) any later version.

  This program is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  GNU General Public License for more details.

  You should have received a copy of the GNU General Public License
  along with this program; if not, write to the Free Software
  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 ******************************************************************************/

#ifndef APPDATA_H
#define APPDATA_H

// Qt includes.
#include <QtCore/QList>

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

typedef QList<int> TJobList;
typedef TJobList* TJobListPtr;

class AppDataPrivate;
class AppData
{
public:
    /**
    * Constructs a new AppData object for the given DBUS AppId.
    * @param appId          DBUS sender id.
    */
    AppData(const QString& appId);
    
    /**
    * Destructor.
    */
    ~AppData();
    
    /**
    * Returns the appId for the application.
    */
    QString appId() const;
    
    /**
    * Sets the appId for the application.
    */
    void setAppId(const QString& appId);
    
    /**
    * Returns the friendly display name for the application.
    * These generally are not translated.
    */
    QString applicationName() const;
    
    /**
    * Sets the friendly display name for the application.
    * @param applicationName    Friendly application name.
    *
    * If not set, the AppId is used as the applicationName.
    */
    void setApplicationName(const QString& applicationName);
    
    /**
    * Returns the default talker code for the application.
    * Defaults to "", i.e., use the default talker configured in the system.
    */
    QString defaultTalker() const;
    
    /**
    * Sets the default talker code for the application.
    * @param defaultTalker  Talker code.
    */
    void setDefaultTalker(const QString& defaultTalker);
    
    /**
    * Returns the default priority (job type) for the application.
    */
    KSpeech::JobPriority defaultPriority() const;
    
    /**
    * Set the default priority (job type) for the application.
    * @param defaultPriority    Job Priority.
    */
    void setDefaultPriority(KSpeech::JobPriority defaultPriority);
    
    /**
    * Returns the GREP pattern that will be used as the sentence delimiter.
    *
    * The default delimiter is
      @verbatim
         ([\\.\\?\\!\\:\\;])\\s
      @endverbatim
    *
    * @see setSentenceDelimiter
    */
    QString sentenceDelimiter() const;

    /**
    * Sets the GREP pattern that will be used as the sentence delimiter.
    * @param sentenceDelimiter      A valid GREP pattern.
    *
    * Note that backward slashes must be escaped.
    *
    * @see sentenceDelimiter, sentenceparsing
    */
    void setSentenceDelimiter(const QString& sentenceDelimiter);

    /**
    * Returns the applications's current filtering enabled flag.
    */
    bool filteringOn() const;

    /**
    * Sets the applications's current filtering enabled flag.
    * @param filteringOn    True or False.
    */
    void setFilteringOn(bool filteringOn);
    
    /**
    * Returns whether the jobs of the application are currently paused.
    */
    bool isApplicationPaused() const;
    
    /**
    * Sets whether the jobs of the application are currently paused.
    * @param isApplicationPaused    True of False.
    */
    void setIsApplicationPaused(bool isApplicationPaused);
    
    /**
    * Returns the full path name of the XSLT file that performs
    * HTML filtering on jobs for the application.
    */
    QString htmlFilterXsltFile() const;
    
    /**
    * Sets the full path name of the XSLT file that performs
    * HTML filtering on jobs for the application.
    * @param filename       Name of the XSLT file.  Full path name.
    */
    void setHtmlFilterXsltFile(const QString& filename);
    
    /**
    * Returns the full path name of the XSLT file that performs
    * SSML filtering on jobs for the application.
    */
    QString ssmlFilterXsltFile() const;
    
    /**
    * Sets the full path name of the XSLT file that performs
    * SSML filtering on jobs for the application.
    * @param filename       Name of the XSLT file.  Full path name.
    */
    void setSsmlFilterXsltFile(const QString& filename);
    
    /**
    * Returns if KTTSD should attempt to automatically configure
    * talkers to meet requested talker attributes.
    */
    bool autoConfigureTalkersOn() const;
    
    /**
    * Sets whether KTTSD should attempt to automatically configure
    * talkers to meet requested talker attributes.
    * @param autoConfigureTalkersOn True if autoconfigure should be on.
    */
    void setAutoConfigureTalkersOn(bool autoConfigureTalkersOn);
    
    /**
    * Returns whether this application is a KTTS System Manager.
    * When an application is a System Manager, commands affect all jobs.
    * For example, a pause() command will pause all jobs of all applications.
    * Defaults to False.
    */
    bool isSystemManager() const;
    
    /**
    * Sets whether this application is a KTTS System Manager.
    * @param isSystemManager    True or False.
    */
    void setIsSystemManager(bool isSystemManager);
    
    /**
    * Return the JobNum of the last job queued by the application.
    * 0 if none.
    */
    int lastJobNum() const;
    
    /**
    * List of jobs for this app.  Caller may add or delete jobs,
    * but must not delete the list.
    */
    TJobListPtr jobList() const;
    
    /**
    * True when the app has exited.
    */
    bool unregistered() const;
    void setUnregistered(bool unregistered);

    // void debugDump();

private:
    AppDataPrivate* d;    
};

#endif // APPDATA_H