busexample.pp 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. program busexample;
  2. {$ifdef fpc}
  3. {$mode objfpc}{$H+}
  4. {$endif}
  5. uses
  6. {$IFDEF UNIX}{$IFDEF UseCThreads}
  7. cthreads,
  8. {$ENDIF}{$ENDIF}
  9. SysUtils,
  10. ctypes,
  11. dbus;
  12. procedure BusSend;
  13. begin
  14. end;
  15. procedure BusReceive;
  16. begin
  17. end;
  18. procedure BusListen;
  19. begin
  20. end;
  21. procedure BusQuery;
  22. begin
  23. end;
  24. const
  25. SINTAX_TEXT = 'Syntax: dbus-example [send|receive|listen|query] [<param>]';
  26. var
  27. err: DBusError;
  28. conn: PDBusConnection;
  29. ret: cint;
  30. begin
  31. { Initializes the errors }
  32. dbus_error_init(@err);
  33. { Connection }
  34. conn := dbus_bus_get(DBUS_BUS_SESSION, @err);
  35. if dbus_error_is_set(@err) <> 0 then
  36. begin
  37. WriteLn('Connection Error: ' + err.message);
  38. dbus_error_free(@err);
  39. end;
  40. if conn = nil then Exit;
  41. { Request the name of the bus }
  42. ret := dbus_bus_request_name(conn, 'test.method.server', DBUS_NAME_FLAG_REPLACE_EXISTING, @err);
  43. if dbus_error_is_set(@err) <> 0 then
  44. begin
  45. WriteLn('Name Error: ' + err.message);
  46. dbus_error_free(@err);
  47. end;
  48. if ret <> DBUS_REQUEST_NAME_REPLY_PRIMARY_OWNER then Exit;
  49. { Parses parameters }
  50. if (ParamCount <> 1) and (ParamCount <> 2) then WriteLn(SINTAX_TEXT)
  51. else
  52. begin
  53. if ParamStr(1) = 'send' then BusSend
  54. else if ParamStr(1) = 'receive' then BusReceive
  55. else if ParamStr(1) = 'listen' then BusListen
  56. else if ParamStr(1) = 'query' then BusQuery
  57. else WriteLn(SINTAX_TEXT);
  58. end;
  59. { Finalization }
  60. dbus_connection_close(conn);
  61. end.