• Main Page
  • Related Pages
  • Data Structures
  • Files
  • Examples
  • File List
  • Globals

def.h

Go to the documentation of this file.
00001 #ifndef foodefhfoo
00002 #define foodefhfoo
00003 
00004 /***
00005   This file is part of PulseAudio.
00006 
00007   Copyright 2004-2006 Lennart Poettering
00008   Copyright 2006 Pierre Ossman <ossman@cendio.se> for Cendio AB
00009 
00010   PulseAudio is free software; you can redistribute it and/or modify
00011   it under the terms of the GNU Lesser General Public License as
00012   published by the Free Software Foundation; either version 2.1 of the
00013   License, or (at your option) any later version.
00014 
00015   PulseAudio is distributed in the hope that it will be useful, but
00016   WITHOUT ANY WARRANTY; without even the implied warranty of
00017   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
00018   Lesser General Public License for more details.
00019 
00020   You should have received a copy of the GNU Lesser General Public
00021   License along with PulseAudio; if not, write to the Free Software
00022   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
00023   USA.
00024 ***/
00025 
00026 #include <inttypes.h>
00027 #include <sys/time.h>
00028 #include <time.h>
00029 
00030 #include <pulse/cdecl.h>
00031 #include <pulse/sample.h>
00032 #include <pulse/version.h>
00033 
00037 PA_C_DECL_BEGIN
00038 
00040 typedef enum pa_context_state {
00041     PA_CONTEXT_UNCONNECTED,    
00042     PA_CONTEXT_CONNECTING,     
00043     PA_CONTEXT_AUTHORIZING,    
00044     PA_CONTEXT_SETTING_NAME,   
00045     PA_CONTEXT_READY,          
00046     PA_CONTEXT_FAILED,         
00047     PA_CONTEXT_TERMINATED      
00048 } pa_context_state_t;
00049 
00051 static inline int PA_CONTEXT_IS_GOOD(pa_context_state_t x) {
00052     return
00053         x == PA_CONTEXT_CONNECTING ||
00054         x == PA_CONTEXT_AUTHORIZING ||
00055         x == PA_CONTEXT_SETTING_NAME ||
00056         x == PA_CONTEXT_READY;
00057 }
00058 
00060 #define PA_CONTEXT_UNCONNECTED PA_CONTEXT_UNCONNECTED
00061 #define PA_CONTEXT_CONNECTING PA_CONTEXT_CONNECTING
00062 #define PA_CONTEXT_AUTHORIZING PA_CONTEXT_AUTHORIZING
00063 #define PA_CONTEXT_SETTING_NAME PA_CONTEXT_SETTING_NAME
00064 #define PA_CONTEXT_READY PA_CONTEXT_READY
00065 #define PA_CONTEXT_FAILED PA_CONTEXT_FAILED
00066 #define PA_CONTEXT_IS_GOOD PA_CONTEXT_IS_GOOD
00067 
00070 typedef enum pa_stream_state {
00071     PA_STREAM_UNCONNECTED,  
00072     PA_STREAM_CREATING,     
00073     PA_STREAM_READY,        
00074     PA_STREAM_FAILED,       
00075     PA_STREAM_TERMINATED    
00076 } pa_stream_state_t;
00077 
00079 static inline int PA_STREAM_IS_GOOD(pa_stream_state_t x) {
00080     return
00081         x == PA_STREAM_CREATING ||
00082         x == PA_STREAM_READY;
00083 }
00084 
00086 #define PA_STREAM_UNCONNECTED PA_STREAM_UNCONNECTED
00087 #define PA_STREAM_CREATING PA_STREAM_CREATING
00088 #define PA_STREAM_READY PA_STREAM_READY
00089 #define PA_STREAM_FAILED PA_STREAM_FAILED
00090 #define PA_STREAM_TERMINATED PA_STREAM_TERMINATED
00091 #define PA_STREAM_IS_GOOD PA_STREAM_IS_GOOD
00092 
00095 typedef enum pa_operation_state {
00096     PA_OPERATION_RUNNING,      
00097     PA_OPERATION_DONE,         
00098     PA_OPERATION_CANCELLED     
00099 } pa_operation_state_t;
00100 
00102 #define PA_OPERATION_RUNNING PA_OPERATION_RUNNING
00103 #define PA_OPERATION_DONE PA_OPERATION_DONE
00104 #define PA_OPERATION_CANCELED PA_OPERATION_CANCELLED
00105 #define PA_OPERATION_CANCELLED PA_OPERATION_CANCELLED
00106 
00109 #define PA_INVALID_INDEX ((uint32_t) -1)
00110 
00112 typedef enum pa_context_flags {
00113     PA_CONTEXT_NOFLAGS = 0x0000U,
00115     PA_CONTEXT_NOAUTOSPAWN = 0x0001U,
00117     PA_CONTEXT_NOFAIL = 0x0002U
00119 } pa_context_flags_t;
00120 
00122 /* Allow clients to check with #ifdef for those flags */
00123 #define PA_CONTEXT_NOAUTOSPAWN PA_CONTEXT_NOAUTOSPAWN
00124 #define PA_CONTEXT_NOFAIL PA_CONTEXT_NOFAIL
00125 
00128 typedef enum pa_stream_direction {
00129     PA_STREAM_NODIRECTION,   
00130     PA_STREAM_PLAYBACK,      
00131     PA_STREAM_RECORD,        
00132     PA_STREAM_UPLOAD         
00133 } pa_stream_direction_t;
00134 
00136 #define PA_STREAM_NODIRECTION PA_STREAM_NODIRECTION
00137 #define PA_STREAM_PLAYBACK PA_STREAM_PLAYBACK
00138 #define PA_STREAM_RECORD PA_STREAM_RECORD
00139 #define PA_STREAM_UPLOAD PA_STREAM_UPLOAD
00140 
00143 typedef enum pa_stream_flags {
00144 
00145     PA_STREAM_NOFLAGS = 0x0000U,
00148     PA_STREAM_START_CORKED = 0x0001U,
00152     PA_STREAM_INTERPOLATE_TIMING = 0x0002U,
00164     PA_STREAM_NOT_MONOTONIC = 0x0004U,
00176     PA_STREAM_AUTO_TIMING_UPDATE = 0x0008U,
00183     PA_STREAM_NO_REMAP_CHANNELS = 0x0010U,
00189     PA_STREAM_NO_REMIX_CHANNELS = 0x0020U,
00195     PA_STREAM_FIX_FORMAT = 0x0040U,
00207     PA_STREAM_FIX_RATE = 0x0080U,
00213     PA_STREAM_FIX_CHANNELS = 0x0100,
00220     PA_STREAM_DONT_MOVE = 0x0200U,
00229     PA_STREAM_VARIABLE_RATE = 0x0400U,
00235     PA_STREAM_PEAK_DETECT = 0x0800U,
00238     PA_STREAM_START_MUTED = 0x1000U,
00244     PA_STREAM_ADJUST_LATENCY = 0x2000U,
00251     PA_STREAM_EARLY_REQUESTS = 0x4000U,
00268     PA_STREAM_DONT_INHIBIT_AUTO_SUSPEND = 0x8000U,
00273     PA_STREAM_START_UNMUTED = 0x10000U,
00279     PA_STREAM_FAIL_ON_SUSPEND = 0x20000U
00284 } pa_stream_flags_t;
00285 
00288 /* English is an evil language */
00289 #define PA_STREAM_NOT_MONOTONOUS PA_STREAM_NOT_MONOTONIC
00290 
00291 /* Allow clients to check with #ifdef for those flags */
00292 #define PA_STREAM_START_CORKED PA_STREAM_START_CORKED
00293 #define PA_STREAM_INTERPOLATE_TIMING PA_STREAM_INTERPOLATE_TIMING
00294 #define PA_STREAM_NOT_MONOTONIC PA_STREAM_NOT_MONOTONIC
00295 #define PA_STREAM_AUTO_TIMING_UPDATE PA_STREAM_AUTO_TIMING_UPDATE
00296 #define PA_STREAM_NO_REMAP_CHANNELS PA_STREAM_NO_REMAP_CHANNELS
00297 #define PA_STREAM_NO_REMIX_CHANNELS PA_STREAM_NO_REMIX_CHANNELS
00298 #define PA_STREAM_FIX_FORMAT PA_STREAM_FIX_FORMAT
00299 #define PA_STREAM_FIX_RATE PA_STREAM_FIX_RATE
00300 #define PA_STREAM_FIX_CHANNELS PA_STREAM_FIX_CHANNELS
00301 #define PA_STREAM_DONT_MOVE PA_STREAM_DONT_MOVE
00302 #define PA_STREAM_VARIABLE_RATE PA_STREAM_VARIABLE_RATE
00303 #define PA_STREAM_PEAK_DETECT PA_STREAM_PEAK_DETECT
00304 #define PA_STREAM_START_MUTED PA_STREAM_START_MUTED
00305 #define PA_STREAM_ADJUST_LATENCY PA_STREAM_ADJUST_LATENCY
00306 #define PA_STREAM_EARLY_REQUESTS PA_STREAM_EARLY_REQUESTS
00307 #define PA_STREAM_DONT_INHIBIT_AUTO_SUSPEND PA_STREAM_DONT_INHIBIT_AUTO_SUSPEND
00308 #define PA_STREAM_START_UNMUTED PA_STREAM_START_UNMUTED
00309 #define PA_STREAM_FAIL_ON_SUSPEND PA_STREAM_FAIL_ON_SUSPEND
00310 
00314 typedef struct pa_buffer_attr {
00315     uint32_t maxlength;
00320     uint32_t tlength;
00338     uint32_t prebuf;
00349     uint32_t minreq;
00359     uint32_t fragsize;
00373 } pa_buffer_attr;
00374 
00376 enum {
00377     PA_OK = 0,                     
00378     PA_ERR_ACCESS,                 
00379     PA_ERR_COMMAND,                
00380     PA_ERR_INVALID,                
00381     PA_ERR_EXIST,                  
00382     PA_ERR_NOENTITY,               
00383     PA_ERR_CONNECTIONREFUSED,      
00384     PA_ERR_PROTOCOL,               
00385     PA_ERR_TIMEOUT,                
00386     PA_ERR_AUTHKEY,                
00387     PA_ERR_INTERNAL,               
00388     PA_ERR_CONNECTIONTERMINATED,   
00389     PA_ERR_KILLED,                 
00390     PA_ERR_INVALIDSERVER,          
00391     PA_ERR_MODINITFAILED,          
00392     PA_ERR_BADSTATE,               
00393     PA_ERR_NODATA,                 
00394     PA_ERR_VERSION,                
00395     PA_ERR_TOOLARGE,               
00396     PA_ERR_NOTSUPPORTED,           
00397     PA_ERR_UNKNOWN,                
00398     PA_ERR_NOEXTENSION,            
00399     PA_ERR_OBSOLETE,               
00400     PA_ERR_NOTIMPLEMENTED,         
00401     PA_ERR_FORKED,                 
00402     PA_ERR_IO,                     
00403     PA_ERR_BUSY,                   
00404     PA_ERR_MAX                     
00405 };
00406 
00408 #define PA_OK PA_OK
00409 #define PA_ERR_ACCESS PA_ERR_ACCESS
00410 #define PA_ERR_COMMAND PA_ERR_COMMAND
00411 #define PA_ERR_INVALID PA_ERR_INVALID
00412 #define PA_ERR_EXIST PA_ERR_EXIST
00413 #define PA_ERR_NOENTITY PA_ERR_NOENTITY
00414 #define PA_ERR_CONNECTIONREFUSED PA_ERR_CONNECTIONREFUSED
00415 #define PA_ERR_PROTOCOL PA_ERR_PROTOCOL
00416 #define PA_ERR_TIMEOUT PA_ERR_TIMEOUT
00417 #define PA_ERR_AUTHKEY PA_ERR_AUTHKEY
00418 #define PA_ERR_INTERNAL PA_ERR_INTERNAL
00419 #define PA_ERR_CONNECTIONTERMINATED PA_ERR_CONNECTIONTERMINATED
00420 #define PA_ERR_KILLED PA_ERR_KILLED
00421 #define PA_ERR_INVALIDSERVER PA_ERR_INVALIDSERVER
00422 #define PA_ERR_MODINITFAILED PA_ERR_MODINITFAILED
00423 #define PA_ERR_BADSTATE PA_ERR_BADSTATE
00424 #define PA_ERR_NODATA PA_ERR_NODATA
00425 #define PA_ERR_VERSION PA_ERR_VERSION
00426 #define PA_ERR_TOOLARGE PA_ERR_TOOLARGE
00427 #define PA_ERR_NOTSUPPORTED PA_ERR_NOTSUPPORTED
00428 #define PA_ERR_UNKNOWN PA_ERR_UNKNOWN
00429 #define PA_ERR_NOEXTENSION PA_ERR_NOEXTENSION
00430 #define PA_ERR_OBSOLETE PA_ERR_OBSOLETE
00431 #define PA_ERR_NOTIMPLEMENTED PA_ERR_NOTIMPLEMENTED
00432 #define PA_ERR_FORKED PA_ERR_FORKED
00433 #define PA_ERR_MAX PA_ERR_MAX
00434 
00437 typedef enum pa_subscription_mask {
00438     PA_SUBSCRIPTION_MASK_NULL = 0x0000U,
00441     PA_SUBSCRIPTION_MASK_SINK = 0x0001U,
00444     PA_SUBSCRIPTION_MASK_SOURCE = 0x0002U,
00447     PA_SUBSCRIPTION_MASK_SINK_INPUT = 0x0004U,
00450     PA_SUBSCRIPTION_MASK_SOURCE_OUTPUT = 0x0008U,
00453     PA_SUBSCRIPTION_MASK_MODULE = 0x0010U,
00456     PA_SUBSCRIPTION_MASK_CLIENT = 0x0020U,
00459     PA_SUBSCRIPTION_MASK_SAMPLE_CACHE = 0x0040U,
00462     PA_SUBSCRIPTION_MASK_SERVER = 0x0080U,
00466     PA_SUBSCRIPTION_MASK_AUTOLOAD = 0x0100U,
00470     PA_SUBSCRIPTION_MASK_CARD = 0x0200U,
00473     PA_SUBSCRIPTION_MASK_ALL = 0x02ffU
00475 } pa_subscription_mask_t;
00476 
00478 typedef enum pa_subscription_event_type {
00479     PA_SUBSCRIPTION_EVENT_SINK = 0x0000U,
00482     PA_SUBSCRIPTION_EVENT_SOURCE = 0x0001U,
00485     PA_SUBSCRIPTION_EVENT_SINK_INPUT = 0x0002U,
00488     PA_SUBSCRIPTION_EVENT_SOURCE_OUTPUT = 0x0003U,
00491     PA_SUBSCRIPTION_EVENT_MODULE = 0x0004U,
00494     PA_SUBSCRIPTION_EVENT_CLIENT = 0x0005U,
00497     PA_SUBSCRIPTION_EVENT_SAMPLE_CACHE = 0x0006U,
00500     PA_SUBSCRIPTION_EVENT_SERVER = 0x0007U,
00504     PA_SUBSCRIPTION_EVENT_AUTOLOAD = 0x0008U,
00508     PA_SUBSCRIPTION_EVENT_CARD = 0x0009U,
00511     PA_SUBSCRIPTION_EVENT_FACILITY_MASK = 0x000FU,
00514     PA_SUBSCRIPTION_EVENT_NEW = 0x0000U,
00517     PA_SUBSCRIPTION_EVENT_CHANGE = 0x0010U,
00520     PA_SUBSCRIPTION_EVENT_REMOVE = 0x0020U,
00523     PA_SUBSCRIPTION_EVENT_TYPE_MASK = 0x0030U
00526 } pa_subscription_event_type_t;
00527 
00529 #define pa_subscription_match_flags(m, t) (!!((m) & (1 << ((t) & PA_SUBSCRIPTION_EVENT_FACILITY_MASK))))
00530 
00532 #define PA_SUBSCRIPTION_MASK_NULL PA_SUBSCRIPTION_MASK_NULL
00533 #define PA_SUBSCRIPTION_MASK_SINK PA_SUBSCRIPTION_MASK_SINK
00534 #define PA_SUBSCRIPTION_MASK_SOURCE PA_SUBSCRIPTION_MASK_SOURCE
00535 #define PA_SUBSCRIPTION_MASK_SINK_INPUT PA_SUBSCRIPTION_MASK_SINK_INPUT
00536 #define PA_SUBSCRIPTION_MASK_SOURCE_OUTPUT PA_SUBSCRIPTION_MASK_SOURCE_OUTPUT
00537 #define PA_SUBSCRIPTION_MASK_MODULE PA_SUBSCRIPTION_MASK_MODULE
00538 #define PA_SUBSCRIPTION_MASK_CLIENT PA_SUBSCRIPTION_MASK_CLIENT
00539 #define PA_SUBSCRIPTION_MASK_SAMPLE_CACHE PA_SUBSCRIPTION_MASK_SAMPLE_CACHE
00540 #define PA_SUBSCRIPTION_MASK_SERVER PA_SUBSCRIPTION_MASK_SERVER
00541 #define PA_SUBSCRIPTION_MASK_AUTOLOAD PA_SUBSCRIPTION_MASK_AUTOLOAD
00542 #define PA_SUBSCRIPTION_MASK_CARD PA_SUBSCRIPTION_MASK_CARD
00543 #define PA_SUBSCRIPTION_MASK_ALL PA_SUBSCRIPTION_MASK_ALL
00544 #define PA_SUBSCRIPTION_EVENT_SINK PA_SUBSCRIPTION_EVENT_SINK
00545 #define PA_SUBSCRIPTION_EVENT_SOURCE PA_SUBSCRIPTION_EVENT_SOURCE
00546 #define PA_SUBSCRIPTION_EVENT_SINK_INPUT PA_SUBSCRIPTION_EVENT_SINK_INPUT
00547 #define PA_SUBSCRIPTION_EVENT_SOURCE_OUTPUT PA_SUBSCRIPTION_EVENT_SOURCE_OUTPUT
00548 #define PA_SUBSCRIPTION_EVENT_MODULE PA_SUBSCRIPTION_EVENT_MODULE
00549 #define PA_SUBSCRIPTION_EVENT_CLIENT PA_SUBSCRIPTION_EVENT_CLIENT
00550 #define PA_SUBSCRIPTION_EVENT_SAMPLE_CACHE PA_SUBSCRIPTION_EVENT_SAMPLE_CACHE
00551 #define PA_SUBSCRIPTION_EVENT_SERVER PA_SUBSCRIPTION_EVENT_SERVER
00552 #define PA_SUBSCRIPTION_EVENT_AUTOLOAD PA_SUBSCRIPTION_EVENT_AUTOLOAD
00553 #define PA_SUBSCRIPTION_EVENT_CARD PA_SUBSCRIPTION_EVENT_CARD
00554 #define PA_SUBSCRIPTION_EVENT_FACILITY_MASK PA_SUBSCRIPTION_EVENT_FACILITY_MASK
00555 #define PA_SUBSCRIPTION_EVENT_NEW PA_SUBSCRIPTION_EVENT_NEW
00556 #define PA_SUBSCRIPTION_EVENT_CHANGE PA_SUBSCRIPTION_EVENT_CHANGE
00557 #define PA_SUBSCRIPTION_EVENT_REMOVE PA_SUBSCRIPTION_EVENT_REMOVE
00558 #define PA_SUBSCRIPTION_EVENT_TYPE_MASK PA_SUBSCRIPTION_EVENT_TYPE_MASK
00559 
00579 typedef struct pa_timing_info {
00580     struct timeval timestamp;
00583     int synchronized_clocks;
00590     pa_usec_t sink_usec;
00595     pa_usec_t source_usec;
00599     pa_usec_t transport_usec;
00603     int playing;
00610     int write_index_corrupt;
00617     int64_t write_index;
00623     int read_index_corrupt;
00628     int64_t read_index;
00634     pa_usec_t configured_sink_usec;
00637     pa_usec_t configured_source_usec;
00640     int64_t since_underrun;
00646 } pa_timing_info;
00647 
00655 typedef struct pa_spawn_api {
00656     void (*prefork)(void);
00660     void (*postfork)(void);
00664     void (*atfork)(void);
00670 } pa_spawn_api;
00671 
00673 typedef enum pa_seek_mode {
00674     PA_SEEK_RELATIVE = 0,
00677     PA_SEEK_ABSOLUTE = 1,
00680     PA_SEEK_RELATIVE_ON_READ = 2,
00683     PA_SEEK_RELATIVE_END = 3
00685 } pa_seek_mode_t;
00686 
00688 #define PA_SEEK_RELATIVE PA_SEEK_RELATIVE
00689 #define PA_SEEK_ABSOLUTE PA_SEEK_ABSOLUTE
00690 #define PA_SEEK_RELATIVE_ON_READ PA_SEEK_RELATIVE_ON_READ
00691 #define PA_SEEK_RELATIVE_END PA_SEEK_RELATIVE_END
00692 
00695 typedef enum pa_sink_flags {
00696     PA_SINK_NOFLAGS = 0x0000U,
00699     PA_SINK_HW_VOLUME_CTRL = 0x0001U,
00702     PA_SINK_LATENCY = 0x0002U,
00705     PA_SINK_HARDWARE = 0x0004U,
00709     PA_SINK_NETWORK = 0x0008U,
00712     PA_SINK_HW_MUTE_CTRL = 0x0010U,
00715     PA_SINK_DECIBEL_VOLUME = 0x0020U,
00719     PA_SINK_FLAT_VOLUME = 0x0040U,
00723     PA_SINK_DYNAMIC_LATENCY = 0x0080U
00726 } pa_sink_flags_t;
00727 
00729 #define PA_SINK_HW_VOLUME_CTRL PA_SINK_HW_VOLUME_CTRL
00730 #define PA_SINK_LATENCY PA_SINK_LATENCY
00731 #define PA_SINK_HARDWARE PA_SINK_HARDWARE
00732 #define PA_SINK_NETWORK PA_SINK_NETWORK
00733 #define PA_SINK_HW_MUTE_CTRL PA_SINK_HW_MUTE_CTRL
00734 #define PA_SINK_DECIBEL_VOLUME PA_SINK_DECIBEL_VOLUME
00735 #define PA_SINK_FLAT_VOLUME PA_SINK_FLAT_VOLUME
00736 #define PA_SINK_DYNAMIC_LATENCY PA_SINK_DYNAMIC_LATENCY
00737 
00740 typedef enum pa_sink_state { /* enum serialized in u8 */
00741     PA_SINK_INVALID_STATE = -1,
00744     PA_SINK_RUNNING = 0,
00747     PA_SINK_IDLE = 1,
00750     PA_SINK_SUSPENDED = 2,
00754     /* PRIVATE: Server-side values -- DO NOT USE THIS ON THE CLIENT
00755      * SIDE! These values are *not* considered part of the official PA
00756      * API/ABI. If you use them your application might break when PA
00757      * is upgraded. Also, please note that these values are not useful
00758      * on the client side anyway. */
00759 
00760     PA_SINK_INIT = -2,
00763     PA_SINK_UNLINKED = -3
00767 } pa_sink_state_t;
00768 
00770 static inline int PA_SINK_IS_OPENED(pa_sink_state_t x) {
00771     return x == PA_SINK_RUNNING || x == PA_SINK_IDLE;
00772 }
00773 
00775 #define PA_SINK_INVALID_STATE PA_SINK_INVALID_STATE
00776 #define PA_SINK_RUNNING PA_SINK_RUNNING
00777 #define PA_SINK_IDLE PA_SINK_IDLE
00778 #define PA_SINK_SUSPENDED PA_SINK_SUSPENDED
00779 #define PA_SINK_INIT PA_SINK_INIT
00780 #define PA_SINK_UNLINKED PA_SINK_UNLINKED
00781 #define PA_SINK_IS_OPENED PA_SINK_IS_OPENED
00782 
00785 typedef enum pa_source_flags {
00786     PA_SOURCE_NOFLAGS = 0x0000U,
00789     PA_SOURCE_HW_VOLUME_CTRL = 0x0001U,
00792     PA_SOURCE_LATENCY = 0x0002U,
00795     PA_SOURCE_HARDWARE = 0x0004U,
00799     PA_SOURCE_NETWORK = 0x0008U,
00802     PA_SOURCE_HW_MUTE_CTRL = 0x0010U,
00805     PA_SOURCE_DECIBEL_VOLUME = 0x0020U,
00809     PA_SOURCE_DYNAMIC_LATENCY = 0x0040U
00812 } pa_source_flags_t;
00813 
00815 #define PA_SOURCE_HW_VOLUME_CTRL PA_SOURCE_HW_VOLUME_CTRL
00816 #define PA_SOURCE_LATENCY PA_SOURCE_LATENCY
00817 #define PA_SOURCE_HARDWARE PA_SOURCE_HARDWARE
00818 #define PA_SOURCE_NETWORK PA_SOURCE_NETWORK
00819 #define PA_SOURCE_HW_MUTE_CTRL PA_SOURCE_HW_MUTE_CTRL
00820 #define PA_SOURCE_DECIBEL_VOLUME PA_SOURCE_DECIBEL_VOLUME
00821 #define PA_SOURCE_DYNAMIC_LATENCY PA_SOURCE_DYNAMIC_LATENCY
00822 
00825 typedef enum pa_source_state {
00826     PA_SOURCE_INVALID_STATE = -1,
00829     PA_SOURCE_RUNNING = 0,
00832     PA_SOURCE_IDLE = 1,
00835     PA_SOURCE_SUSPENDED = 2,
00839     /* PRIVATE: Server-side values -- DO NOT USE THIS ON THE CLIENT
00840      * SIDE! These values are *not* considered part of the official PA
00841      * API/ABI. If you use them your application might break when PA
00842      * is upgraded. Also, please note that these values are not useful
00843      * on the client side anyway. */
00844 
00845     PA_SOURCE_INIT = -2,
00848     PA_SOURCE_UNLINKED = -3
00852 } pa_source_state_t;
00853 
00855 static inline int PA_SOURCE_IS_OPENED(pa_source_state_t x) {
00856     return x == PA_SOURCE_RUNNING || x == PA_SOURCE_IDLE;
00857 }
00858 
00860 #define PA_SOURCE_INVALID_STATE PA_SOURCE_INVALID_STATE
00861 #define PA_SOURCE_RUNNING PA_SOURCE_RUNNING
00862 #define PA_SOURCE_IDLE PA_SOURCE_IDLE
00863 #define PA_SOURCE_SUSPENDED PA_SOURCE_SUSPENDED
00864 #define PA_SOURCE_INIT PA_SOURCE_INIT
00865 #define PA_SOURCE_UNLINKED PA_SOURCE_UNLINKED
00866 #define PA_SOURCE_IS_OPENED PA_SOURCE_IS_OPENED
00867 
00870 typedef void (*pa_free_cb_t)(void *p);
00871 
00875 #define PA_STREAM_EVENT_REQUEST_CORK "request-cork"
00876 
00880 #define PA_STREAM_EVENT_REQUEST_UNCORK "request-uncork"
00881 
00882 PA_C_DECL_END
00883 
00884 #endif

Generated on Fri Nov 26 2010 for PulseAudio by  doxygen 1.7.2