1/*** 2 This file is part of PulseAudio. 3 4 Copyright 2009 Lennart Poettering 5 6 PulseAudio is free software; you can redistribute it and/or modify 7 it under the terms of the GNU Lesser General Public License as published 8 by the Free Software Foundation; either version 2.1 of the License, 9 or (at your option) any later version. 10 11 PulseAudio is distributed in the hope that it will be useful, but 12 WITHOUT ANY WARRANTY; without even the implied warranty of 13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 General Public License for more details. 15 16 You should have received a copy of the GNU Lesser General Public License 17 along with PulseAudio; if not, see <http://www.gnu.org/licenses/>. 18***/ 19 20using GLib; 21using Posix; 22 23[CCode (cheader_filename="pulse/pulseaudio.h")] 24namespace PulseAudio { 25 26 [CCode (cname="pa_get_library_version")] 27 public unowned string get_library_version(); 28 29 [CCode (cname="PA_API_VERSION")] 30 public const int API_VERSION; 31 32 [CCode (cname="PA_PROTOCOL_VERSION")] 33 public const int PROTOCOL_VERSION; 34 35 [CCode (cname="PA_MAJOR")] 36 public const int MAJOR; 37 38 [CCode (cname="PA_MINOR")] 39 public const int MINOR; 40 41 [CCode (cname="PA_MICRO")] 42 public const int MICRO; 43 44 [CCode (cname="PA_CHECK_VERSION")] 45 public bool CHECK_VERSION(int major, int minor, int micro); 46 47 [CCode (cname="PA_INVALID_INDEX")] 48 public const uint32 INVALID_INDEX; 49 50 [CCode (cname="pa_free_cb_t", has_target=false)] 51 public delegate void FreeCb(void *p); 52 53 [CCode (cname="pa_sample_format_t", cprefix="PA_SAMPLE_", has_type_id=false)] 54 public enum SampleFormat { 55 U8, 56 ALAW, 57 ULAW, 58 S16LE, 59 S16BE, 60 FLOAT32LE, 61 FLOAT32BE, 62 S32LE, 63 S32BE, 64 S24LE, 65 S24BE, 66 S24_32LE, 67 S24_32BE, 68 MAX, 69 S16NE, 70 S16RE, 71 FLOAT32NE, 72 FLOAT32RE, 73 S32NE, 74 S32RE, 75 S24NE, 76 S24RE, 77 S24_32NE, 78 S24_32RE; 79 80 [CCode (cname="pa_sample_size_of_format")] 81 public size_t size(); 82 83 [CCode (cname="pa_sample_format_to_string")] 84 public unowned string? to_string(); 85 86 [CCode (cname="pa_sample_format_is_le")] 87 public int is_le(); 88 89 [CCode (cname="pa_sample_format_is_be")] 90 public int is_be(); 91 92 [CCode (cname="pa_sample_format_is_ne")] 93 public int is_ne(); 94 95 [CCode (cname="pa_sample_format_is_re")] 96 public int is_re(); 97 98 [CCode (cname="pa_parse_sample_format")] 99 public static SampleFormat parse(string b); 100 } 101 102 [CCode (cname="pa_usec_t")] 103 public struct usec : uint64 { 104 } 105 106 [CCode (cname="pa_sample_spec", has_type_id=false)] 107 public struct SampleSpec { 108 public SampleFormat format; 109 public uint32 rate; 110 public uint8 channels; 111 112 [CCode (cname="PA_SAMPLE_SPEC_SNPRINT_MAX")] 113 public const size_t SNPRINT_MAX; 114 115 [CCode (cname="pa_bytes_per_second")] 116 public size_t bytes_per_second(); 117 118 [CCode (cname="pa_frame_size")] 119 public size_t frame_size(); 120 121 [CCode (cname="pa_sample_size")] 122 public size_t sample_size(); 123 124 [CCode (cname="pa_bytes_to_usec", instance_pos=1.1)] 125 public usec bytes_to_usec(size_t size); 126 127 [CCode (cname="pa_usec_to_bytes", instance_pos=1.1)] 128 public size_t usec_to_bytes(usec u); 129 130 [CCode (cname="pa_sample_spec_init")] 131 public unowned SampleSpec? init(); 132 133 [CCode (cname="pa_sample_spec_valid")] 134 public bool valid(); 135 136 [CCode (cname="pa_sample_spec_equal")] 137 public bool equal(SampleSpec other); 138 139 [CCode (cname="pa_sample_spec_snprint", instance_pos=3.1)] 140 public unowned string snprint(char[] buf); 141 142 public string sprint() { 143 var buffer = new char[SNPRINT_MAX]; 144 this.snprint(buffer); 145 return (string) buffer; 146 } 147 148 public string to_string() { 149 return sprint(); 150 } 151 152 [CCode (cname="pa_sample_spec_init")] 153 public SampleSpec(); 154 } 155 156 // [CCode (cname="PA_BYTES_SNPRINT_MAX")] 157 [CCode (cname="PA_SAMPLE_SPEC_SNPRINT_MAX")] 158 public const size_t BYTES_SNPRINT_MAX; 159 160 [CCode (cname="pa_bytes_snprint")] 161 public unowned string bytes_snprint(char[] buf, uint bytes); 162 163 public string bytes_sprint(uint bytes) { 164 var buffer = new char[BYTES_SNPRINT_MAX]; 165 bytes_snprint(buffer, bytes); 166 return (string) buffer; 167 } 168 169 [CCode (cname="pa_volume_t", has_type_id=false)] 170 public struct Volume : uint32 { 171 172 [CCode (cname="PA_SW_VOLUME_SNPRINT_DB_MAX")] 173 public const size_t SW_SNPRINT_DB_MAX; 174 175 [CCode (cname="PA_VOLUME_SNPRINT_MAX")] 176 public const size_t SNPRINT_MAX; 177 178 [CCode (cname="PA_VOLUME_MAX")] 179 public const Volume MAX; 180 181 [CCode (cname="PA_VOLUME_NORM")] 182 public const Volume NORM; 183 184 [CCode (cname="PA_VOLUME_MUTED")] 185 public const Volume MUTED; 186 187 // [CCode (cname="PA_VOLUME_INVALID")] 188 [CCode (cname="PA_VOLUME_MAX")] 189 public const Volume INVALID; 190 191 [CCode (cname="pa_volume_snprint", instance_pos = 3.1)] 192 public unowned string snprint(char[] s); 193 194 public string sprint() { 195 var buffer = new char[SNPRINT_MAX]; 196 this.snprint(buffer); 197 return (string) buffer; 198 } 199 200 public string to_string() { 201 return sprint(); 202 } 203 204 [CCode (cname="pa_sw_volume_snprint_dB", instance_pos = 3.1)] 205 public unowned string sw_snprint_dB(char[] s); 206 207 public string sw_sprint_dB() { 208 var buffer = new char[SW_SNPRINT_DB_MAX]; 209 this.sw_snprint_dB(buffer); 210 return (string) buffer; 211 } 212 213 [CCode (cname="pa_sw_volume_multiply")] 214 public Volume sw_multiply(Volume other); 215 216 [CCode (cname="pa_sw_volume_divide")] 217 public Volume sw_divide(Volume other); 218 219 [CCode (cname="pa_sw_volume_from_dB")] 220 public static Volume sw_from_dB(double f); 221 222 [CCode (cname="pa_sw_volume_to_dB")] 223 public double sw_to_dB(); 224 225 [CCode (cname="pa_sw_volume_from_linear")] 226 public static Volume sw_from_linear(double f); 227 228 [CCode (cname="pa_sw_volume_to_linear")] 229 public double sw_to_linear(); 230 } 231 232 [CCode (cname="PA_DECIBEL_MININFTY")] 233 public const double DECIBEL_MININFTY; 234 235 [CCode (cname="PA_CHANNELS_MAX")] 236 public const int CHANNELS_MAX; 237 238 [CCode (cname="PA_RATE_MAX")] 239 public const int RATE_MAX; 240 241 [CCode (cname="pa_cvolume", has_type_id=false)] 242 public struct CVolume { 243 public uint8 channels; 244 public Volume values[CHANNELS_MAX]; 245 246 [CCode (cname="PA_SW_CVOLUME_SNPRINT_DB_MAX")] 247 public const size_t SW_SNPRINT_DB_MAX; 248 249 [CCode (cname="PA_CVOLUME_SNPRINT_MAX")] 250 public const size_t SNPRINT_MAX; 251 252 [CCode (cname="pa_cvolume_equal")] 253 public bool equal(CVolume other); 254 255 [CCode (cname="pa_cvolume_init")] 256 public unowned CVolume? init(); 257 258 [CCode (cname="pa_cvolume_reset")] 259 public unowned CVolume? reset(uint8 channels); 260 261 [CCode (cname="pa_cvolume_mute")] 262 public unowned CVolume? mute(uint8 channels); 263 264 [CCode (cname="pa_cvolume_snprint", instance_pos = 3.1)] 265 public unowned string snprint(char[] s); 266 267 public string sprint() { 268 var buffer = new char[SNPRINT_MAX]; 269 this.snprint(buffer); 270 return (string) buffer; 271 } 272 273 public string to_string() { 274 return sprint(); 275 } 276 277 [CCode (cname="pa_sw_cvolume_snprint_dB", instance_pos = 3.1)] 278 public unowned string sw_snprint_dB(char [] s); 279 280 public string sw_sprint_dB() { 281 var buffer = new char[SW_SNPRINT_DB_MAX]; 282 this.sw_snprint_dB(buffer); 283 return (string) buffer; 284 } 285 286 [CCode (cname="pa_cvolume_init")] 287 public CVolume(); 288 289 [CCode (cname="pa_cvolume_avg")] 290 public Volume avg(); 291 292 [CCode (cname="pa_cvolume_max")] 293 public Volume max(); 294 295 [CCode (cname="pa_cvolume_min")] 296 public Volume min(); 297 298 [CCode (cname="pa_cvolume_avg_mask")] 299 public Volume avg_mask(ChannelMap map, ChannelPositionMask mask); 300 301 [CCode (cname="pa_cvolume_max_mask")] 302 public Volume max_mask(ChannelMap map, ChannelPositionMask mask); 303 304 [CCode (cname="pa_cvolume_min_mask")] 305 public Volume min_mask(ChannelMap map, ChannelPositionMask mask); 306 307 [CCode (cname="pa_cvolume_valid")] 308 public bool valid(); 309 310 [CCode (cname="pa_cvolume_channels_equal_to")] 311 public bool channels_equal_to(Volume other); 312 313 [CCode (cname="pa_cvolume_is_muted")] 314 public bool is_muted(); 315 316 [CCode (cname="pa_cvolume_is_norm")] 317 public bool is_norm(); 318 319 [CCode (cname="pa_sw_cvolume_multiply")] 320 public unowned CVolume? multiply(CVolume other); 321 322 [CCode (cname="pa_sw_cvolume_divide")] 323 public unowned CVolume? divide(CVolume other); 324 325 [CCode (cname="pa_sw_cvolume_multiply_scalar")] 326 public unowned CVolume? multiply_scalar(Volume other); 327 328 [CCode (cname="pa_sw_cvolume_divide_scalar")] 329 public unowned CVolume? divide_scalar(Volume other); 330 331 [CCode (cname="pa_cvolume_remap")] 332 public unowned CVolume? remap(ChannelMap from, ChannelMap to); 333 334 [CCode (cname="pa_cvolume_compatible")] 335 public bool compatible(SampleSpec ss); 336 337 [CCode (cname="pa_cvolume_compatible_with_channel_map")] 338 public bool compatible_with_channel_map(ChannelMap cm); 339 340 [CCode (cname="pa_cvolume_set")] 341 public unowned CVolume? set(uint8 channels, Volume v); 342 343 [CCode (cname="pa_cvolume_get_balance")] 344 public float get_balance(ChannelMap map); 345 346 [CCode (cname="pa_cvolume_set_balance")] 347 public unowned CVolume? set_balance(ChannelMap map, float b); 348 349 [CCode (cname="pa_cvolume_get_fade")] 350 public float get_fade(ChannelMap map); 351 352 [CCode (cname="pa_cvolume_set_fade")] 353 public unowned CVolume? set_fade(ChannelMap map, float f); 354 355 [CCode (cname="pa_cvolume_scale")] 356 public unowned CVolume? scale(Volume max); 357 358 [CCode (cname="pa_cvolume_scale_mask")] 359 public unowned CVolume? scale_mask(Volume max, ChannelMap map, ChannelPositionMask mask); 360 361 [CCode (cname="pa_cvolume_set_position")] 362 public unowned CVolume? set_position(ChannelMap map, ChannelPosition p, Volume v); 363 364 [CCode (cname="pa_cvolume_get_position")] 365 public Volume get_position(ChannelMap map, ChannelPosition p); 366 367 [CCode (cname="pa_cvolume_merge")] 368 public unowned CVolume? merge(CVolume other); 369 370 [CCode (cname="pa_cvolume_inc")] 371 public unowned CVolume? inc(Volume plus = 1); 372 373 [CCode (cname="pa_cvolume_dec")] 374 public unowned CVolume? dec(Volume minus = 1); 375 } 376 377 [CCode (cname="pa_channel_map", has_type_id=false)] 378 public struct ChannelMap { 379 public uint8 channels; 380 // TODO: Replace array length with CHANNELS_MAX once vala's bug #647788 is fixed 381 public ChannelPosition map[32]; 382 383 [CCode (cname="PA_CHANNEL_MAP_SNPRINT_MAX")] 384 public const size_t SNPRINT_MAX; 385 386 [CCode (cname="pa_channel_map_init")] 387 public ChannelMap(); 388 389 [CCode (cname="pa_channel_map_init")] 390 public unowned ChannelMap? init(); 391 392 [CCode (cname="pa_channel_map_init_mono")] 393 public unowned ChannelMap? init_mono(); 394 395 [CCode (cname="pa_channel_map_init_stereo")] 396 public unowned ChannelMap? init_stereo(); 397 398 [CCode (cname="pa_channel_map_init_auto")] 399 public unowned ChannelMap? init_auto(uint8 channels, ChannelMapDef def = ChannelMapDef.DEFAULT); 400 401 [CCode (cname="pa_channel_map_init_extend")] 402 public unowned ChannelMap? init_extend(uint8 channels, ChannelMapDef def = ChannelMapDef.DEFAULT); 403 404 [CCode (cname="pa_channel_map_snprint", instance_pos = 3.1)] 405 public unowned string snprint(char[] s); 406 407 public string sprint() { 408 var buffer = new char[SNPRINT_MAX]; 409 this.snprint(buffer); 410 return (string) buffer; 411 } 412 413 public string to_string() { 414 return sprint(); 415 } 416 417 [CCode (cname="pa_channel_map_parse")] 418 public unowned ChannelMap? parse(string s); 419 420 [CCode (cname="pa_channel_map_equal")] 421 public bool equal(ChannelMap other); 422 423 [CCode (cname="pa_channel_map_superset")] 424 public bool superset(ChannelMap other); 425 426 [CCode (cname="pa_channel_map_valid")] 427 public bool valid(); 428 429 [CCode (cname="pa_channel_map_compatible")] 430 public bool compatible(SampleSpec ss); 431 432 [CCode (cname="pa_channel_map_can_balance")] 433 public bool can_balance(); 434 435 [CCode (cname="pa_channel_map_can_fade")] 436 public bool can_fade(); 437 438 [CCode (cname="pa_channel_map_to_name")] 439 public unowned string? to_name(); 440 441 [CCode (cname="pa_channel_map_to_pretty_name")] 442 public unowned string? to_pretty_name(); 443 444 [CCode (cname="pa_channel_map_has_position")] 445 public bool has_position(ChannelPosition p); 446 447 [CCode (cname="pa_channel_map_mask")] 448 public ChannelPositionMask mask(); 449 } 450 451 [CCode (cname="pa_channel_position_mask_t", has_type_id=false)] 452 public struct ChannelPositionMask : uint64 { 453 } 454 455 [CCode (cname="pa_channel_position_t", cprefix="PA_CHANNEL_POSITION_", has_type_id=false)] 456 public enum ChannelPosition { 457 INVALID, 458 MONO, 459 FRONT_LEFT, 460 FRONT_RIGHT, 461 FRONT_CENTER, 462 REAR_CENTER, 463 REAR_LEFT, 464 REAR_RIGHT, 465 LFE, 466 FRONT_LEFT_OF_CENTER, 467 FRONT_RIGHT_OF_CENTER, 468 SIDE_LEFT, 469 SIDE_RIGHT, 470 TOP_CENTER, 471 AUX0, 472 AUX1, 473 AUX2, 474 AUX3, 475 AUX4, 476 AUX5, 477 AUX6, 478 AUX7, 479 AUX8, 480 AUX9, 481 AUX10, 482 AUX11, 483 AUX12, 484 AUX13, 485 AUX14, 486 AUX15, 487 AUX16, 488 AUX17, 489 AUX18, 490 AUX19, 491 AUX20, 492 AUX21, 493 AUX22, 494 AUX23, 495 AUX24, 496 AUX25, 497 AUX26, 498 AUX27, 499 AUX28, 500 AUX29, 501 AUX30, 502 AUX31, 503 MAX; 504 505 [CCode (cname="PA_CHANNEL_POSITION_MASK")] 506 public ChannelPositionMask mask(); 507 508 [CCode (cname="pa_channel_position_to_string")] 509 public unowned string? to_string(); 510 511 [CCode (cname="pa_channel_position_to_pretty_string")] 512 public unowned string? to_pretty_string(); 513 514 [CCode (cname="pa_channel_position_from_string")] 515 public static ChannelPosition from_string(string s); 516 } 517 518 [CCode (cname="pa_channel_map_def_t", cprefix="PA_CHANNEL_MAP_", has_type_id=false)] 519 public enum ChannelMapDef { 520 AIFF, 521 WAVEEX, 522 AUX, 523 DEFAULT, 524 525 [CCode (cname="PA_CHANNEL_MAP_DEF_MAX")] 526 MAX 527 } 528 529 [Compact] 530 [CCode (cname="pa_proplist", cprefix="pa_proplist_", free_function="pa_proplist_free", has_type_id=false)] 531 public class Proplist { 532 533 [CCode (cname="PA_PROP_MEDIA_NAME")] 534 public const string PROP_MEDIA_NAME; 535 [CCode (cname="PA_PROP_MEDIA_TITLE")] 536 public const string PROP_MEDIA_TITLE; 537 [CCode (cname="PA_PROP_MEDIA_ARTIST")] 538 public const string PROP_MEDIA_ARTIST; 539 [CCode (cname="PA_PROP_MEDIA_COPYRIGHT")] 540 public const string PROP_MEDIA_COPYRIGHT; 541 [CCode (cname="PA_PROP_MEDIA_SOFTWARE")] 542 public const string PROP_MEDIA_SOFTWARE; 543 [CCode (cname="PA_PROP_MEDIA_LANGUAGE")] 544 public const string PROP_MEDIA_LANGUAGE; 545 [CCode (cname="PA_PROP_MEDIA_FILENAME")] 546 public const string PROP_MEDIA_FILENAME; 547 [CCode (cname="PA_PROP_MEDIA_ICON_NAME")] 548 public const string PROP_MEDIA_ICON_NAME; 549 [CCode (cname="PA_PROP_MEDIA_ROLE")] 550 public const string PROP_MEDIA_ROLE; 551 [CCode (cname="PA_PROP_EVENT_ID")] 552 public const string PROP_EVENT_ID; 553 [CCode (cname="PA_PROP_EVENT_DESCRIPTION")] 554 public const string PROP_EVENT_DESCRIPTION; 555 [CCode (cname="PA_PROP_EVENT_MOUSE_X")] 556 public const string PROP_EVENT_MOUSE_X; 557 [CCode (cname="PA_PROP_EVENT_MOUSE_Y")] 558 public const string PROP_EVENT_MOUSE_Y; 559 [CCode (cname="PA_PROP_EVENT_MOUSE_HPOS")] 560 public const string PROP_EVENT_MOUSE_HPOS; 561 [CCode (cname="PA_PROP_EVENT_MOUSE_VPOS")] 562 public const string PROP_EVENT_MOUSE_VPOS; 563 [CCode (cname="PA_PROP_EVENT_MOUSE_BUTTON")] 564 public const string PROP_EVENT_MOUSE_BUTTON; 565 [CCode (cname="PA_PROP_WINDOW_NAME")] 566 public const string PROP_WINDOW_NAME; 567 [CCode (cname="PA_PROP_WINDOW_ID")] 568 public const string PROP_WINDOW_ID; 569 [CCode (cname="PA_PROP_WINDOW_ICON_NAME")] 570 public const string PROP_WINDOW_ICON_NAME; 571 [CCode (cname="PA_PROP_WINDOW_X11_DISPLAY")] 572 public const string PROP_WINDOW_X11_DISPLAY; 573 [CCode (cname="PA_PROP_WINDOW_X11_SCREEN")] 574 public const string PROP_WINDOW_X11_SCREEN; 575 [CCode (cname="PA_PROP_WINDOW_X11_MONITOR")] 576 public const string PROP_WINDOW_X11_MONITOR; 577 [CCode (cname="PA_PROP_WINDOW_X11_XID")] 578 public const string PROP_WINDOW_X11_XID; 579 [CCode (cname="PA_PROP_APPLICATION_NAME")] 580 public const string PROP_APPLICATION_NAME; 581 [CCode (cname="PA_PROP_APPLICATION_ID")] 582 public const string PROP_APPLICATION_ID; 583 [CCode (cname="PA_PROP_APPLICATION_VERSION")] 584 public const string PROP_APPLICATION_VERSION; 585 [CCode (cname="PA_PROP_APPLICATION_ICON_NAME")] 586 public const string PROP_APPLICATION_ICON_NAME; 587 [CCode (cname="PA_PROP_APPLICATION_LANGUAGE")] 588 public const string PROP_APPLICATION_LANGUAGE; 589 [CCode (cname="PA_PROP_APPLICATION_PROCESS_ID")] 590 public const string PROP_APPLICATION_PROCESS_ID; 591 [CCode (cname="PA_PROP_APPLICATION_PROCESS_BINARY")] 592 public const string PROP_APPLICATION_PROCESS_BINARY; 593 [CCode (cname="PA_PROP_APPLICATION_PROCESS_USER")] 594 public const string PROP_APPLICATION_PROCESS_USER; 595 [CCode (cname="PA_PROP_APPLICATION_PROCESS_HOST")] 596 public const string PROP_APPLICATION_PROCESS_HOST; 597 [CCode (cname="PA_PROP_APPLICATION_PROCESS_MACHINE_ID")] 598 public const string PROP_APPLICATION_PROCESS_MACHINE_ID; 599 [CCode (cname="PA_PROP_APPLICATION_PROCESS_SESSION_ID")] 600 public const string PROP_APPLICATION_PROCESS_SESSION_ID; 601 [CCode (cname="PA_PROP_DEVICE_STRING")] 602 public const string PROP_DEVICE_STRING; 603 [CCode (cname="PA_PROP_DEVICE_API")] 604 public const string PROP_DEVICE_API; 605 [CCode (cname="PA_PROP_DEVICE_DESCRIPTION")] 606 public const string PROP_DEVICE_DESCRIPTION; 607 [CCode (cname="PA_PROP_DEVICE_BUS_PATH")] 608 public const string PROP_DEVICE_BUS_PATH; 609 [CCode (cname="PA_PROP_DEVICE_SERIAL")] 610 public const string PROP_DEVICE_SERIAL; 611 [CCode (cname="PA_PROP_DEVICE_VENDOR_ID")] 612 public const string PROP_DEVICE_VENDOR_ID; 613 [CCode (cname="PA_PROP_DEVICE_VENDOR_NAME")] 614 public const string PROP_DEVICE_VENDOR_NAME; 615 [CCode (cname="PA_PROP_DEVICE_PRODUCT_ID")] 616 public const string PROP_DEVICE_PRODUCT_ID; 617 [CCode (cname="PA_PROP_DEVICE_PRODUCT_NAME")] 618 public const string PROP_DEVICE_PRODUCT_NAME; 619 [CCode (cname="PA_PROP_DEVICE_CLASS")] 620 public const string PROP_DEVICE_CLASS; 621 [CCode (cname="PA_PROP_DEVICE_FORM_FACTOR")] 622 public const string PROP_DEVICE_FORM_FACTOR; 623 [CCode (cname="PA_PROP_DEVICE_BUS")] 624 public const string PROP_DEVICE_BUS; 625 [CCode (cname="PA_PROP_DEVICE_ICON_NAME")] 626 public const string PROP_DEVICE_ICON_NAME; 627 [CCode (cname="PA_PROP_DEVICE_ACCESS_MODE")] 628 public const string PROP_DEVICE_ACCESS_MODE; 629 [CCode (cname="PA_PROP_DEVICE_MASTER_DEVICE")] 630 public const string PROP_DEVICE_MASTER_DEVICE; 631 [CCode (cname="PA_PROP_DEVICE_BUFFERING_BUFFER_SIZE")] 632 public const string PROP_DEVICE_BUFFERING_BUFFER_SIZE; 633 [CCode (cname="PA_PROP_DEVICE_BUFFERING_FRAGMENT_SIZE")] 634 public const string PROP_DEVICE_BUFFERING_FRAGMENT_SIZE; 635 [CCode (cname="PA_PROP_DEVICE_PROFILE_NAME")] 636 public const string PROP_DEVICE_PROFILE_NAME; 637 [CCode (cname="PA_PROP_DEVICE_INTENDED_ROLES")] 638 public const string PROP_DEVICE_INTENDED_ROLES; 639 [CCode (cname="PA_PROP_DEVICE_PROFILE_DESCRIPTION")] 640 public const string PROP_DEVICE_PROFILE_DESCRIPTION; 641 [CCode (cname="PA_PROP_MODULE_AUTHOR")] 642 public const string PROP_MODULE_AUTHOR; 643 [CCode (cname="PA_PROP_MODULE_DESCRIPTION")] 644 public const string PROP_MODULE_DESCRIPTION; 645 [CCode (cname="PA_PROP_MODULE_USAGE")] 646 public const string PROP_MODULE_USAGE; 647 [CCode (cname="PA_PROP_MODULE_VERSION")] 648 public const string PROP_MODULE_VERSION; 649 650 [CCode (cname="pa_proplist_new")] 651 public Proplist(); 652 653 public int sets(string key, string value); 654 public int setp(string pair); 655 656 [PrintfFormat] 657 public int setf(string key, string format, ...); 658 659 public int set(string key, void* data, size_t size); 660 661 public unowned string? gets(string key); 662 663 public int get(string key, out void* data, out size_t size); 664 665 public void update(UpdateMode mode, Proplist other); 666 667 public void unset(string key); 668 669 public void unset_many([CCode (array_length = false)] string[] key); 670 671 public unowned string? iterate(ref void* state); 672 673 public string to_string(); 674 675 public string to_string_sep(string sep); 676 677 public static Proplist? from_string(string s); 678 679 public int contains(string key); 680 681 public void clear(); 682 683 public Proplist copy(); 684 685 public uint size(); 686 687 [CCode (cname="pa_proplist_isempty")] 688 public bool is_empty(); 689 } 690 691 [CCode (cname="pa_update_mode_t", cprefix="PA_UPDATE_", has_type_id=false)] 692 public enum UpdateMode { 693 SET, 694 MERGE, 695 REPLACE 696 } 697 698 [CCode (cname="PA_OK")] 699 public const int OK; 700 701 [CCode (cname="int", cprefix="PA_ERR_", has_type_id=false)] 702 public enum Error { 703 ACCESS, 704 COMMAND, 705 INVALID, 706 EXIST, 707 NOENTITY, 708 CONNECTIONREFUSED, 709 PROTOCOL, 710 TIMEOUT, 711 AUTHKEY, 712 INTERNAL, 713 CONNECTIONTERMINATED, 714 KILLED, 715 INVALIDSERVER, 716 MODINITFAILED, 717 BADSTATE, 718 NODATA, 719 VERSION, 720 TOOLARGE, 721 NOTSUPPORTED, 722 UNKNOWN, 723 NOEXTENSION, 724 OBSOLETE, 725 NOTIMPLEMENTED, 726 FORKED, 727 IO, 728 MAX 729 } 730 731 [CCode (cname="pa_strerror")] 732 public unowned string? strerror(Error e); 733 734 [CCode (has_target = false, has_typedef = false)] 735 public delegate void VoidFunc(); 736 737 [CCode (cname="pa_spawn_api", has_type_id=false)] 738 public struct SpawnApi { 739 VoidFunc? prefork; 740 VoidFunc? postfork; 741 VoidFunc? atfork; 742 } 743 744 [CCode (cname="pa_io_event_flags_t", cprefix="PA_IO_EVENT_", has_type_id=false)] 745 public enum IoEventFlags { 746 NULL, 747 INPUT, 748 OUTPUT, 749 HANGUP, 750 ERROR 751 } 752 753 [Compact] 754 [CCode (cname="pa_io_event", unref_function="", ref_function="", has_type_id=false)] 755 public class IoEvent { 756 } 757 758 [Compact] 759 [CCode (cname="pa_time_event", unref_function="", ref_function="", has_type_id=false)] 760 public class TimeEvent { 761 } 762 763 [Compact] 764 [CCode (cname="pa_defer_event", unref_function="", ref_function="", has_type_id=false)] 765 public class DeferEvent { 766 } 767 768 [Compact] 769 [CCode (cname="pa_signal_event", cprefix="pa_signal_", free_function="pa_signal_free", has_type_id=false)] 770 public class SignalEvent { 771 772 [CCode (cname="pa_signal_new")] 773 public SignalEvent(int sig, MainLoopApi.SignalEventCb cb); 774 775 public void set_destroy([CCode (delegate_target = false)] MainLoopApi.SignalEventDestroyCb cb); 776 } 777 778 [Compact] 779 [CCode (cname="pa_mainloop_api", unref_function="", ref_function="", has_type_id=false)] 780 public class MainLoopApi { 781 public void* userdata; 782 783 /* Callbacks for the consumer to implement*/ 784 [CCode (cname = "pa_io_event_cb_t")] 785 public delegate void IoEventCb(MainLoopApi a, IoEvent e, int fd, IoEventFlags flags); 786 [CCode (cname = "pa_io_event_destroy_cb_t")] 787 public delegate void IoEventDestroyCb(MainLoopApi a, IoEvent e); 788 789 [CCode (cname = "pa_time_event_cb_t")] 790 public delegate void TimeEventCb(MainLoopApi a, TimeEvent e, ref timeval t); 791 [CCode (cname = "pa_time_event_destroy_cb_t")] 792 public delegate void TimeEventDestroyCb(MainLoopApi a, TimeEvent e); 793 794 [CCode (cname = "pa_defer_event_cb_t")] 795 public delegate void DeferEventCb(MainLoopApi a, DeferEvent e); 796 [CCode (cname = "pa_defer_event_destroy_cb_t")] 797 public delegate void DeferEventDestroyCb(MainLoopApi a, DeferEvent e); 798 799 [CCode (cname = "pa_signal_cb_t")] 800 public delegate void SignalEventCb(MainLoopApi a, SignalEvent e, int sig); 801 [CCode (cname = "pa_signal_destroy_cb_t")] 802 public delegate void SignalEventDestroyCb(MainLoopApi a, SignalEvent e); 803 804 /* Callbacks for the provider to implement */ 805 [CCode (has_target = false, has_typedef = false)] 806 public delegate IoEvent IoNewCb(MainLoopApi a, int fd, IoEventFlags flags, IoEventCb cb); 807 [CCode (has_target = false, has_typedef = false)] 808 public delegate void IoEnableCb(IoEvent e, IoEventFlags flags); 809 [CCode (has_target = false, has_typedef = false)] 810 public delegate void IoFreeCb(IoEvent e); 811 [CCode (has_target = false, has_typedef = false)] 812 public delegate void IoSetDestroyCb(IoEvent e, [CCode (delegate_target = false)] IoEventDestroyCb? cb); 813 814 [CCode (has_target = false, has_typedef = false)] 815 public delegate TimeEvent TimeNewCb(MainLoopApi a, timeval? t, TimeEventCb cb); 816 [CCode (has_target = false, has_typedef = false)] 817 public delegate void TimeRestartCb(TimeEvent e, timeval? t); 818 [CCode (has_target = false, has_typedef = false)] 819 public delegate void TimeFreeCb(TimeEvent e); 820 [CCode (has_target = false, has_typedef = false)] 821 public delegate void TimeSetDestroyCb(TimeEvent e, [CCode (delegate_target = false)] TimeEventDestroyCb? cb); 822 823 [CCode (has_target = false, has_typedef = false)] 824 public delegate DeferEvent DeferNewCb(MainLoopApi a, DeferEventCb cb); 825 [CCode (has_target = false, has_typedef = false)] 826 public delegate void DeferEnableCb(DeferEvent e, bool b); 827 [CCode (has_target = false, has_typedef = false)] 828 public delegate void DeferFreeCb(DeferEvent e); 829 [CCode (has_target = false, has_typedef = false)] 830 public delegate void DeferSetDestroyCb(DeferEvent e, [CCode (delegate_target = false)] DeferEventDestroyCb? cb); 831 832 [CCode (has_target = false, has_typedef = false)] 833 public delegate void QuitCb(MainLoopApi a, int retval); 834 835 [CCode (has_typedef = false)] 836 public delegate void OnceCb(MainLoopApi a); 837 838 public IoNewCb io_new; 839 public IoEnableCb io_enable; 840 public IoFreeCb io_free; 841 public IoSetDestroyCb io_set_destroy; 842 843 public TimeNewCb time_new; 844 public TimeRestartCb time_restart; 845 public TimeFreeCb time_free; 846 public TimeSetDestroyCb time_set_destroy; 847 848 public DeferNewCb defer_new; 849 public DeferEnableCb defer_enable; 850 public DeferFreeCb defer_free; 851 public DeferSetDestroyCb defer_set_destroy; 852 853 public QuitCb quit; 854 855 [CCode (cname="pa_mainloop_api_once")] 856 public void once(OnceCb cb); 857 } 858 859 [CCode (cname="pa_signal_init")] 860 public void signal_init(MainLoopApi api); 861 862 [CCode (cname="pa_signal_done")] 863 public void signal_done(); 864 865 [CCode (cname="pa_poll_func")] 866 public delegate int PollFunc(pollfd[] ufds, int timeout); 867 868 [Compact] 869 [CCode (cname="pa_mainloop", cprefix="pa_mainloop_", free_function="pa_mainloop_free", has_type_id=false)] 870 public class MainLoop { 871 872 [CCode (cname="pa_mainloop_new")] 873 public MainLoop(); 874 875 public int prepare(int timeout = -1); 876 public int poll(); 877 public int dispatch(); 878 public int get_retval(); 879 public int iterate(bool block = true, out int retval = null); 880 public int run(out int retval = null); 881 public unowned MainLoopApi get_api(); 882 public void quit(int retval); 883 public void wakeup(); 884 public void set_poll_func(PollFunc poll_func); 885 } 886 887 [Compact] 888 [CCode (cname="pa_threaded_mainloop", cprefix="pa_threaded_mainloop_", free_function="pa_threaded_mainloop_free")] 889 public class ThreadedMainLoop { 890 891 [CCode (cname="pa_threaded_mainloop_new")] 892 public ThreadedMainLoop(); 893 894 public int start(); 895 public void stop(); 896 public void lock(); 897 public void unlock(); 898 public void wait(); 899 public void signal(bool WaitForAccept = false); 900 public void accept(); 901 public int get_retval(); 902 public unowned MainLoopApi get_api(); 903 public bool in_thread(); 904 } 905 906 [Compact] 907 [CCode (cname="pa_operation", cprefix="pa_operation_", unref_function="pa_operation_unref", ref_function="pa_operation_ref", has_type_id=false)] 908 public class Operation { 909 910 [CCode (cname="pa_operation_state_t", cprefix="PA_OPERATION_", has_type_id=false)] 911 public enum State { 912 RUNNING, 913 DONE, 914 CANCELED 915 } 916 917 public void cancel(); 918 public State get_state(); 919 } 920 921 [Compact] 922 [CCode (cname="pa_context", cprefix="pa_context_", unref_function="pa_context_unref", ref_function="pa_context_ref", has_type_id=false)] 923 public class Context { 924 925 [CCode (cname="pa_context_flags_t", cprefix="PA_CONTEXT_", has_type_id=false)] 926 public enum Flags { 927 NOAUTOSPAWN, 928 NOFAIL 929 } 930 931 [CCode (cname="pa_context_state_t", cprefix="PA_CONTEXT_", has_type_id=false)] 932 public enum State { 933 UNCONNECTED, 934 CONNECTING, 935 AUTHORIZING, 936 SETTING_NAME, 937 READY, 938 FAILED, 939 TERMINATED; 940 941 [CCode (cname="PA_CONTEXT_IS_GOOD", has_type_id=false)] 942 public bool IS_GOOD(); 943 } 944 945 [CCode (cname="pa_subscription_mask_t", cprefix="PA_SUBSCRIPTION_MASK_", has_type_id=false)] 946 public enum SubscriptionMask { 947 NULL, 948 SINK, 949 SOURCE, 950 SINK_INPUT, 951 SOURCE_OUTPUT, 952 MODULE, 953 CLIENT, 954 SAMPLE_CACHE, 955 SERVER, 956 CARD, 957 ALL; 958 959 [CCode (cname="pa_subscription_match_flags")] 960 public bool match_flags(SubscriptionEventType t); 961 } 962 963 [CCode (cname="pa_subscription_event_type_t", cprefix="PA_SUBSCRIPTION_EVENT_", has_type_id=false)] 964 public enum SubscriptionEventType { 965 SINK, 966 SOURCE, 967 SINK_INPUT, 968 SOURCE_OUTPUT, 969 MODULE, 970 CLIENT, 971 SAMPLE_CACHE, 972 SERVER, 973 CARD, 974 FACILITY_MASK, 975 NEW, 976 CHANGE, 977 REMOVE, 978 TYPE_MASK 979 } 980 981 [CCode (cname = "pa_context_notify_cb_t")] 982 public delegate void NotifyCb(Context c); 983 [CCode (cname = "pa_context_success_cb_t")] 984 public delegate void SuccessCb(Context c, int success); 985 [CCode (cname = "pa_context_event_cb_t")] 986 public delegate void EventCb(Context c, string name, Proplist? proplist); 987 [CCode (cname = "pa_context_subscribe_cb_t")] 988 public delegate void SubscribeCb(Context c, SubscriptionEventType t, uint32 idx); 989 [CCode (cname = "pa_sink_info_cb_t")] 990 public delegate void SinkInfoCb(Context c, SinkInfo? i, int eol); 991 [CCode (cname = "pa_source_info_cb_t")] 992 public delegate void SourceInfoCb(Context c, SourceInfo? i, int eol); 993 [CCode (cname = "pa_card_info_cb_t")] 994 public delegate void CardInfoCb(Context c, CardInfo? i, int eol); 995 [CCode (cname = "pa_sink_input_info_cb_t")] 996 public delegate void SinkInputInfoCb(Context c, SinkInputInfo? i, int eol); 997 [CCode (cname = "pa_source_output_info_cb_t")] 998 public delegate void SourceOutputInfoCb(Context c, SourceOutputInfo? i, int eol); 999 [CCode (cname = "pa_server_info_cb_t")] 1000 public delegate void ServerInfoCb(Context c, ServerInfo? i); 1001 [CCode (cname = "pa_stat_info_cb_t")] 1002 public delegate void StatInfoCb(Context c, ServerInfo? i); 1003 [CCode (cname = "pa_module_info_cb_t")] 1004 public delegate void ModuleInfoCb(Context c, ModuleInfo? i, int eol); 1005 [CCode (cname = "pa_client_info_cb_t")] 1006 public delegate void ClientInfoCb(Context c, ClientInfo? i, int eol); 1007 [CCode (cname = "pa_sample_info_cb_t")] 1008 public delegate void SampleInfoCb(Context c, SampleInfo? i, int eol); 1009 [CCode (cname = "pa_context_index_cb_t")] 1010 public delegate void IndexCb(Context c, uint32 idx); 1011 1012 [CCode (cname="pa_context_new_with_proplist")] 1013 public Context(MainLoopApi api, string? name, Proplist? proplist = null); 1014 1015 public void set_state_callback(NotifyCb? cb = null); 1016 public void set_event_callback(EventCb? cb = null); 1017 public void set_subscribe_callback(SubscribeCb? cb = null); 1018 1019 public Error errno(); 1020 1021 public int is_pending(); 1022 public State get_state(); 1023 public int is_local(); 1024 public unowned string? get_server(); 1025 public uint32 get_protocol_version(); 1026 public uint32 get_server_protocol_version(); 1027 public uint32 get_index(); 1028 1029 public int connect(string? server = null, Flags flags = 0, SpawnApi? api = null); 1030 public void disconnect(); 1031 1032 public Operation? drain(NotifyCb? cb = null); 1033 public Operation? exit_daemon(SuccessCb? cb = null); 1034 public Operation? set_default_sink(string name, SuccessCb? cb = null); 1035 public Operation? set_default_source(string name, SuccessCb? cb = null); 1036 public Operation? set_name(string name, SuccessCb? cb = null); 1037 1038 public Operation? proplist_remove([CCode (array_length = false)] string[] keys, SuccessCb? cb = null); 1039 public Operation? proplist_update(UpdateMode mode, Proplist pl, SuccessCb? cb = null); 1040 1041 public Operation? subscribe(SubscriptionMask mask, SuccessCb? cb = null); 1042 1043 public Operation? get_sink_info_by_name(string name, SinkInfoCb cb); 1044 public Operation? get_sink_info_by_index(uint32 idx, SinkInfoCb cb); 1045 public Operation? get_sink_info_list(SinkInfoCb cb); 1046 1047 public Operation? set_sink_volume_by_name(string name, CVolume volume, SuccessCb? cb = null); 1048 public Operation? set_sink_volume_by_index(uint32 idx, CVolume volume, SuccessCb? cb = null); 1049 public Operation? set_sink_mute_by_name(string name, bool mute, SuccessCb? cb = null); 1050 public Operation? set_sink_mute_by_index(uint32 idx, bool mute, SuccessCb? cb = null); 1051 1052 public Operation? suspend_sink_by_name(string name, bool suspend, SuccessCb? cb = null); 1053 public Operation? suspend_sink_by_index(uint32 idx, bool suspend, SuccessCb? cb = null); 1054 1055 public Operation? set_sink_port_by_name(string name, string port, SuccessCb? cb = null); 1056 public Operation? set_sink_port_by_index(uint32 idx, string port, SuccessCb? cb = null); 1057 1058 public Operation? get_source_info_by_name(string name, SourceInfoCb cb); 1059 public Operation? get_source_info_by_index(uint32 idx, SourceInfoCb cb); 1060 public Operation? get_source_info_list(SourceInfoCb cb); 1061 1062 public Operation? set_source_volume_by_name(string name, CVolume volume, SuccessCb? cb = null); 1063 public Operation? set_source_volume_by_index(uint32 idx, CVolume volume, SuccessCb? cb = null); 1064 public Operation? set_source_mute_by_name(string name, bool mute, SuccessCb? cb = null); 1065 public Operation? set_source_mute_by_index(uint32 idx, bool mute, SuccessCb? cb = null); 1066 1067 public Operation? suspend_source_by_name(string name, bool suspend, SuccessCb? cb = null); 1068 public Operation? suspend_source_by_index(uint32 idx, bool suspend, SuccessCb? cb = null); 1069 1070 public Operation? set_source_port_by_name(string name, string port, SuccessCb? cb = null); 1071 public Operation? set_source_port_by_index(uint32 idx, string port, SuccessCb? cb = null); 1072 1073 public Operation? get_server_info(ServerInfoCb cb); 1074 1075 public Operation? get_module_info(uint32 idx, ModuleInfoCb cb); 1076 public Operation? get_module_info_list(ModuleInfoCb cb); 1077 1078 public Operation? load_module(string name, string? argument, IndexCb? cb = null); 1079 public Operation? unload_module(uint32 idx, SuccessCb? cb = null); 1080 1081 public Operation? get_client_info(uint32 idx, ClientInfoCb cb); 1082 public Operation? get_client_info_list(ClientInfoCb cb); 1083 1084 public Operation? kill_client(uint32 idx, SuccessCb? cb = null); 1085 1086 public Operation? get_card_info_by_name(string name, CardInfoCb cb); 1087 public Operation? get_card_info_by_index(uint32 idx, CardInfoCb cb); 1088 public Operation? get_card_info_list(CardInfoCb cb); 1089 1090 public Operation? set_card_profile_by_index(uint32 idx, string profile, SuccessCb? cb = null); 1091 public Operation? set_card_profile_by_name(string name, string profile, SuccessCb? cb = null); 1092 1093 public Operation? get_sink_input_info(uint32 idx, SinkInputInfoCb cb); 1094 public Operation? get_sink_input_info_list(SinkInputInfoCb cb); 1095 1096 public Operation? move_sink_input_by_index(uint32 idx, uint32 sink_idx, SuccessCb? cb = null); 1097 public Operation? move_sink_input_by_name(uint32 idx, string sink_name, SuccessCb? cb = null); 1098 1099 public Operation? set_sink_input_volume(uint32 idx, CVolume volume, SuccessCb? cb = null); 1100 public Operation? set_sink_input_mute(uint32 idx, bool mute, SuccessCb? cb = null); 1101 1102 public Operation? set_source_output_volume(uint32 idx, CVolume volume, SuccessCb? cb = null); 1103 public Operation? set_source_output_mute(uint32 idx, bool mute, SuccessCb? cb = null); 1104 1105 public Operation? kill_sink_input(uint32 idx, SuccessCb? cb = null); 1106 1107 public Operation? get_source_output_info(uint32 idx, SourceOutputInfoCb cb); 1108 public Operation? get_source_output_info_list(SourceOutputInfoCb cb); 1109 1110 public Operation? move_source_output_by_index(uint32 idx, uint32 source_idx, SuccessCb? cb = null); 1111 public Operation? move_source_output_by_name(uint32 idx, string source_name, SuccessCb? cb = null); 1112 1113 public Operation? kill_source_output(uint32 idx, SuccessCb? cb = null); 1114 1115 public Operation? stat(StatInfoCb cb); 1116 1117 public Operation? get_sample_info_by_name(string name, SampleInfoCb cb); 1118 public Operation? get_sample_info_by_index(uint32 idx, SampleInfoCb cb); 1119 public Operation? get_sample_info_list(SampleInfoCb cb); 1120 1121 public Operation? remove_sample(string name, SuccessCb? cb = null); 1122 1123 public Operation? play_sample(string name, string? device = null, Volume volume = Volume.INVALID, SuccessCb? cb = null); 1124 public Operation? play_sample_with_proplist(string name, string? device = null, Volume volume = Volume.INVALID, Proplist? p = null, IndexCb? cb = null); 1125 } 1126 1127 [Compact] 1128 [CCode (cname="pa_stream", cprefix="pa_stream_", unref_function="pa_stream_unref", ref_function="pa_stream_ref", has_type_id=false)] 1129 public class Stream { 1130 1131 [CCode (cname="pa_stream_flags_t", cprefix="PA_STREAM_", has_type_id=false)] 1132 public enum Flags { 1133 START_CORKED, 1134 INTERPOLATE_TIMING, 1135 NOT_MONOTONIC, 1136 AUTO_TIMING_UPDATE, 1137 NO_REMAP_CHANNELS, 1138 NO_REMIX_CHANNELS, 1139 FIX_FORMAT, 1140 FIX_RATE, 1141 FIX_CHANNELS, 1142 DONT_MOVE, 1143 VARIABLE_RATE, 1144 PEAK_DETECT, 1145 START_MUTED, 1146 ADJUST_LATENCY, 1147 EARLY_REQUESTS, 1148 DONT_INHIBIT_AUTO_SUSPEND, 1149 START_UNMUTED, 1150 FAIL_ON_SUSPEND 1151 } 1152 1153 [CCode (cname="pa_stream_state_t", cprefix="PA_STREAM_", has_type_id=false)] 1154 public enum State { 1155 UNCONNECTED, 1156 CREATING, 1157 READY, 1158 FAILED, 1159 TERMINATED; 1160 1161 [CCode (cname="PA_STREAM_IS_GOOD")] 1162 public bool IS_GOOD(); 1163 } 1164 1165 [CCode (cname="pa_stream_direction_t", cprefix="PA_STREAM_", has_type_id=false)] 1166 public enum Direction { 1167 NODIRECTION, 1168 PLAYBACK, 1169 RECORD, 1170 UPLOAD 1171 } 1172 1173 [CCode (cname="pa_seek_mode_t", cprefix="PA_SEEK_", has_type_id=false)] 1174 public enum SeekMode { 1175 RELATIVE, 1176 ABSOLUTE, 1177 RELATIVE_ON_READ, 1178 RELATIVE_END 1179 } 1180 1181 [CCode (cname="pa_buffer_attr", has_type_id=false)] 1182 public struct BufferAttr { 1183 uint32 maxlength; 1184 uint32 tlength; 1185 uint32 prebuf; 1186 uint32 minreq; 1187 uint32 fragsize; 1188 } 1189 1190 [CCode (cname="pa_timing_info", has_type_id=false)] 1191 public struct TimingInfo { 1192 timeval timestamp; 1193 int synchronized_clocks; 1194 usec sink_usec; 1195 usec source_usec; 1196 usec transport_usec; 1197 int playing; 1198 int write_index_corrupt; 1199 int64 write_index; 1200 int read_index_corrupt; 1201 int64 read_index; 1202 usec configured_sink_usec; 1203 usec configured_source_usec; 1204 int64 since_underrun; 1205 } 1206 1207 [CCode (cname="PA_STREAM_EVENT_REQUEST_CORK")] 1208 public const string EVENT_REQUEST_CORK; 1209 1210 [CCode (cname="PA_STREAM_EVENT_REQUEST_UNCORK")] 1211 public const string EVENT_REQUEST_UNCORK; 1212 1213 [CCode (cname = "pa_stream_success_cb_t")] 1214 public delegate void SuccessCb(Stream s, int success); 1215 [CCode (cname = "pa_stream_request_cb_t")] 1216 public delegate void RequestCb(Stream s, size_t nbytes); 1217 [CCode (cname = "pa_stream_notify_cb_t")] 1218 public delegate void NotifyCb(Stream s); 1219 [CCode (cname = "pa_stream_event_cb_t")] 1220 public delegate void EventCb(Stream s, string name, Proplist proplist); 1221 1222 [CCode (cname="pa_stream_new_with_proplist")] 1223 public Stream(Context c, string name, SampleSpec ss, ChannelMap? map = null, Proplist? proplist = null); 1224 1225 public State get_state(); 1226 public Context get_context(); 1227 public uint32 get_index(); 1228 public uint32 get_device_index(); 1229 public unowned string? get_device_name(); 1230 public int is_suspended(); 1231 public int is_corked(); 1232 1233 public int connect_playback(string? dev = null, BufferAttr? a = null, Flags flags = 0, CVolume? volume = null, Stream? sync_stream = null); 1234 public int connect_record(string? dev = null, BufferAttr? a = null, Flags flags = 0); 1235 public int connect_upload(size_t length); 1236 public int disconnect(); 1237 public int finish_upload(); 1238 1239 public int begin_write(out void* data, out size_t nbytes); 1240 public int cancel_write(); 1241 public int write(void *data, size_t bytes, FreeCb? free_cb = null, int64 offset = 0, SeekMode mode = SeekMode.RELATIVE); 1242 public int peek(out void *data, out size_t nbytes); 1243 public int drop(); 1244 public size_t writable_size(); 1245 public size_t readable_size(); 1246 1247 public void set_state_callback(NotifyCb? cb = null); 1248 public void set_write_callback(RequestCb? cb = null); 1249 public void set_read_callback(RequestCb? cb = null); 1250 public void set_overflow_callback(NotifyCb? cb = null); 1251 public void set_underflow_callback(NotifyCb? cb = null); 1252 public void set_started_callback(NotifyCb? cb = null); 1253 public void set_latency_update_callback(NotifyCb? cb = null); 1254 public void set_moved_callback(NotifyCb? cb = null); 1255 public void set_suspended_callback(NotifyCb? cb = null); 1256 public void set_event_callback(EventCb? cb = null); 1257 public void set_buffer_attr_callback(NotifyCb? cb = null); 1258 1259 public Operation? drain(SuccessCb? cb = null); 1260 public Operation? update_timing_info(SuccessCb? cb = null); 1261 1262 public Operation? cork(bool b, SuccessCb? cb = null); 1263 public Operation? flush(SuccessCb? cb = null); 1264 public Operation? prebuf(SuccessCb? cb = null); 1265 public Operation? trigger(SuccessCb? cb = null); 1266 1267 public Operation? set_name(string name, SuccessCb? cb = null); 1268 public Operation? set_buffer_attr(BufferAttr attr, SuccessCb? cb = null); 1269 public Operation? update_sample_rate(uint32 rate, SuccessCb? cb = null); 1270 1271 public Operation? proplist_remove([CCode (array_length = false)] string[] keys, SuccessCb? cb = null); 1272 public Operation? proplist_update(UpdateMode mode, Proplist pl, SuccessCb? cb = null); 1273 1274 public unowned TimingInfo? get_timing_info(); 1275 public int get_time(out usec u); 1276 public int get_latency(out usec u, out bool negative = null); 1277 1278 public unowned SampleSpec? get_sample_spec(); 1279 public unowned ChannelMap? get_channel_map(); 1280 public unowned BufferAttr? get_buffer_attr(); 1281 1282 public int set_monitor_stream(uint32 sink_input); 1283 public uint32 get_monitor_stream(); 1284 } 1285 1286 [CCode (cname="pa_direction_t", cprefix="PA_DIRECTION_", has_type_id=false)] 1287 [Flags] 1288 public enum Direction { 1289 OUTPUT = 0x0001U, 1290 INPUT = 0x0002U 1291 } 1292 1293 [CCode (cname="pa_port_available_t", cprefix="PA_PORT_AVAILABLE_", has_type_id=false)] 1294 public enum PortAvailable { 1295 UNKNOWN = 0, 1296 NO = 1, 1297 YES = 2 1298 } 1299 1300 [CCode (cname="pa_sink_port_info", has_type_id=false)] 1301 public struct SinkPortInfo { 1302 public string name; 1303 public string description; 1304 public uint32 priority; 1305 } 1306 1307 [CCode (cname="pa_sink_info", has_type_id=false)] 1308 public struct SinkInfo { 1309 public unowned string name; 1310 public uint32 index; 1311 public unowned string description; 1312 public SampleSpec sample_spec; 1313 public ChannelMap channel_map; 1314 public uint32 owner_module; 1315 public CVolume volume; 1316 public int mute; 1317 public uint32 monitor_source; 1318 public unowned string monitor_source_name; 1319 public usec latency; 1320 public unowned string driver; 1321 public SinkFlags flags; 1322 public Proplist proplist; 1323 public usec configured_latency; 1324 public Volume base_volume; 1325 public SinkState state; 1326 public uint32 n_volume_steps; 1327 public uint32 card; 1328 public uint32 n_ports; 1329 [CCode (array_length_cname="n_ports")] 1330 public SinkPortInfo*[] ports; 1331 public SinkPortInfo* active_port; 1332 } 1333 1334 [CCode (cname="pa_source_port_info", has_type_id=false)] 1335 public struct SourcePortInfo { 1336 public unowned string name; 1337 public unowned string description; 1338 public uint32 priority; 1339 } 1340 1341 [CCode (cname="pa_source_info", has_type_id=false)] 1342 public struct SourceInfo { 1343 public unowned string name; 1344 public uint32 index; 1345 public unowned string description; 1346 public SampleSpec sample_spec; 1347 public ChannelMap channel_map; 1348 public uint32 owner_module; 1349 public CVolume volume; 1350 public int mute; 1351 public uint32 monitor_of_sink; 1352 public unowned string monitor_of_sink_name; 1353 public usec latency; 1354 public unowned string driver; 1355 public SourceFlags flags; 1356 public Proplist proplist; 1357 public usec configured_latency; 1358 public Volume base_volume; 1359 public SourceState state; 1360 public uint32 n_volume_steps; 1361 public uint32 card; 1362 public uint32 n_ports; 1363 [CCode (array_length_cname="n_ports")] 1364 public SourcePortInfo*[] ports; 1365 public SourcePortInfo* active_port; 1366 } 1367 1368 [CCode (cname="pa_server_info", has_type_id=false)] 1369 public struct ServerInfo { 1370 public unowned string user_name; 1371 public unowned string host_name; 1372 public unowned string server_version; 1373 public unowned string server_name; 1374 public SampleSpec sample_spec; 1375 public unowned string default_sink_name; 1376 public unowned string default_source_name; 1377 public uint32 cookie; 1378 public ChannelMap channel_map; 1379 } 1380 1381 [CCode (cname="pa_module_info", has_type_id=false)] 1382 public struct ModuleInfo { 1383 public uint32 index; 1384 public unowned string name; 1385 public unowned string argument; 1386 public uint32 n_used; 1387 public Proplist proplist; 1388 } 1389 1390 [CCode (cname="pa_client_info", has_type_id=false)] 1391 public struct ClientInfo { 1392 public uint32 index; 1393 public unowned string name; 1394 public uint32 owner_module; 1395 public unowned string driver; 1396 public Proplist proplist; 1397 } 1398 1399 [CCode (cname="pa_card_profile_info", has_type_id=false)] 1400 public struct CardProfileInfo { 1401 public unowned string name; 1402 public unowned string description; 1403 public uint32 n_sinks; 1404 public uint32 n_sources; 1405 public uint32 priority; 1406 } 1407 1408 [CCode (cname="pa_card_profile_info2", has_type_id=false)] 1409 public struct CardProfileInfo2 { 1410 public unowned string name; 1411 public unowned string description; 1412 public uint32 n_sinks; 1413 public uint32 n_sources; 1414 public uint32 priority; 1415 int available; 1416 } 1417 1418 [CCode (cname="pa_card_port_info", has_type_id=false)] 1419 public struct CardPortInfo { 1420 public unowned string name; 1421 public unowned string description; 1422 public uint32 priority; 1423 PortAvailable available; 1424 Direction direction; 1425 public uint32 n_profiles; 1426 [CCode (array_length_cname="n_profiles")] 1427 public CardProfileInfo*[] profiles; 1428 public Proplist proplist; 1429 public int64 latency_offset; 1430 [CCode (array_length_cname="n_profiles")] 1431 public CardProfileInfo2*[] profiles2; 1432 } 1433 1434 [CCode (cname="pa_card_info", has_type_id=false)] 1435 public struct CardInfo { 1436 public uint32 index; 1437 public unowned string name; 1438 public uint32 owner_module; 1439 public unowned string driver; 1440 public uint32 n_profiles; 1441 [CCode (array_length_cname="n_profiles")] 1442 public CardProfileInfo[] profiles; 1443 public CardProfileInfo *active_profile; 1444 [CCode (array_length_cname="n_profiles")] 1445 public CardProfileInfo2*[] profiles2; 1446 public CardProfileInfo2 *active_profile2; 1447 public Proplist proplist; 1448 public uint32 n_ports; 1449 [CCode (array_length_cname="n_ports")] 1450 public CardPortInfo*[] ports; 1451 } 1452 1453 [CCode (cname="pa_sink_input_info", has_type_id=false)] 1454 public struct SinkInputInfo { 1455 public uint32 index; 1456 public unowned string name; 1457 public uint32 owner_module; 1458 public uint32 client; 1459 public uint32 sink; 1460 public SampleSpec sample_spec; 1461 public ChannelMap channel_map; 1462 public CVolume volume; 1463 public uint32 buffer_usec; 1464 public uint32 sink_usec; 1465 public unowned string resample_method; 1466 public unowned string driver; 1467 public int mute; 1468 public Proplist proplist; 1469 public int corked; 1470 public int has_volume; 1471 public int volume_writable; 1472 } 1473 1474 [CCode (cname="pa_source_output_info", has_type_id=false)] 1475 public struct SourceOutputInfo { 1476 public uint32 index; 1477 public unowned string name; 1478 public uint32 owner_module; 1479 public uint32 client; 1480 public uint32 source; 1481 public SampleSpec sample_spec; 1482 public ChannelMap channel_map; 1483 public uint32 buffer_usec; 1484 public uint32 source_usec; 1485 public unowned string resample_method; 1486 public unowned string driver; 1487 public Proplist proplist; 1488 public int corked; 1489 public CVolume volume; 1490 public int mute; 1491 public int has_volume; 1492 public int volume_writable; 1493 } 1494 1495 [CCode (cname="pa_stat_info", has_type_id=false)] 1496 public struct StatInfo { 1497 public uint32 memblock_total; 1498 public uint32 memblock_total_size; 1499 public uint32 memblock_allocated; 1500 public uint32 memblock_allocated_size; 1501 public uint32 scache_size; 1502 } 1503 1504 [CCode (cname="pa_sample_info", has_type_id=false)] 1505 public struct SampleInfo { 1506 public uint32 index; 1507 public unowned string name; 1508 public CVolume volume; 1509 public SampleSpec sample_spec; 1510 public ChannelMap channel_map; 1511 public usec duration; 1512 public uint32 bytes; 1513 public bool lazy; 1514 public unowned string filename; 1515 public Proplist proplist; 1516 } 1517 1518 [CCode (cname="pa_sink_flags_t", cprefix="PA_SINK_", has_type_id=false)] 1519 public enum SinkFlags { 1520 HW_VOLUME_CTRL, 1521 LATENCY, 1522 HARDWARE, 1523 NETWORK, 1524 HW_MUTE_CTRL, 1525 DECIBEL_VOLUME, 1526 FLAT_VOLUME, 1527 DYNAMIC_LATENCY 1528 } 1529 1530 [CCode (cname="pa_source_flags_t", cprefix="PA_SOURCE_", has_type_id=false)] 1531 public enum SourceFlags { 1532 HW_VOLUME_CTRL, 1533 LATENCY, 1534 HARDWARE, 1535 NETWORK, 1536 HW_MUTE_CTRL, 1537 DECIBEL_VOLUME, 1538 DYNAMIC_LATENCY 1539 } 1540 1541 [CCode (cname="pa_sink_state_t", cprefix="PA_SINK_", has_type_id=false)] 1542 public enum SinkState { 1543 INVALID_STATE, 1544 RUNNING, 1545 IDLE, 1546 SUSPENDED; 1547 1548 [CCode (cname="PA_SINK_IS_OPENED")] 1549 public bool IS_OPENED(); 1550 } 1551 1552 [CCode (cname="pa_source_state_t", cprefix="PA_SOURCE_", has_type_id=false)] 1553 public enum SourceState { 1554 INVALID_STATE, 1555 RUNNING, 1556 IDLE, 1557 SUSPENDED; 1558 1559 [CCode (cname="PA_SOURCE_IS_OPENED")] 1560 public bool IS_OPENED(); 1561 } 1562 1563 [CCode (cname="pa_gettimeofday")] 1564 public unowned timeval? gettimeofday(out timeval tv); 1565 1566 [CCode (cname="pa_timeval_diff")] 1567 public usec timeval_diff(ref timeval a, ref timeval b); 1568 1569 [CCode (cname="pa_timeval_cmp")] 1570 public int timeval_cmp(ref timeval a, ref timeval b); 1571 1572 [CCode (cname="pa_timeval_age")] 1573 public usec timeval_age(ref timeval a); 1574 1575 [CCode (cname="pa_timeval_add")] 1576 public unowned timeval? timeval_add(ref timeval tv, usec x); 1577 1578 [CCode (cname="pa_timeval_sub")] 1579 public unowned timeval? timeval_sub(ref timeval tv, usec x); 1580 1581 [CCode (cname="pa_timeval_store")] 1582 public unowned timeval? timeval_store(out timeval tv, usec c); 1583 1584 [CCode (cname="pa_timeval_load")] 1585 public usec timeval_load(timeval tv); 1586 1587 [CCode (cname="PA_USEC_MAX")] 1588 public const usec USEC_MAX; 1589 1590 [CCode (cname="PA_USEC_INVALID")] 1591 public const usec USEC_INVALID; 1592 1593 [CCode (cname="PA_MSEC_PER_SEC")] 1594 public const usec MSEC_PER_SEC; 1595 1596 [CCode (cname="PA_USEC_PER_SEC")] 1597 public const usec USEC_PER_SEC; 1598 1599 [CCode (cname="PA_NSEC_PER_SEC")] 1600 public const uint64 NSEC_PER_SEC; 1601 1602 1603 [CCode (cname="PA_USEC_PER_MSEC")] 1604 public const usec USEC_PER_MSEC; 1605 1606 [CCode (cname="PA_NSEC_PER_MSEC")] 1607 public const uint64 NSEC_PER_MSEC; 1608 1609 1610 [CCode (cname="PA_NSEC_PER_USEC")] 1611 public const uint64 NSEC_PER_USEC; 1612} 1613