summaryrefslogtreecommitdiff
path: root/libopie
authorsandman <sandman>2002-11-20 11:29:08 (UTC)
committer sandman <sandman>2002-11-20 11:29:08 (UTC)
commitb9240be9e0bffe30d696af8c83643ff5e9a7b852 (patch) (side-by-side diff)
tree25fcb258b90a993f08a3cfeb38b612ac212fdeea /libopie
parentd61ea8bddc6cebc619599dc021d8857e82a885ee (diff)
downloadopie-b9240be9e0bffe30d696af8c83643ff5e9a7b852.zip
opie-b9240be9e0bffe30d696af8c83643ff5e9a7b852.tar.gz
opie-b9240be9e0bffe30d696af8c83643ff5e9a7b852.tar.bz2
This file contains hacks or workarounds, that make it possible to use a normal
libopie arm build (iPAQ or OZ) directly on the Sharp retail ROM. This way, we only need one 'official' libopie binary for all platforms. 1) Opie's libqpe.so has an additional function in Sound, which is utilized in ODevice: ok this is really evil ;), but Sound::isFinished is only needed in the iPAQ part of ODevice, which is never called on Z's we add a "weak" symbol here. This will be used, if ld.so does not find a normal ("hard") symbol of the same name - hence only on the retail Z
Diffstat (limited to 'libopie') (more/less context) (ignore whitespace changes)
-rw-r--r--libopie/libopie.pro1
-rw-r--r--libopie/sharp_compat.cpp18
2 files changed, 19 insertions, 0 deletions
diff --git a/libopie/libopie.pro b/libopie/libopie.pro
index a80a407..ef82dfd 100644
--- a/libopie/libopie.pro
+++ b/libopie/libopie.pro
@@ -38,6 +38,7 @@ HEADERS = ofontmenu.h \
SOURCES = ofontmenu.cc \
ocolorbutton.cpp \
+ sharp_compat.cpp \
xmltree.cc \
ofiledialog.cc ofileselector.cc \
ocheckitem.cpp tododb.cpp todoevent.cpp \
diff --git a/libopie/sharp_compat.cpp b/libopie/sharp_compat.cpp
new file mode 100644
index 0000000..1d16a09
--- a/dev/null
+++ b/libopie/sharp_compat.cpp
@@ -0,0 +1,18 @@
+/*
+ * This file contains hacks or workarounds, that make it possible to use a normal
+ * libopie arm build (iPAQ or OZ) directly on the Sharp retail ROM.
+ * This way, we only need one 'official' libopie binary for all platforms.
+ */
+
+
+// 1) Opie's libqpe.so has an additional function in Sound, which is utilized
+// in ODevice:
+
+// ok this is really evil ;), but Sound::isFinished is only needed in the
+// iPAQ part of ODevice, which is never called on Z's
+// we add a "weak" symbol here. This will be used, if ld.so does not find
+// a normal ("hard") symbol of the same name - hence only on the retail Z
+
+struct Sound { bool Sound::isFinished ( ) const __attribute__(( weak )); };
+bool Sound::isFinished ( ) const { return true; }
+