summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/applets/rotateapplet/rotate.cpp27
-rw-r--r--core/applets/rotateapplet/rotate.h4
2 files changed, 24 insertions, 7 deletions
diff --git a/core/applets/rotateapplet/rotate.cpp b/core/applets/rotateapplet/rotate.cpp
index 79098d4..d8081a6 100644
--- a/core/applets/rotateapplet/rotate.cpp
+++ b/core/applets/rotateapplet/rotate.cpp
@@ -9,110 +9,127 @@
.> <,   >  .   <= redistribute it and/or modify it under
:=1 )Y*s>-.--   : the terms of the GNU Library General Public
.="- .-=="i,     .._ License as published by the Free Software
 - .   .-<_>     .<> Foundation; either version 2 of the License,
     ._= =}       : or (at your option) any later version.
    .%+i>       _;_.
    .i_,=:_.      -<s. This library is distributed in the hope that
     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY;
    : ..    .:,     . . . without even the implied warranty of
    =_        +     =;=| MERCHANTABILITY or FITNESS FOR A
  _.=:.       :    :=>: PARTICULAR PURPOSE. See the GNU
..}^=.=       =       ; Library General Public License for more
++=   -.     .     .: details.
 :     =  ...= . :.=-
 -.   .:....=;==+<; You should have received a copy of the GNU
  -_. . .   )=.  = Library General Public License along with
    --        :-= this library; see the file COPYING.LIB.
If not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA.
*/
#include "rotate.h"
/* OPIE */
#include <opie/odevice.h>
#include <qpe/applnk.h>
#include <qpe/config.h>
#include <qpe/power.h>
#include <qpe/qpeapplication.h>
#include <qpe/qcopenvelope_qws.h>
#include <qpe/resource.h>
+using namespace Opie;
/* QT */
#include <qiconset.h>
#include <qpopupmenu.h>
-using namespace Opie;
+#include <time.h>
RotateApplet::RotateApplet()
:QObject( 0, "RotateApplet" ), ref( 0 ), m_flipped( false )
{
#if !defined(QT_NO_COP)
QCopChannel *rotateChannel = new QCopChannel( "QPE/Rotation" , this );
connect ( rotateChannel, SIGNAL( received( const QCString &, const QByteArray &) ),
this, SLOT ( channelReceived( const QCString &, const QByteArray &) ) );
#endif
}
RotateApplet::~RotateApplet ( )
{}
/**
* Qcop receive method.
*/
void RotateApplet::channelReceived( const QCString &msg, const QByteArray & data )
{
qDebug( "RotateApplet::channelReceived( '%s' )", (const char*) msg );
if ( ODevice::inst()->hasHingeSensor() )
{
+ struct timespec interval;
+ struct timespec remain;
+ interval.tv_sec = 0;
+ interval.tv_nsec = 600;
+ ::nanosleep( &interval, &remain );
OHingeStatus status = ODevice::inst()->readHingeSensor();
qDebug( "RotateApplet::readHingeSensor = %d", (int) status );
+
+ Config cfg( "apm" );
+ cfg.setGroup( PowerStatusManager::readStatus().acStatus() == PowerStatus::Online ? "AC" : "Battery" );
+ int action = cfg.readNumEntry( "CloseHingeAction", 0 );
+
if ( status == CASE_CLOSED )
{
- Config cfg( "apm" );
- cfg.setGroup( PowerStatusManager::readStatus().acStatus() == PowerStatus::Online ? "AC" : "Battery" );
- int action = cfg.readNumEntry( "CloseHingeAction", 0 );
switch ( action )
{
case 1: /* DISPLAY OFF */ ODevice::inst()->setDisplayBrightness( 0 ); break;
case 2: /* SUSPEND */ ODevice::inst()->suspend(); break;
default: /* IGNORE */ break;
}
- qDebug( "RotateApplet::switchAction %d performed.", cfg.readNumEntry( "CloseHingeAction", 0 ) );
}
+ else /* status != CASE_CLOSED */
+ {
+ switch ( action )
+ {
+ case 1: /* DISPLAY OFF */ ODevice::inst()->setDisplayBrightness( 127 ); break;
+ case 2: /* SUSPEND */ /* How to wake up the device from kernel? */; break;
+ default: /* IGNORE */ break;
+ }
+ }
+ qDebug( "RotateApplet::switchAction %d performed.", cfg.readNumEntry( "CloseHingeAction", 0 ) );
}
QDataStream stream( data, IO_ReadOnly );
if ( msg == "flip()" )
{
activated ( );
}
else if ( msg == "rotateDefault()")
{
rotateDefault();
}
}
int RotateApplet::position() const
{
return 3;
}
QString RotateApplet::name() const
{
return tr( "Rotate shortcut" );
}
QString RotateApplet::text() const
{
return tr( "Rotate" );
}
/*QString RotateApplet::tr( const char* s ) const
{
return qApp->translate( "RotateApplet", s, 0 );
}
diff --git a/core/applets/rotateapplet/rotate.h b/core/applets/rotateapplet/rotate.h
index 572b82a..4403c7d 100644
--- a/core/applets/rotateapplet/rotate.h
+++ b/core/applets/rotateapplet/rotate.h
@@ -28,45 +28,45 @@
#ifndef __OPIE_ROTATE_APPLET_H__
#define __OPIE_ROTATE_APPLET_H__
#include <qpe/menuappletinterface.h>
#include <qobject.h>
#include <qobject.h>
class RotateApplet : public QObject, public MenuAppletInterface
{
Q_OBJECT
public:
RotateApplet ( );
virtual ~RotateApplet ( );
QRESULT queryInterface( const QUuid&, QUnknownInterface** );
Q_REFCOUNT
virtual int position() const;
virtual QString name ( ) const;
virtual QIconSet icon ( ) const;
virtual QString text ( ) const;
/* virtual QString tr( const char* ) const;
virtual QString tr( const char*, const char* ) const;
*/
virtual QPopupMenu *popup ( QWidget *parent ) const;
- virtual void activated ( );
- virtual void rotateDefault ( );
+ virtual void activated ( );
+ virtual void rotateDefault ( );
private slots:
void channelReceived( const QCString &msg, const QByteArray & data );
private:
ulong ref;
bool m_flipped;
};
#endif