summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/applets/volumeapplet2/volumeapplet.cpp11
1 files changed, 7 insertions, 4 deletions
diff --git a/noncore/applets/volumeapplet2/volumeapplet.cpp b/noncore/applets/volumeapplet2/volumeapplet.cpp
index f82dc63..c153a78 100644
--- a/noncore/applets/volumeapplet2/volumeapplet.cpp
+++ b/noncore/applets/volumeapplet2/volumeapplet.cpp
@@ -1,170 +1,173 @@
1/* 1/*
2                 This file is part of the Opie Project 2                 This file is part of the Opie Project
3 3
4 =. (C) 2005 Michael 'Mickey' Lauer <mickey@Vanille.de> 4 =. (C) 2005 Michael 'Mickey' Lauer <mickey@Vanille.de>
5 .=l. 5 .=l.
6           .>+-= 6           .>+-=
7 _;:,     .>    :=|. This program is free software; you can 7 _;:,     .>    :=|. This program is free software; you can
8.> <`_,   >  .   <= redistribute it and/or modify it under 8.> <`_,   >  .   <= redistribute it and/or modify it under
9:`=1 )Y*s>-.--   : the terms of the GNU Library General Public 9:`=1 )Y*s>-.--   : the terms of the GNU Library General Public
10.="- .-=="i,     .._ License as published by the Free Software 10.="- .-=="i,     .._ License as published by the Free Software
11 - .   .-<_>     .<> Foundation; either version 2 of the License, 11 - .   .-<_>     .<> Foundation; either version 2 of the License,
12     ._= =}       : or (at your option) any later version. 12     ._= =}       : or (at your option) any later version.
13    .%`+i>       _;_. 13    .%`+i>       _;_.
14    .i_,=:_.      -<s. This program is distributed in the hope that 14    .i_,=:_.      -<s. This program is distributed in the hope that
15     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY; 15     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY;
16    : ..    .:,     . . . without even the implied warranty of 16    : ..    .:,     . . . without even the implied warranty of
17    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A 17    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A
18  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU 18  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU
19..}^=.=       =       ; Library General Public License for more 19..}^=.=       =       ; Library General Public License for more
20++=   -.     .`     .: details. 20++=   -.     .`     .: details.
21 :     =  ...= . :.=- 21 :     =  ...= . :.=-
22 -.   .:....=;==+<; You should have received a copy of the GNU 22 -.   .:....=;==+<; You should have received a copy of the GNU
23  -_. . .   )=.  = Library General Public License along with 23  -_. . .   )=.  = Library General Public License along with
24    --        :-=` this library; see the file COPYING.LIB. 24    --        :-=` this library; see the file COPYING.LIB.
25 If not, write to the Free Software Foundation, 25 If not, write to the Free Software Foundation,
26 Inc., 59 Temple Place - Suite 330, 26 Inc., 59 Temple Place - Suite 330,
27 Boston, MA 02111-1307, USA. 27 Boston, MA 02111-1307, USA.
28 28
29*/ 29*/
30 30
31#include "volumeapplet.h" 31#include "volumeapplet.h"
32 32
33/* OPIE */ 33/* OPIE */
34#include <opie2/odebug.h> 34#include <opie2/odebug.h>
35#include <opie2/otaskbarapplet.h> 35#include <opie2/otaskbarapplet.h>
36#include <opie2/osoundsystem.h> 36#include <opie2/osoundsystem.h>
37#include <opie2/oledbox.h> 37#include <opie2/oledbox.h>
38#include <qpe/applnk.h> 38#include <qpe/applnk.h>
39#include <qpe/resource.h> 39#include <qpe/resource.h>
40using namespace Opie::Core; 40using namespace Opie::Core;
41using namespace Opie::MM; 41using namespace Opie::MM;
42using namespace Opie::Ui; 42using namespace Opie::Ui;
43 43
44/* QT */ 44/* QT */
45#include <qpainter.h> 45#include <qpainter.h>
46#include <qlabel.h> 46#include <qlabel.h>
47#include <qlayout.h> 47#include <qlayout.h>
48#include <qslider.h> 48#include <qslider.h>
49 49
50/* STD */ 50/* STD */
51#include <assert.h> 51#include <assert.h>
52 52
53Channel::Channel( OMixerInterface* mixer, QWidget* parent, const char* name ) 53Channel::Channel( OMixerInterface* mixer, QWidget* parent, const char* name )
54 :QVBox( parent, name ) 54 :QVBox( parent, name )
55{ 55{
56 _name = new QLabel( name, this ); 56 _name = new QLabel( name, this );
57 _volume = new QSlider( 0, 100, 10, mixer->volume( name ), QSlider::Vertical, this ); 57 _name->setFont( QFont( "Vera", 8 ) );
58 _volume = new QSlider( 0, 100, 10, mixer->volume( name ) & 0xff, QSlider::Vertical, this );
59 _volume->setTickmarks( QSlider::Both );
60 _volume->setTickInterval( 20 );
58 _mute = new OLedBox( green, this ); 61 _mute = new OLedBox( green, this );
59 _mute->setFocusPolicy( QWidget::NoFocus ); 62 _mute->setFocusPolicy( QWidget::NoFocus );
60 _mute->setFixedSize( AppLnk::smallIconSize(), AppLnk::smallIconSize() ); 63 _mute->setFixedSize( AppLnk::smallIconSize(), AppLnk::smallIconSize() );
61 _name->show(); 64 _name->show();
62 _volume->show(); 65 _volume->show();
63 _mute->show(); 66 _mute->show();
64} 67}
65 68
66 69
67Channel::~Channel() 70Channel::~Channel()
68{ 71{
69} 72}
70 73
71 74
72VolumeAppletControl::VolumeAppletControl( OTaskbarApplet* parent, const char* name ) 75VolumeAppletControl::VolumeAppletControl( OTaskbarApplet* parent, const char* name )
73 :QFrame( parent, name, WStyle_StaysOnTop | WType_Popup ), l(0) 76 :QFrame( parent, name, WStyle_StaysOnTop | WType_Popup ), l(0)
74{ 77{
75 setFrameStyle( QFrame::PopupPanel | QFrame::Raised ); 78 setFrameStyle( QFrame::PopupPanel | QFrame::Raised );
76 l = new QGridLayout( this ); 79 l = new QGridLayout( this );
80 build();
77} 81}
78 82
79 83
80void VolumeAppletControl::build() 84void VolumeAppletControl::build()
81{ 85{
82 OSoundSystem* sound = OSoundSystem::instance(); 86 OSoundSystem* sound = OSoundSystem::instance();
83 OSoundSystem::CardIterator it = sound->iterator(); 87 OSoundSystem::CardIterator it = sound->iterator();
84 88
85 OMixerInterface* mixer = new OMixerInterface( this, "/dev/mixer" ); 89 OMixerInterface* mixer = new OMixerInterface( this, "/dev/mixer" );
86 90
87 QStringList channels = mixer->allChannels(); 91 QStringList channels = mixer->allChannels();
88 92
89 int x = 0; 93 int x = 0;
90 int y = 0; 94 int y = 0;
91 95
92 for ( QStringList::Iterator it = channels.begin(); it != channels.end(); ++it ) 96 for ( QStringList::Iterator it = channels.begin(); it != channels.end(); ++it )
93 { 97 {
94 odebug << "OSSDEMO: Mixer has channel " << *it << "" << oendl; 98 odebug << "OSSDEMO: Mixer has channel " << *it << "" << oendl;
95 odebug << "OSSDEMO: +--- volume " << ( mixer->volume( *it ) & 0xff ) 99 odebug << "OSSDEMO: +--- volume " << ( mixer->volume( *it ) & 0xff )
96 << " (left) | " << ( mixer->volume( *it ) >> 8 ) << " (right)" << oendl; 100 << " (left) | " << ( mixer->volume( *it ) >> 8 ) << " (right)" << oendl;
97 101
98 l->addWidget( new Channel( mixer, this, *it ), x++, y ); 102 l->addWidget( new Channel( mixer, this, *it ), 0, x++, AlignCenter );
99 } 103 }
100 104
101} 105}
102 106
103 107
104VolumeAppletControl::~VolumeAppletControl() 108VolumeAppletControl::~VolumeAppletControl()
105{ 109{
106} 110}
107 111
108 112
109void VolumeAppletControl::showEvent( QShowEvent* e ) 113void VolumeAppletControl::showEvent( QShowEvent* e )
110{ 114{
111 odebug << "showEvent" << oendl; 115 odebug << "showEvent" << oendl;
112 build();
113 QWidget::showEvent( e ); 116 QWidget::showEvent( e );
114} 117}
115 118
116 119
117void VolumeAppletControl::hideEvent( QHideEvent* e ) 120void VolumeAppletControl::hideEvent( QHideEvent* e )
118{ 121{
119 odebug << "hideEvent" << oendl; 122 odebug << "hideEvent" << oendl;
120 QWidget::hideEvent( e ); 123 QWidget::hideEvent( e );
121} 124}
122 125
123 126
124QSize VolumeAppletControl::sizeHint() const 127QSize VolumeAppletControl::sizeHint() const
125{ 128{
126 return QFrame::sizeHint(); 129 return QSize( 200, 200 ); //QFrame::sizeHint();
127} 130}
128 131
129 132
130VolumeApplet::VolumeApplet( QWidget *parent, const char *name ) 133VolumeApplet::VolumeApplet( QWidget *parent, const char *name )
131 :OTaskbarApplet( parent, name ) 134 :OTaskbarApplet( parent, name )
132{ 135{
133 setFixedHeight( AppLnk::smallIconSize() ); 136 setFixedHeight( AppLnk::smallIconSize() );
134 setFixedWidth( AppLnk::smallIconSize() ); 137 setFixedWidth( AppLnk::smallIconSize() );
135 _pixmap.convertFromImage( Resource::loadImage( "volumeapplet/volume" ).smoothScale( height(), width() ) ); 138 _pixmap.convertFromImage( Resource::loadImage( "volumeapplet/volume" ).smoothScale( height(), width() ) );
136 _control = new VolumeAppletControl( this, "control" ); 139 _control = new VolumeAppletControl( this, "control" );
137} 140}
138 141
139 142
140VolumeApplet::~VolumeApplet() 143VolumeApplet::~VolumeApplet()
141{ 144{
142} 145}
143 146
144 147
145int VolumeApplet::position() 148int VolumeApplet::position()
146{ 149{
147 return 4; 150 return 4;
148} 151}
149 152
150 153
151void VolumeApplet::paintEvent( QPaintEvent* ) 154void VolumeApplet::paintEvent( QPaintEvent* )
152{ 155{
153 QPainter p(this); 156 QPainter p(this);
154 p.drawPixmap(0, 2, _pixmap ); 157 p.drawPixmap(0, 2, _pixmap );
155} 158}
156 159
157 160
158void VolumeApplet::mousePressEvent( QMouseEvent* ) 161void VolumeApplet::mousePressEvent( QMouseEvent* )
159{ 162{
160 if ( !_control->isVisible() ) 163 if ( !_control->isVisible() )
161 { 164 {
162 popup( _control ); 165 popup( _control );
163 } 166 }
164 else 167 else
165 { 168 {
166 _control->hide(); 169 _control->hide();
167 } 170 }
168} 171}
169 172
170EXPORT_OPIE_APPLET_v1( VolumeApplet ) 173EXPORT_OPIE_APPLET_v1( VolumeApplet )