summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--library/opie-base.control2
-rw-r--r--library/qpeapplication.cpp181
-rw-r--r--library/qpeapplication.h6
3 files changed, 112 insertions, 77 deletions
diff --git a/library/opie-base.control b/library/opie-base.control
index f883268..e610b8b 100644
--- a/library/opie-base.control
+++ b/library/opie-base.control
@@ -1,10 +1,10 @@
Files: etc/qimpen etc/colors etc/init.d/qpe etc/rc2.d/S98qpe bin/qpe-reorgfiles $QTDIR/lib/libqpe.so.$VERSION_MAJ.$VERSION_MIN.$VERSION_PAT $QTDIR/lib/libqpe.so.$VERSION_MAJ.$VERSION_MIN $QTDIR/lib/libqpe.so.$VERSION_MAJ apps/__7separator.desktop apps/__9quit.desktop apps/*/.directory etc/mime.types apps/Settings/quit.desktop pics/UnknownDocument-14.png pics/UnknownDocument.png
Priority: required
Section: opie/system
Maintainer: Warwick Allison <warwick@trolltech.com>
Architecture: arm
-Version: $QPE_VERSION-$SUB_VERSION
+Version: $QPE_VERSION-$SUB_VERSION.1
Depends: qt-embedded (>=$QTE_VERSION), opie-qcop, opie-taskbar, opie-pics, opie-sounds, apmd
Description: Base Qtopia environment
A complete GUI environment for handhelds.
You will probably want to install one of the opie-i18n-* packages.
diff --git a/library/qpeapplication.cpp b/library/qpeapplication.cpp
index 4dbfbd8..a55f5f9 100644
--- a/library/qpeapplication.cpp
+++ b/library/qpeapplication.cpp
@@ -154,43 +154,63 @@ public:
if ( dot >= 0 )
name = name.left(dot);
QImage img = Resource::loadImage(name);
if ( !img.isNull() )
r = new QImageDrag(img);
} while (!r && sl>0);
}
return r;
}
};
static int muted=0;
+static int micMuted=0;
static void setVolume(int t=0, int percent=-1)
{
- switch (t) {
- case 0: {
- Config cfg("Sound");
- cfg.setGroup("System");
- if ( percent < 0 )
- percent = cfg.readNumEntry("Volume",50);
- int fd = 0;
- if ((fd = open("/dev/mixer", O_RDWR))>=0) {
- int vol = muted ? 0 : percent;
- // set both channels to same volume
- vol |= vol << 8;
- ioctl(fd, MIXER_WRITE(0), &vol);
- ::close(fd);
- }
- } break;
- }
+ switch (t) {
+ case 0: {
+ Config cfg("Sound");
+ cfg.setGroup("System");
+ if ( percent < 0 )
+ percent = cfg.readNumEntry("Volume",50);
+ int fd = 0;
+ if ((fd = open("/dev/mixer", O_RDWR))>=0) {
+ int vol = muted ? 0 : percent;
+ // set both channels to same volume
+ vol |= vol << 8;
+ ioctl(fd, MIXER_WRITE(0), &vol);
+ ::close(fd);
+ }
+ } break;
+ }
+}
+
+static void setMic(int t=0, int percent=-1)
+{
+ switch (t) {
+ case 0: {
+ Config cfg("Sound");
+ cfg.setGroup("System");
+ if ( percent < 0 )
+ percent = cfg.readNumEntry("Mic",50);
+
+ int fd = 0;
+ int mic = micMuted ? 0 : percent;
+ if ((fd = open("/dev/mixer", O_RDWR))>=0) {
+ ioctl(fd, MIXER_WRITE(SOUND_MIXER_MIC), &mic);
+ ::close(fd);
+ }
+ } break;
+ }
}
int qpe_sysBrightnessSteps()
{
#if defined(QT_QWS_IPAQ)
return 255;
#elif defined(QT_QWS_EBX)
return 4;
#else
return 255; // ?
#endif
}
@@ -860,150 +880,159 @@ void QPEApplication::applyStyle()
pal.setColor( QPalette::Disabled, QColorGroup::Text,
pal.color(QPalette::Active, QColorGroup::Background).dark() );
setPalette( pal, TRUE );
}
void QPEApplication::systemMessage( const QCString &msg, const QByteArray &data)
{
#ifdef Q_WS_QWS
QDataStream stream( data, IO_ReadOnly );
if ( msg == "applyStyle()" ) {
- applyStyle();
+ applyStyle();
} else if ( msg == "setScreenSaverInterval(int)" ) {
- if ( type() == GuiServer ) {
+ if ( type() == GuiServer ) {
int time;
stream >> time;
setScreenSaverInterval(time);
- }
+ }
} else if ( msg == "setScreenSaverIntervals(int,int,int)" ) {
- if ( type() == GuiServer ) {
+ if ( type() == GuiServer ) {
int t1,t2,t3;
stream >> t1 >> t2 >> t3;
setScreenSaverIntervals(t1,t2,t3);
- }
+ }
} else if ( msg == "setBacklight(int)" ) {
- if ( type() == GuiServer ) {
+ if ( type() == GuiServer ) {
int bright;
stream >> bright;
setBacklight(bright);
- }
+ }
} else if ( msg == "setDefaultRotation(int)" ) {
- if ( type() == GuiServer ) {
+ if ( type() == GuiServer ) {
int r;
stream >> r;
setDefaultRotation(r);
- }
+ }
} else if ( msg == "shutdown()" ) {
- if ( type() == GuiServer )
+ if ( type() == GuiServer )
shutdown();
} else if ( msg == "quit()" ) {
- if ( type() != GuiServer )
+ if ( type() != GuiServer )
tryQuit();
} else if ( msg == "forceQuit()" ) {
- if ( type() != GuiServer )
+ if ( type() != GuiServer )
quit();
} else if ( msg == "restart()" ) {
- if ( type() == GuiServer )
+ if ( type() == GuiServer )
restart();
} else if ( msg == "grabKeyboard(QString)" ) {
- QString who;
- stream >> who;
- if ( who.isEmpty() )
+ QString who;
+ stream >> who;
+ if ( who.isEmpty() )
d->kbgrabber = 0;
- else if ( who != d->appName )
+ else if ( who != d->appName )
d->kbgrabber = 1;
- else
+ else
d->kbgrabber = 2;
} else if ( msg == "language(QString)" ) {
- if ( type() == GuiServer ) {
+ if ( type() == GuiServer ) {
QString l;
stream >> l;
QString cl = getenv("LANG");
if ( cl != l ) {
- if ( l.isNull() )
+ if ( l.isNull() )
unsetenv( "LANG" );
- else
+ else
setenv( "LANG", l.latin1(), 1 );
- restart();
+ restart();
}
- }
+ }
} else if ( msg == "timeChange(QString)" ) {
- QString t;
- stream >> t;
- if ( t.isNull() )
+ QString t;
+ stream >> t;
+ if ( t.isNull() )
unsetenv( "TZ" );
- else
+ else
setenv( "TZ", t.latin1(), 1 );
- // emit the signal so everyone else knows...
- emit timeChanged();
+ // emit the signal so everyone else knows...
+ emit timeChanged();
} else if ( msg == "execute(QString)" ) {
- if ( type() == GuiServer ) {
+ if ( type() == GuiServer ) {
QString t;
stream >> t;
Global::execute( t );
- }
+ }
} else if ( msg == "execute(QString,QString)" ) {
- if ( type() == GuiServer ) {
+ if ( type() == GuiServer ) {
QString t,d;
stream >> t >> d;
Global::execute( t, d );
- }
+ }
} else if ( msg == "addAlarm(QDateTime,QCString,QCString,int)" ) {
- if ( type() == GuiServer ) {
+ if ( type() == GuiServer ) {
QDateTime when;
QCString channel, message;
int data;
stream >> when >> channel >> message >> data;
AlarmServer::addAlarm( when, channel, message, data );
- }
+ }
} else if ( msg == "deleteAlarm(QDateTime,QCString,QCString,int)" ) {
- if ( type() == GuiServer ) {
+ if ( type() == GuiServer ) {
QDateTime when;
QCString channel, message;
int data;
stream >> when >> channel >> message >> data;
AlarmServer::deleteAlarm( when, channel, message, data );
- }
+ }
} else if ( msg == "clockChange(bool)" ) {
- int tmp;
- stream >> tmp;
- emit clockChanged( tmp );
+ int tmp;
+ stream >> tmp;
+ emit clockChanged( tmp );
} else if ( msg == "weekChange(bool)" ) {
- int tmp;
- stream >> tmp;
- emit weekChanged( tmp );
+ int tmp;
+ stream >> tmp;
+ emit weekChanged( tmp );
} else if ( msg == "setDateFormat(DateFormat)" ) {
- DateFormat tmp;
- stream >> tmp;
- emit dateFormatChanged( tmp );
+ DateFormat tmp;
+ stream >> tmp;
+ emit dateFormatChanged( tmp );
} else if ( msg == "setVolume(int,int)" ) {
- int t,v;
- stream >> t >> v;
- setVolume(t,v);
- emit volumeChanged( muted );
+ int t,v;
+ stream >> t >> v;
+ setVolume(t,v);
+ emit volumeChanged( muted );
} else if ( msg == "volumeChange(bool)" ) {
- stream >> muted;
- setVolume();
- emit volumeChanged( muted );
+ stream >> muted;
+ setVolume();
+ emit volumeChanged( muted );
+ } else if ( msg == "setMic(int,int)") { // Added: 2002-02-08 by Jeremy Cowgar <jc@cowgar.com>
+ int t,v;
+ stream >> t >> v;
+ setMic(t,v);
+ emit micChanged( micMuted );
+ } else if ( msg == "micChange(bool)" ) { // Added: 2002-02-08 by Jeremy Cowgar <jc@cowgar.com>
+ stream >> micMuted;
+ setMic();
+ emit micChanged( micMuted );
} else if ( msg == "setScreenSaverMode(int)" ) {
- if ( type() == GuiServer ) {
- int old = disable_suspend;
- stream >> disable_suspend;
- //qDebug("setScreenSaverMode(%d)", disable_suspend );
- if ( disable_suspend > old )
- setScreenSaverInterval( -1 );
+ if ( type() == GuiServer ) {
+ int old = disable_suspend;
+ stream >> disable_suspend;
+ //qDebug("setScreenSaverMode(%d)", disable_suspend );
+ if ( disable_suspend > old )
+ setScreenSaverInterval( -1 );
+ }
}
- }
#endif
}
/*!
\internal
*/
bool QPEApplication::raiseAppropriateWindow()
{
bool r=FALSE;
// ########## raise()ing main window should raise and set active
// ########## it and then all childen. This belongs in Qt/Embedded
QWidget *top = d->qpe_main_widget;
diff --git a/library/qpeapplication.h b/library/qpeapplication.h
index fd5e57d..23606db 100644
--- a/library/qpeapplication.h
+++ b/library/qpeapplication.h
@@ -76,24 +76,25 @@ public:
void showMainDocumentWidget( QWidget*, bool nomax=FALSE );
static void setKeepRunning();
bool keepRunning() const;
int exec();
signals:
void clientMoused();
void timeChanged();
void clockChanged( bool pm );
void volumeChanged( bool muted );
+ void micChanged( bool muted );
void appMessage( const QCString& msg, const QByteArray& data);
void weekChanged( bool startOnMonday );
void dateFormatChanged( DateFormat );
void flush();
void reload();
private slots:
void systemMessage( const QCString &msg, const QByteArray &data );
void pidMessage( const QCString &msg, const QByteArray &data );
void removeSenderFromStylusDict();
void hideOrQuit();
@@ -108,17 +109,22 @@ protected:
bool keyboardGrabbed() const;
bool raiseAppropriateWindow();
virtual void tryQuit();
private:
void mapToDefaultAction( QWSKeyEvent *ke, int defKey );
#if defined(Q_WS_QWS) && !defined(QT_NO_COP)
QCopChannel *sysChannel;
QCopChannel *pidChannel;
#endif
QPEApplicationData *d;
+
+ bool reserved_sh;
+
+
+
};
#endif