summaryrefslogtreecommitdiff
path: root/libopie
Unidiff
Diffstat (limited to 'libopie') (more/less context) (show whitespace changes)
-rw-r--r--libopie/odevice.cpp135
-rw-r--r--libopie/odevice.h2
2 files changed, 97 insertions, 40 deletions
diff --git a/libopie/odevice.cpp b/libopie/odevice.cpp
index d86654e..160568b 100644
--- a/libopie/odevice.cpp
+++ b/libopie/odevice.cpp
@@ -164,14 +164,16 @@ protected:
164class Ramses : public ODevice, public QWSServer::KeyboardFilter { 164class Ramses : public ODevice, public QWSServer::KeyboardFilter {
165protected: 165protected:
166 virtual void init ( ); 166 virtual void init ( );
167 virtual void initButtons ( );
168 167
169public: 168public:
170 virtual bool setSoftSuspend ( bool soft ); 169 virtual bool setSoftSuspend ( bool soft );
170 virtual bool suspend ( );
171 171
172 virtual bool setDisplayStatus( bool on ); 172 virtual bool setDisplayStatus( bool on );
173 virtual bool setDisplayBrightness ( int b ); 173 virtual bool setDisplayBrightness ( int b );
174 virtual int displayBrightnessResolution ( ) const; 174 virtual int displayBrightnessResolution ( ) const;
175 virtual bool setDisplayContrast ( int b );
176 virtual int displayContrastResolution ( ) const;
175 177
176protected: 178protected:
177 virtual bool filter ( int unicode, int keycode, int modifiers, bool isPress, bool autoRepeat ); 179 virtual bool filter ( int unicode, int keycode, int modifiers, bool isPress, bool autoRepeat );
@@ -353,7 +355,7 @@ struct r_button {
353} ramses_buttons [] = { 355} ramses_buttons [] = {
354 { Model_Ramses_MNCI, 356 { Model_Ramses_MNCI,
355 Qt::Key_F11, QT_TRANSLATE_NOOP("Button", "Menu Button"), 357 Qt::Key_F11, QT_TRANSLATE_NOOP("Button", "Menu Button"),
356 "devicebuttons/simpad_menu", 358 "devicebuttons/z_menu",
357 "QPE/TaskBar", "toggleMenu()", 359 "QPE/TaskBar", "toggleMenu()",
358 "QPE/TaskBar", "toggleStartMenu()" }, 360 "QPE/TaskBar", "toggleStartMenu()" },
359 { Model_Ramses_MNCI, 361 { Model_Ramses_MNCI,
@@ -493,6 +495,7 @@ bool ODevice::setSoftSuspend ( bool /*soft*/ )
493 */ 495 */
494bool ODevice::suspend ( ) 496bool ODevice::suspend ( )
495{ 497{
498 qDebug("ODevice::suspend");
496 if ( !isQWS( ) ) // only qwsserver is allowed to suspend 499 if ( !isQWS( ) ) // only qwsserver is allowed to suspend
497 return false; 500 return false;
498 501
@@ -536,6 +539,8 @@ bool ODevice::suspend ( )
536 */ 539 */
537bool ODevice::setDisplayStatus ( bool on ) 540bool ODevice::setDisplayStatus ( bool on )
538{ 541{
542 qDebug("ODevice::setDisplayStatus(%d)", on);
543
539 if ( d-> m_model == Model_Unknown ) 544 if ( d-> m_model == Model_Unknown )
540 return false; 545 return false;
541 546
@@ -559,12 +564,34 @@ bool ODevice::setDisplayBrightness ( int p)
559 return false; 564 return false;
560} 565}
561 566
567/**
568 * @return return the max value for the brightness settings slider
569 */
562int ODevice::displayBrightnessResolution ( ) const 570int ODevice::displayBrightnessResolution ( ) const
563{ 571{
564 return 16; 572 return 16;
565} 573}
566 574
567/** 575/**
576 * This sets the display contrast
577 * @return success or failure
578 */
579bool ODevice::setDisplayContrast ( int p)
580{
581 Q_UNUSED( p )
582 return false;
583}
584
585/**
586 * @return return the max value for the brightness settings slider
587 * or 0 if the device doesn't support setting of a contrast
588 */
589int ODevice::displayContrastResolution ( ) const
590{
591 return 0;
592}
593
594/**
568 * This returns the vendor as string 595 * This returns the vendor as string
569 * @return Vendor as QString 596 * @return Vendor as QString
570 */ 597 */
@@ -670,7 +697,6 @@ void ODevice::keySound ( )
670 */ 697 */
671void ODevice::touchSound ( ) 698void ODevice::touchSound ( )
672{ 699{
673
674#ifndef QT_NO_SOUND 700#ifndef QT_NO_SOUND
675 static Sound snd ( "touchsound" ); 701 static Sound snd ( "touchsound" );
676 702
@@ -1903,8 +1929,7 @@ void Ramses::init ( )
1903 d->m_modelstr = "Ramses"; 1929 d->m_modelstr = "Ramses";
1904 d->m_model = Model_Ramses_MNCI; 1930 d->m_model = Model_Ramses_MNCI;
1905 1931
1906 d->m_rotation = Rot180; 1932 d->m_rotation = Rot0;
1907 d->m_direction = CCW;
1908 d->m_holdtime = 1000; 1933 d->m_holdtime = 1000;
1909 1934
1910 f.setName( "/etc/oz_version" ); 1935 f.setName( "/etc/oz_version" );
@@ -1923,39 +1948,12 @@ void Ramses::init ( )
1923 1948
1924} 1949}
1925 1950
1926void Ramses::initButtons ( )
1927{
1928 if ( d->m_buttons )
1929 return;
1930
1931 if ( isQWS( ) )
1932 QWSServer::setKeyboardFilter ( this );
1933
1934 d->m_buttons = new QValueList <ODeviceButton>;
1935
1936 for ( uint i = 0; i < ( sizeof( ramses_buttons ) / sizeof( s_button )); i++ ) {
1937 r_button *rb = ramses_buttons + i;
1938 ODeviceButton b;
1939
1940 if (( rb->model & d->m_model ) == d->m_model ) {
1941 b.setKeycode( rb->code );
1942 b.setUserText( QObject::tr ( "Button", rb->utext ));
1943 b.setPixmap( Resource::loadPixmap ( rb->pix ));
1944 b.setFactoryPresetPressedAction( OQCopMessage ( makeChannel ( rb->fpressedservice ), rb->fpressedaction ));
1945 b.setFactoryPresetHeldAction( OQCopMessage ( makeChannel ( rb->fheldservice ), rb->fheldaction ));
1946
1947 d->m_buttons->append( b );
1948 }
1949 }
1950 reloadButtonMapping();
1951
1952 QCopChannel *sysch = new QCopChannel ( "QPE/System", this );
1953 connect ( sysch, SIGNAL( received( const QCString &, const QByteArray & )), this, SLOT( systemMessage ( const QCString &, const QByteArray & )));
1954}
1955
1956bool Ramses::filter ( int /*unicode*/, int keycode, int modifiers, bool isPress, bool autoRepeat ) 1951bool Ramses::filter ( int /*unicode*/, int keycode, int modifiers, bool isPress, bool autoRepeat )
1957{ 1952{
1958 //TODO 1953 Q_UNUSED( keycode );
1954 Q_UNUSED( modifiers );
1955 Q_UNUSED( isPress );
1956 Q_UNUSED( autoRepeat );
1959 return false; 1957 return false;
1960} 1958}
1961 1959
@@ -1970,6 +1968,8 @@ void Ramses::timerEvent ( QTimerEvent * )
1970 1968
1971bool Ramses::setSoftSuspend ( bool soft ) 1969bool Ramses::setSoftSuspend ( bool soft )
1972{ 1970{
1971 qDebug("Ramses::setSoftSuspend(%d)", soft);
1972#if 0
1973 bool res = false; 1973 bool res = false;
1974 int fd; 1974 int fd;
1975 1975
@@ -1998,6 +1998,14 @@ bool Ramses::setSoftSuspend ( bool soft )
1998 perror ( "/dev/apm_bios or /dev/misc/apm_bios" ); 1998 perror ( "/dev/apm_bios or /dev/misc/apm_bios" );
1999 1999
2000 return res; 2000 return res;
2001#else
2002 return true;
2003#endif
2004}
2005
2006bool Ramses::suspend ( )
2007{
2008 qDebug("Ramses::suspend");
2001} 2009}
2002 2010
2003/** 2011/**
@@ -2005,6 +2013,8 @@ bool Ramses::setSoftSuspend ( bool soft )
2005 */ 2013 */
2006bool Ramses::setDisplayStatus ( bool on ) 2014bool Ramses::setDisplayStatus ( bool on )
2007{ 2015{
2016 qDebug("Ramses::setDisplayStatus(%d)", on);
2017#if 0
2008 bool res = false; 2018 bool res = false;
2009 int fd; 2019 int fd;
2010 2020
@@ -2013,25 +2023,37 @@ bool Ramses::setDisplayStatus ( bool on )
2013 ::close ( fd ); 2023 ::close ( fd );
2014 } 2024 }
2015 return res; 2025 return res;
2026#else
2027 return true;
2028#endif
2016} 2029}
2017 2030
2018 2031
2032/*
2033 * We get something between 0..255 into us
2034*/
2019bool Ramses::setDisplayBrightness ( int bright ) 2035bool Ramses::setDisplayBrightness ( int bright )
2020{ 2036{
2021 qDebug( "ODevice for Ramses: setDisplayBrightness( %d )", bright ); 2037 qDebug("Ramses::setDisplayBrightness(%d)", bright);
2022 bool res = false; 2038 bool res = false;
2023 int fd; 2039 int fd;
2024 2040
2041 // pwm1 brighness: 20 steps 500..0 (dunkel->hell)
2042
2025 if ( bright > 255 ) 2043 if ( bright > 255 )
2026 bright = 100; 2044 bright = 255;
2027 if ( bright < 0 ) 2045 if ( bright < 0 )
2028 bright = 0; 2046 bright = 0;
2047 bright = 500-(bright * 500 / 255);
2029 2048
2030 if (( fd = ::open ( "/proc/sys/board/pwm0", O_WRONLY )) >= 0 ) { 2049 if ((fd = ::open("/proc/sys/board/pwm1", O_WRONLY)) >= 0) {
2050 qDebug(" %d -> pwm1", bright);
2031 char writeCommand[100]; 2051 char writeCommand[100];
2032 const int count = sprintf( writeCommand, "%d\n", bright); 2052 const int count = sprintf( writeCommand, "%d\n", bright);
2033 res = ( ::write ( fd, writeCommand, count ) != -1 ); 2053 res = ( ::write ( fd, writeCommand, count ) != -1 );
2034 ::close ( fd ); 2054 ::close ( fd );
2055 } else {
2056 qWarning("no write");
2035 } 2057 }
2036 return res; 2058 return res;
2037} 2059}
@@ -2039,5 +2061,38 @@ bool Ramses::setDisplayBrightness ( int bright )
2039 2061
2040int Ramses::displayBrightnessResolution ( ) const 2062int Ramses::displayBrightnessResolution ( ) const
2041{ 2063{
2042 return 100; 2064 return 32;
2065}
2066
2067bool Ramses::setDisplayContrast(int contr)
2068{
2069 qDebug("Ramses::setDisplayContrast(%d)", contr);
2070 bool res = false;
2071 int fd;
2072
2073 // pwm0 contrast: 35 steps 65..100 (dunkel->hell)
2074
2075 if (contr > 255 )
2076 contr = 255;
2077 if (contr < 0)
2078 contr = 0;
2079 contr = 65 + (contr * 350 / 255);
2080
2081 if ((fd = ::open("/proc/sys/board/pwm0", O_WRONLY)) >= 0) {
2082 qDebug(" %d -> pwm0", contr);
2083 char writeCommand[100];
2084 const int count = sprintf(writeCommand, "%d\n", contr);
2085 res = (::write(fd, writeCommand, count) != -1);
2086 res = true;
2087 ::close(fd);
2088 } else {
2089 qWarning("no write");
2090 }
2091 return res;
2092}
2093
2094
2095int Ramses::displayContrastResolution() const
2096{
2097 return 32;
2043} 2098}
diff --git a/libopie/odevice.h b/libopie/odevice.h
index 5829440..6c4830e 100644
--- a/libopie/odevice.h
+++ b/libopie/odevice.h
@@ -181,6 +181,8 @@ public:
181 virtual bool setDisplayStatus ( bool on ); 181 virtual bool setDisplayStatus ( bool on );
182 virtual bool setDisplayBrightness ( int brightness ); 182 virtual bool setDisplayBrightness ( int brightness );
183 virtual int displayBrightnessResolution ( ) const; 183 virtual int displayBrightnessResolution ( ) const;
184 virtual bool setDisplayContrast ( int contrast );
185 virtual int displayContrastResolution ( ) const;
184 186
185// input / output 187// input / output
186 //FIXME playAlarmSound and al might be better -zecke 188 //FIXME playAlarmSound and al might be better -zecke