node.inc 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. type
  2. Ppw_node = ^Tpw_node;
  3. Ppw_node_events = ^Tpw_node_events;
  4. Ppw_node_info = ^Tpw_node_info;
  5. Ppw_node_methods = ^Tpw_node_methods;
  6. Ppw_node_state = ^Tpw_node_state;
  7. Tpw_node = record
  8. {undefined structure}
  9. end;
  10. Tpw_node_state = (
  11. PW_NODE_STATE_ERROR := -(1),
  12. PW_NODE_STATE_CREATING := 0,
  13. PW_NODE_STATE_SUSPENDED := 1,
  14. PW_NODE_STATE_IDLE := 2,
  15. PW_NODE_STATE_RUNNING := 3);
  16. Tpw_node_info = record
  17. id: Tuint32_t;
  18. max_input_ports: Tuint32_t;
  19. max_output_ports: Tuint32_t;
  20. change_mask: Tuint64_t;
  21. n_input_ports: Tuint32_t;
  22. n_output_ports: Tuint32_t;
  23. state: Tpw_node_state;
  24. error: PChar;
  25. props: Pspa_dict;
  26. params: Pspa_param_info;
  27. n_params: Tuint32_t;
  28. end;
  29. Tpw_node_events = record
  30. version: Tuint32_t;
  31. info: procedure(object_: pointer; info: Ppw_node_info); cdecl;
  32. param: procedure(object_: pointer; seq: longint; id: Tuint32_t; index: Tuint32_t; Next: Tuint32_t; param: Pspa_pod); cdecl;
  33. end;
  34. Tpw_node_methods = record
  35. version: Tuint32_t;
  36. add_listener: function(object_: pointer; listener: Pspa_hook; events: Ppw_node_events; Data: pointer) : longint; cdecl;
  37. subscribe_params: function(object_: pointer; ids: Puint32_t; n_ids: Tuint32_t) : longint; cdecl;
  38. enum_params: function(object_: pointer; seq: longint; id: Tuint32_t; start: Tuint32_t; num: Tuint32_t; filter: Pspa_pod) : longint; cdecl;
  39. set_param: function(object_: pointer; id: Tuint32_t; flags: Tuint32_t; param: Pspa_pod) : longint; cdecl;
  40. send_command: function(object_: pointer; command: Pspa_command) : longint; cdecl;
  41. end;
  42. function pw_node_state_as_string(state: Tpw_node_state) : PChar; cdecl; external libpipewirename Name 'pw_node_state_as_string';
  43. function pw_node_info_update(info: Ppw_node_info; update: Ppw_node_info) : Ppw_node_info; cdecl; external libpipewirename Name 'pw_node_info_update';
  44. function pw_node_info_merge(info: Ppw_node_info; update: Ppw_node_info; reset: T_Bool) : Ppw_node_info; cdecl; external libpipewirename Name 'pw_node_info_merge';
  45. procedure pw_node_info_free(info: Ppw_node_info); cdecl; external libpipewirename Name 'pw_node_info_free';