1eb0f22100988c2fa874b7cfd0c88aa2075b14b1
[kitchenalert] / src / alertsound.cpp
1 /**************************************************************************
2         This file is part of KitchenAlert v.0.09
3
4         Copyright (C) 2010  Heli Hyvättinen
5
6         Kitchen Alert is free software: you can redistribute it and/or modify
7         it under the terms of the GNU General Public License as published by
8         the Free Software Foundation, either version 3 of the License, or
9         (at your option) any later version.
10
11         This program is distributed in the hope that it will be useful,
12         but WITHOUT ANY WARRANTY; without even the implied warranty of
13         MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14         GNU General Public License for more details.
15
16         You should have received a copy of the GNU General Public License
17         along with this program.  If not, see <http://www.gnu.org/licenses/>.
18
19 **************************************************************************/
20
21
22
23
24
25 #include "alertsound.h"
26
27 #include <QDebug>
28 #include <QSettings>
29
30
31
32
33
34 AlertSound::AlertSound(QObject *parent) :
35     QObject(parent)
36 {
37
38     defaultsound_ = "/home/opt/KitchenAlert/Doorbell-old-tring-modified-multiplied-low-quality.mp3";
39     QString filename;
40
41     QSettings settings("KitchenAlert","KitchenAlert");
42
43    // settings.clear(); //REMOVE THIS AFTER TESTING!!!!!!
44
45     bool useDefaultSound = settings.value("UseDefaultSound",true).toBool();
46 //    qDebug() << "In AlertSound constructor UseDefaultSound is " << useDefaultSound;
47     if (useDefaultSound == true)
48     {
49         filename = defaultsound_;
50     }
51     else
52     {
53         filename = settings.value("soundfile",defaultsound_).toString();
54     }
55
56
57
58       pSound_ = new QMediaPlayer;
59       pSound_->setMedia(QUrl::fromLocalFile(filename));
60  //   player->setVolume(50);
61
62
63 /* NOTE:
64    sound priorities are set in /usr/share/policy/etc/current/pulse/xpolicy.conf
65
66 This block needs to be appended to this file in the postinstall script
67 [stream]
68 exe = kitchenalert
69 group   = alarm
70
71 */
72
73
74 }
75
76 AlertSound::~AlertSound()
77 {
78
79     if (pSound_ != NULL)
80     {
81         delete pSound_;
82     }
83 }
84
85 void AlertSound::play()
86 {
87      pSound_->play();
88   //  qDebug() << "Sound should be played now";
89 }
90
91 void AlertSound::stop()
92 {
93
94     pSound_->stop();
95 //    qDebug() << pSound_->state();
96 //    qDebug() << "Sound stopped by AlertSound.";
97 }
98
99
100
101 void AlertSound::setSound(QString filename)
102 {
103
104    pSound_->setMedia(QUrl::fromLocalFile(filename));
105 }
106
107 void AlertSound::setDefaultSound()
108 {
109
110     pSound_->setMedia(QUrl::fromLocalFile(defaultsound_));
111 }