-
Notifications
You must be signed in to change notification settings - Fork 1
Qt Port Guide
Qt Embedded relies on the host OS to provide these basic functionalities. We just need to implement these mechanisms on top of our channels in Tessellation.
-
Shared Memory and Semaphores
-
Relevant files: qsharedmemory_p.cpp, qlock_qws.cpp, qwslock.cpp
-
Needed to share window regions between client and server and run multiple applications
-
Currently, the Linux implementation uses shared memory (System V) and semaphores (for sync-ing)
-
In Tessellation, we have shared memory (?) and channels; these are appropriate for IPC.
-
-
Inter-Application Communication
-
Relevant file: qwssocket_qws.cpp
-
Needed to communicate between applications (clients) and to run multiple applications.
-
Linux implementation uses Unix-domain sockets.
-
In Tessellation, we have channels.
-
-
Screen Management
-
Relevant file: qscreen_qws.cpp
-
Qt/Embedded convention: + Clients render their widgets to memory + Server display contents in that memory to screen
-
Screen driver (framebuffer) is needed. + It needs a pointer to memory-mapped framebuffer and info about width, height, bit depth
-
We currently don’t have this in Tessellation.
-
-
Optional Sound Management
-
Relevant file: soundqss_qws.cpp
-
-
Event Dispatching
-
Relevant file: qeventdispatcher_qws.cpp
-
Needed to multiplex events on the server side.
-
In Linux, select()/poll() would suffice.
-
In Tessellation, our main communication mechanism is channels. This implies we need a mechanism to multiplex channels in the application. We would have to do this sooner or later for our GUI service cell anyways.
-