Change copyrights from Nokia to Digia
[qt:qtfeedback.git] / examples / hapticsquare / hapticsquare.cpp
1 /****************************************************************************
2 **
3 ** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
4 ** Contact: http://www.qt-project.org/legal
5 **
6 ** This file is part of the examples of the Qt Mobility Components.
7 **
8 ** $QT_BEGIN_LICENSE:BSD$
9 ** You may use this file under the terms of the BSD license as follows:
10 **
11 ** "Redistribution and use in source and binary forms, with or without
12 ** modification, are permitted provided that the following conditions are
13 ** met:
14 **   * Redistributions of source code must retain the above copyright
15 **     notice, this list of conditions and the following disclaimer.
16 **   * Redistributions in binary form must reproduce the above copyright
17 **     notice, this list of conditions and the following disclaimer in
18 **     the documentation and/or other materials provided with the
19 **     distribution.
20 **   * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
21 **     of its contributors may be used to endorse or promote products derived
22 **     from this software without specific prior written permission.
23 **
24 **
25 ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
26 ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
27 ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
28 ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
29 ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
30 ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
31 ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
32 ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
33 ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
34 ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
35 ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
36 **
37 ** $QT_END_LICENSE$
38 **
39 ****************************************************************************/
40
41 #include "hapticsquare.h"
42 #include "hapticbutton.h"
43
44 #include <QGridLayout>
45 #include <QDebug>
46
47 //! [0]
48 HapticSquare::HapticSquare()
49 {
50     m_rumble.setAttackIntensity(0.1);
51     m_rumble.setAttackTime(250);
52     m_rumble.setIntensity(1.0);
53     m_rumble.setDuration(1000);
54     m_rumble.setFadeTime(250);
55     m_rumble.setFadeIntensity(0.1);
56 //! [0]
57
58 //! [1]
59     m_ocean.setAttackIntensity(0.1);
60     m_ocean.setAttackTime(450);
61     m_ocean.setIntensity(0.8);
62     m_ocean.setDuration(6000);
63     m_ocean.setFadeTime(900);
64     m_ocean.setFadeIntensity(0.05);
65     m_ocean.setPeriod(1500);
66 //! [1]
67
68 //! [2]
69     m_btnRumble = new HapticButton(tr("Rumble!"));
70     m_btnOcean = new HapticButton(tr("Ocean"));
71     m_btnButtonClick = new HapticButton(tr("Click"));
72     m_btnNegativeEffect = new HapticButton(tr("Oops!"));
73     QGridLayout *topLayout = new QGridLayout(this);
74     topLayout->addWidget(m_btnRumble, 0, 0);
75     topLayout->addWidget(m_btnOcean, 0, 1);
76     topLayout->addWidget(m_btnButtonClick, 1, 0);
77     topLayout->addWidget(m_btnNegativeEffect, 1, 1);
78
79     connect(m_btnRumble, SIGNAL(clicked()), this, SLOT(playRumble()));
80     connect(m_btnOcean, SIGNAL(clicked()), this, SLOT(playOcean()));
81     connect(m_btnButtonClick, SIGNAL(clicked()), this, SLOT(playButtonClick()));
82     connect(m_btnNegativeEffect, SIGNAL(clicked()), this, SLOT(playNegativeEffect()));
83 }
84 //! [2]
85
86 HapticSquare::~HapticSquare()
87 {
88     delete m_btnRumble;
89     delete m_btnOcean;
90     delete m_btnButtonClick;
91     delete m_btnNegativeEffect;
92 }
93
94 //! [3]
95 void HapticSquare::playRumble()
96 {
97     m_rumble.start();
98 }
99
100 void HapticSquare::playOcean()
101 {
102     if (m_ocean.state() == QFeedbackEffect::Stopped) {
103         m_ocean.start();
104     } else {
105         m_ocean.stop();
106     }
107 }
108 //! [3]
109
110 //! [4]
111 void HapticSquare::playButtonClick()
112 {
113     QFeedbackEffect::playThemeEffect(QFeedbackEffect::ThemeBasicButton);
114 }
115
116 void HapticSquare::playNegativeEffect()
117 {
118     QFeedbackEffect::playThemeEffect(QFeedbackEffect::ThemeNegativeTacticon);
119 }
120 //! [4]
121
122 #include "moc_hapticsquare.cpp"