From 5a0986abc76a695a4262b75219a29ea983cf19c8 Mon Sep 17 00:00:00 2001 From: zecke Date: Fri, 17 Sep 2004 21:51:47 +0000 Subject: First untested support for the beagle from MasterIA --- (limited to 'libopie2') diff --git a/libopie2/opiecore/device/device.pro b/libopie2/opiecore/device/device.pro index 946bff1..87a3fd8 100644 --- a/libopie2/opiecore/device/device.pro +++ b/libopie2/opiecore/device/device.pro @@ -1,19 +1,23 @@ HEADERS += device/odevice.h \ device/odevicebutton.h \ + device/odevice_beagle.h \ device/odevice_ipaq.h \ device/odevice_jornada.h \ device/odevice_ramses.h \ device/odevice_simpad.h \ device/odevice_zaurus.h \ device/odevice_yopy.h \ + device/odevice_beagle.h SOURCES += device/odevice.cpp \ device/odevicebutton.cpp \ + device/odevice_beagle.cpp \ device/odevice_ipaq.cpp \ device/odevice_jornada.cpp\ device/odevice_ramses.cpp \ device/odevice_simpad.cpp \ device/odevice_zaurus.cpp \ - device/odevice_yopy.cpp \ + device/odevice_yopy.cpp + diff --git a/libopie2/opiecore/device/odevice.cpp b/libopie2/opiecore/device/odevice.cpp index 2355621..2b10034 100644 --- a/libopie2/opiecore/device/odevice.cpp +++ b/libopie2/opiecore/device/odevice.cpp @@ -27,6 +27,7 @@ Boston, MA 02111-1307, USA. */ +#include "odevice_beagle.h" #include "odevice_ipaq.h" #include "odevice_jornada.h" #include "odevice_ramses.h" @@ -139,6 +140,7 @@ ODevice *ODevice::inst() else if ( line.contains( "simpad", false ) ) dev = new Internal::SIMpad(); else if ( line.contains( "jornada", false ) ) dev = new Internal::Jornada(); else if ( line.contains( "ramses", false ) ) dev = new Internal::Ramses(); + else if ( line.contains( "Tradesquare.NL", false ) ) dev = new Internal::Beagle(); else qWarning( "ODevice() - unknown hardware - using default." ); break; } @@ -266,7 +268,6 @@ bool ODevice::setSoftSuspend ( bool /*soft*/ ) */ bool ODevice::suspend() { - qDebug("ODevice::suspend"); if ( !isQWS( ) ) // only qwsserver is allowed to suspend return false; diff --git a/libopie2/opiecore/device/odevice_beagle.cpp b/libopie2/opiecore/device/odevice_beagle.cpp new file mode 100644 index 0000000..9cf640a --- a/dev/null +++ b/libopie2/opiecore/device/odevice_beagle.cpp @@ -0,0 +1,156 @@ +/* +                 This file is part of the Opie Project +              Copyright (C) 2004 The Opie Team + =. + .=l. +           .>+-= + _;:,     .>    :=|. This program is free software; you can +.> <`_,   >  .   <= 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_,=:_.      -`: 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 "odevicebutton.h" +#include "odevice_beagle.h" + +#include + +#include +#include +#include +#include + + + +#define _SA1100_FL_IOCTL_ON 1 +#define _SA1100_FL_IOCTL_OFF 2 +#define _SA1100_FL_IOCTL_INTENSITY 3 +#define _SA1100_FL_IOCTL_BACKLIGHT 4 +#define _SA1100_FL_IOCTL_CONTRAST 5 +#define _SA1100_FL_IOCTL_GET_BACKLIGHT 6 +#define _SA1100_FL_IOCTL_GET_CONTRAST 7 +// added by Sean Hsieh +#define _SA1100_FL_IOCTL_PWR_TOGGLE 8 +#define _SA1100_FL_IOCTL_AUTOLIGHT 10 + +#define FL_MAJOR 60 +#define FL_NAME "sa1100-fl" +#define FL_FILE "/dev/sa1100-fl" + +namespace Opie { +namespace Core { +namespace Internal { + +struct b_button { + uint model; + Qt::Key code; + char *utext; + char *pix; + char *fpressedservice; + char *fpressedaction; + char *fheldservice; + char *fheldaction; +}; + +struct b_button beagle_buttons [] = { + { Model_Beagle_PA100, + Qt::Key_F9, QT_TRANSLATE_NOOP("Button", "Calendar Button"), + "devicebuttons/beagle_calendar", + "datebook", "nextView()", + "today", "raise()" }, + { Model_Beagle_PA100, + Qt::Key_F10, QT_TRANSLATE_NOOP("Button", "Contacts Button"), + "devicebuttons/beagle_contact", + "addressbook", "raise()", + "addressbook", "beamBusinessCard()" }, + { Model_Beagle_PA100, + Qt::Key_F11, QT_TRANSLATE_NOOP("Button", "Todo Button"), + "devicebuttons/beagle_todo", + "todolist", "raise()", + "QPE/TaskBar", "toggleMenu()" }, + { Model_Beagle_PA100, + Qt::Key_F12, QT_TRANSLATE_NOOP("Button", "Home Button"), + "devicebuttons/beagle_home", + "QPE/Launcher", "home()", + "buttonsettings", "raise()" }, +}; + + +Beagle::Beagle() +{ + qWarning( "Created Beagle" ); +} +Beagle::~Beagle() {} + +void Beagle::init( const QString&) { + /* + * No other assabat model yet + */ + d->m_vendorstr = "Tradesquare.NL"; + d->m_vendor = Vendor_MasterIA; + d->m_modelstr = "Tuxpda 1"; + d->m_rotation = Rot0; +} + +void Beagle::initButtons() { + if ( d->m_buttons ) + return; + + d->m_buttons = new QValueList; + uint length = sizeof( beagle_buttons )/ sizeof( b_button ); + for ( uint i = 0; i < length; ++i ) { + b_button *bb = &beagle_buttons[i]; + ODeviceButton b; + b.setKeycode( bb->code ); + b.setUserText( QObject::tr( "Button", bb->utext ) ); + b.setPixmap( Resource::loadPixmap( bb->pix ) ); + b.setFactoryPresetPressedAction( OQCopMessage( makeChannel( bb->fpressedservice ), bb->fpressedaction ) ); + b.setFactoryPresetHeldAction( OQCopMessage( makeChannel( bb->fheldservice ), bb->fheldaction ) ); + d->m_buttons->append( b ); + } + + reloadButtonMapping(); +} + +bool Beagle::setDisplayStatus( bool on ) { + int fd = ::open(FL_FILE, O_WRONLY); + + if ( fd < 0 ) + return false; + + return ( ::ioctl(fd, on ? _SA1100_FL_IOCTL_ON : _SA1100_FL_IOCTL_OFF, 0 ) == -1 ); +} + +int Beagle::displayBrightnessResolution()const { + return 100; +} + +bool Beagle::setDisplayBrightness( int brightness ) { + int fd = ::open(FL_FILE, O_WRONLY); + + if ( fd < 0 ) + return false; + + return ( ::ioctl(fd, _SA1100_FL_IOCTL_INTENSITY, brightness%101 ) == 0 ); +} + +} +} +} diff --git a/libopie2/opiecore/device/odevice_beagle.h b/libopie2/opiecore/device/odevice_beagle.h new file mode 100644 index 0000000..1626330 --- a/dev/null +++ b/libopie2/opiecore/device/odevice_beagle.h @@ -0,0 +1,62 @@ +/* +                 This file is part of the Opie Project +              Copyright (C) 2004 The Opie Team + =. + .=l. +           .>+-= + _;:,     .>    :=|. This program is free software; you can +.> <`_,   >  .   <= 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_,=:_.      -`: 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. +*/ + +#ifndef OPIE_CORE_DEVICE_BEAGLE_H +#define OPIE_CORE_DEVICE_BEAGLE_H + +#include "odevice.h" + +namespace Opie { +namespace Core { +namespace Internal { +class Beagle : public ODevice { + Q_OBJECT +public: + Beagle(); + ~Beagle(); + +//@{ + void init( const QString& init ); + void initButtons(); +//@} + + +//@{ + bool setDisplayStatus( bool on ); + int displayBrightnessResolution()const; + bool setDisplayBrightness( int brightness ); +//@} + +}; +} +} +} + + +#endif -- cgit v0.9.0.2