Platform Development

Material download:

Maemo Chinook Platform Development training material is available here.

Maemo Chinook Platform Development

- introduction to maemo platform and service development
- maemo Getting Started and Application Development as prerequisite
- can be used (together with Getting Started) as independent training material
- planned to be 2 day class room course
- course content as html is available here

Table of Contents:

  • Introduction
    • Introduction to maemo Platform Development
  • Chapter 01 - D-Bus, The Message Bus System
    • Introduction to D-Bus
    • D-Bus architecture and terminology
    • Addressing and names in D-Bus
    • Role of D-Bus in maemo
    • Programming directly with libdbus
  • Chapter 02 - LibOSSO
    • Introduction to LibOSSO
    • Using LibOSSO for D-Bus method calls
    • Asynchronous method calls with LibOSSO
    • Device state and mode notifications
    • Simulating device mode changes
  • Chapter 03 - Using the GLib wrappers for D-Bus
    • Introduction to GObjects
    • D-Bus interface definition using XML
    • Generating automatic stub code
    • Creating a simple GObject for D-Bus
    • Publishing a GType on the D-Bus
    • Using the GLib/D-Bus wrapper from a client
    • D-Bus introspection
  • Chapter 04 - Implementing and using D-Bus signals
    • D-Bus Signal properties
    • Declaring signals in the interface XML
    • Emitting signals from a GObject
    • Catching signals in GLib/D-Bus clients
    • Tracing D-Bus signals
  • Chapter 05 - Asynchronous GLib/D-Bus
    • Asynchronicity in D-Bus clients
    • Slow test server
    • Asynchronous method calls using stubs
    • Problems with asynchronicity
    • Asynchronous method calls using GLib wrappers
  • Chapter 06 - Asynchronous GConf
    • Listening to changes in GConf
    • Implementing notifications on changes in GConf
  • Chapter 07 - D-Bus server design issues
    • Definition of a server
    • Daemonization
    • Event loops and power consumption
    • Supporting parallel requests
    • Debugging
  • APPENDIX A - Source code for the libdbus example
    • libdbus-example/dbus-example.c
    • libdbus-example/Makefile
  • APPENDIX B - Source code for the LibOSSO RPC examples
    • libosso-example-sync/libosso-rpc-sync.c
    • libosso-example-sync/Makefile
    • libosso-example-async/libosso-rpc-async.c
    • libosso-example-async/Makefile
  • APPENDIX C - Source code for flashlight
    • libosso-flashlight/flashlight.c
    • libosso-flashlight/Makefile
  • APPENDIX D - Source code for the GLib/D-Bus synchronous example
    • glib-dbus-sync/common-defs.h
    • glib-dbus-sync/value-dbus-interface.xml
    • glib-dbus-sync/server.c
    • glib-dbus-sync/client.c
    • glib-dbus-sync/Makefile
  • APPENDIX E - Source code for the GLib/D-Bus signal example
    • glib-dbus-signals/common-defs.h
    • glib-dbus-signals/value-dbus-interface.xml
    • glib-dbus-signals/server.c
    • glib-dbus-signals/client.c
    • glib-dbus-signals/Makefile
  • APPENDIX F - Source code for the GLib/D-Bus asynchronous examples
    • glib-dbus-async/common-defs.h
    • glib-dbus-async/value-dbus-interface.xml
    • glib-dbus-async/server.c
    • glib-dbus-async/client-stubs.c
    • glib-dbus-async/client-glib.c
    • glib-dbus-async/Makefile
  • APPENDIX G - Source code for the asynchronous GConf example
    • gconf-listener/gconf-key-watch.c
    • gconf-listener/Makefile