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