2097d305c
김태훈
소리 재생 기능 추가
|
1
|
#include "soundplayer.h"
|
2c27c52f8
김태훈
볼륨 조절 추가
|
2
|
#include "system.h"
|
2097d305c
김태훈
소리 재생 기능 추가
|
3
|
|
a34ceb32b
김태훈
볼륨 설정에 따라 음향 볼륨 설정
|
4
|
#include "config.h"
|
d75742e49
김태훈
음향 효과 개선
|
5
|
#include "unistd.h"
|
a34ceb32b
김태훈
볼륨 설정에 따라 음향 볼륨 설정
|
6
|
|
14b44676e
김태훈
음원 재생 루틴 개선
|
7
8
9
|
namespace {
QThread playThread;
}
|
2097d305c
김태훈
소리 재생 기능 추가
|
10
|
|
14b44676e
김태훈
음원 재생 루틴 개선
|
11
12
|
SoundPlayWorker::SoundPlayWorker()
{
|
d75742e49
김태훈
음향 효과 개선
|
13
14
15
16
|
repeat_ = false;
proc = new QProcess(this);
connect(proc, SIGNAL(finished(int)), SLOT(onFinished()));
|
14b44676e
김태훈
음원 재생 루틴 개선
|
17
18
19
|
}
void SoundPlayWorker::play(const QString &filename)
|
2097d305c
김태훈
소리 재생 기능 추가
|
20
|
{
|
d75742e49
김태훈
음향 효과 개선
|
21
|
if (proc->state() != QProcess::NotRunning)
|
2097d305c
김태훈
소리 재생 기능 추가
|
22
|
{
|
d75742e49
김태훈
음향 효과 개선
|
23
24
|
proc->terminate();
proc->waitForFinished();
|
2097d305c
김태훈
소리 재생 기능 추가
|
25
|
}
|
d75742e49
김태훈
음향 효과 개선
|
26
27
|
proc->start(QString("aplay"), QStringList(filename));
proc->waitForStarted();
|
2097d305c
김태훈
소리 재생 기능 추가
|
28
|
}
|
14b44676e
김태훈
음원 재생 루틴 개선
|
29
30
|
void SoundPlayWorker::playClick()
{
|
d75742e49
김태훈
음향 효과 개선
|
31
32
|
play("/falinux/sounds/button.wav");
}
|
2c27c52f8
김태훈
볼륨 조절 추가
|
33
|
|
d75742e49
김태훈
음향 효과 개선
|
34
35
36
37
38
39
40
41
42
43
|
void SoundPlayWorker::setVolume(int volume)
{
System::setVolume(volume);
}
void SoundPlayWorker::repeat(const QString &filename)
{
repeat_ = true;
play(filename);
}
|
2c27c52f8
김태훈
볼륨 조절 추가
|
44
|
|
d75742e49
김태훈
음향 효과 개선
|
45
46
47
48
|
void SoundPlayWorker::stop()
{
repeat_ = false;
if (proc->state() != QProcess::NotRunning)
|
14b44676e
김태훈
음원 재생 루틴 개선
|
49
|
{
|
d75742e49
김태훈
음향 효과 개선
|
50
51
|
proc->terminate();
proc->waitForFinished();
|
14b44676e
김태훈
음원 재생 루틴 개선
|
52
|
}
|
14b44676e
김태훈
음원 재생 루틴 개선
|
53
|
}
|
d75742e49
김태훈
음향 효과 개선
|
54
|
void SoundPlayWorker::onFinished()
|
a34ceb32b
김태훈
볼륨 설정에 따라 음향 볼륨 설정
|
55
|
{
|
d75742e49
김태훈
음향 효과 개선
|
56
57
|
if (repeat_)
proc->start();
|
a34ceb32b
김태훈
볼륨 설정에 따라 음향 볼륨 설정
|
58
|
}
|
14b44676e
김태훈
음원 재생 루틴 개선
|
59
60
61
62
63
64
65
|
SoundPlayer *SoundPlayer::instance = 0;
SoundPlayer::SoundPlayer()
{
instance = this;
SoundPlayWorker *w = new SoundPlayWorker;
w->moveToThread(&playThread);
|
a34ceb32b
김태훈
볼륨 설정에 따라 음향 볼륨 설정
|
66
|
connect(this, SIGNAL(setVolume(int)), w, SLOT(setVolume(int)));
|
14b44676e
김태훈
음원 재생 루틴 개선
|
67
68
|
connect(this, SIGNAL(operate(QString)), w, SLOT(play(QString)));
connect(this, SIGNAL(click()), w, SLOT(playClick()));
|
d75742e49
김태훈
음향 효과 개선
|
69
70
|
connect(this, SIGNAL(operateRepeat(QString)), w, SLOT(repeat(QString)));
connect(this, SIGNAL(operateStop()), w, SLOT(stop()));
|
14b44676e
김태훈
음원 재생 루틴 개선
|
71
72
|
playThread.start();
|
098a9d5bf
김태훈
컴파일 오류 수정
|
73
|
}
|
14b44676e
김태훈
음원 재생 루틴 개선
|
74
75
76
|
void SoundPlayer::play(const QString &filename)
{
|
a34ceb32b
김태훈
볼륨 설정에 따라 음향 볼륨 설정
|
77
78
79
80
81
82
83
|
Define::config_item item = Config::getInstance()->getConfigValue(Define::config_marster_vol);
switch (item.d32)
{
case 0:
emit setVolume(0);
break;
case 1:
|
d75742e49
김태훈
음향 효과 개선
|
84
|
emit setVolume(60);
|
a34ceb32b
김태훈
볼륨 설정에 따라 음향 볼륨 설정
|
85
86
|
break;
case 2:
|
d75742e49
김태훈
음향 효과 개선
|
87
|
emit setVolume(70);
|
a34ceb32b
김태훈
볼륨 설정에 따라 음향 볼륨 설정
|
88
89
|
break;
case 3:
|
d75742e49
김태훈
음향 효과 개선
|
90
|
emit setVolume(80);
|
a34ceb32b
김태훈
볼륨 설정에 따라 음향 볼륨 설정
|
91
92
|
break;
case 4:
|
d75742e49
김태훈
음향 효과 개선
|
93
|
emit setVolume(85);
|
a34ceb32b
김태훈
볼륨 설정에 따라 음향 볼륨 설정
|
94
95
|
break;
case 5:
|
d75742e49
김태훈
음향 효과 개선
|
96
|
emit setVolume(90);
|
a34ceb32b
김태훈
볼륨 설정에 따라 음향 볼륨 설정
|
97
98
|
break;
case 6:
|
d75742e49
김태훈
음향 효과 개선
|
99
|
emit setVolume(95);
|
a34ceb32b
김태훈
볼륨 설정에 따라 음향 볼륨 설정
|
100
101
102
103
104
105
106
107
|
break;
case 7:
emit setVolume(100);
break;
default:
emit setVolume(0);
break;
}
|
14b44676e
김태훈
음원 재생 루틴 개선
|
108
109
110
111
112
|
emit operate(filename);
}
void SoundPlayer::emitClick()
{
|
5295adeb0
김태훈
키패드 볼륨 설정 적용
|
113
|
Define::config_item item = Config::getInstance()->getConfigValue(Define::config_keypad_sound2);
|
a34ceb32b
김태훈
볼륨 설정에 따라 음향 볼륨 설정
|
114
115
116
117
118
119
|
switch (item.d32)
{
case 0:
emit setVolume(0);
break;
case 1:
|
d75742e49
김태훈
음향 효과 개선
|
120
|
emit setVolume(75);
|
a34ceb32b
김태훈
볼륨 설정에 따라 음향 볼륨 설정
|
121
122
|
break;
case 2:
|
d75742e49
김태훈
음향 효과 개선
|
123
|
emit setVolume(80);
|
a34ceb32b
김태훈
볼륨 설정에 따라 음향 볼륨 설정
|
124
125
|
break;
case 3:
|
d75742e49
김태훈
음향 효과 개선
|
126
|
emit setVolume(85);
|
a34ceb32b
김태훈
볼륨 설정에 따라 음향 볼륨 설정
|
127
128
|
break;
case 4:
|
d75742e49
김태훈
음향 효과 개선
|
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
|
emit setVolume(90);
break;
case 5:
emit setVolume(95);
break;
case 6:
emit setVolume(98);
break;
case 7:
emit setVolume(100);
break;
default:
emit setVolume(0);
break;
}
emit click();
}
void SoundPlayer::repeat(const QString &filename)
{
Define::config_item item = Config::getInstance()->getConfigValue(Define::config_marster_vol);
switch (item.d32)
{
case 0:
emit setVolume(0);
break;
case 1:
emit setVolume(60);
break;
case 2:
emit setVolume(70);
break;
case 3:
|
a34ceb32b
김태훈
볼륨 설정에 따라 음향 볼륨 설정
|
163
164
|
emit setVolume(80);
break;
|
d75742e49
김태훈
음향 효과 개선
|
165
166
167
|
case 4:
emit setVolume(85);
break;
|
a34ceb32b
김태훈
볼륨 설정에 따라 음향 볼륨 설정
|
168
169
170
171
172
173
174
175
176
177
178
179
180
|
case 5:
emit setVolume(90);
break;
case 6:
emit setVolume(95);
break;
case 7:
emit setVolume(100);
break;
default:
emit setVolume(0);
break;
}
|
d75742e49
김태훈
음향 효과 개선
|
181
182
183
184
185
186
|
emit operateRepeat(filename);
}
void SoundPlayer::stopPlay()
{
emit operateStop();
|
14b44676e
김태훈
음원 재생 루틴 개선
|
187
|
}
|
337d4f1a3
김태훈
음원 추가
|
188
189
|
void SoundPlayer::playClick()
{
|
14b44676e
김태훈
음원 재생 루틴 개선
|
190
191
192
193
|
if (instance == 0)
instance = new SoundPlayer;
instance->emitClick();
|
337d4f1a3
김태훈
음원 추가
|
194
195
196
197
|
}
void SoundPlayer::playStart()
{
|
14b44676e
김태훈
음원 재생 루틴 개선
|
198
199
|
if (instance == 0)
instance = new SoundPlayer;
|
d75742e49
김태훈
음향 효과 개선
|
200
|
instance->play("/falinux/sounds/start.wav");
|
337d4f1a3
김태훈
음원 추가
|
201
202
203
204
|
}
void SoundPlayer::playStop()
{
|
14b44676e
김태훈
음원 재생 루틴 개선
|
205
206
|
if (instance == 0)
instance = new SoundPlayer;
|
d75742e49
김태훈
음향 효과 개선
|
207
|
instance->play("/falinux/sounds/stop.wav");
|
337d4f1a3
김태훈
음원 추가
|
208
209
210
211
|
}
void SoundPlayer::playError1()
{
|
14b44676e
김태훈
음원 재생 루틴 개선
|
212
213
|
if (instance == 0)
instance = new SoundPlayer;
|
d75742e49
김태훈
음향 효과 개선
|
214
|
instance->play("/falinux/sounds/error1.wav");
|
337d4f1a3
김태훈
음원 추가
|
215
216
217
218
|
}
void SoundPlayer::playError2()
{
|
14b44676e
김태훈
음원 재생 루틴 개선
|
219
220
|
if (instance == 0)
instance = new SoundPlayer;
|
d75742e49
김태훈
음향 효과 개선
|
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
|
instance->play("/falinux/sounds/error2.wav");
}
void SoundPlayer::repeatError1()
{
if (instance == 0)
instance = new SoundPlayer;
instance->repeat("/falinux/sounds/error1.wav");
}
void SoundPlayer::repeatError2()
{
if (instance == 0)
instance = new SoundPlayer;
instance->repeat("/falinux/sounds/error2.wav");
}
void SoundPlayer::stop()
{
if (instance == 0)
instance = new SoundPlayer;
instance->stopPlay();
|
337d4f1a3
김태훈
음원 추가
|
246
|
}
|