• 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,
00285     PA_STREAM_RELATIVE_VOLUME = 0x40000U,
00291 } pa_stream_flags_t;
00292 
00295 /* English is an evil language */
00296 #define PA_STREAM_NOT_MONOTONOUS PA_STREAM_NOT_MONOTONIC
00297 
00298 /* Allow clients to check with #ifdef for those flags */
00299 #define PA_STREAM_START_CORKED PA_STREAM_START_CORKED
00300 #define PA_STREAM_INTERPOLATE_TIMING PA_STREAM_INTERPOLATE_TIMING
00301 #define PA_STREAM_NOT_MONOTONIC PA_STREAM_NOT_MONOTONIC
00302 #define PA_STREAM_AUTO_TIMING_UPDATE PA_STREAM_AUTO_TIMING_UPDATE
00303 #define PA_STREAM_NO_REMAP_CHANNELS PA_STREAM_NO_REMAP_CHANNELS
00304 #define PA_STREAM_NO_REMIX_CHANNELS PA_STREAM_NO_REMIX_CHANNELS
00305 #define PA_STREAM_FIX_FORMAT PA_STREAM_FIX_FORMAT
00306 #define PA_STREAM_FIX_RATE PA_STREAM_FIX_RATE
00307 #define PA_STREAM_FIX_CHANNELS PA_STREAM_FIX_CHANNELS
00308 #define PA_STREAM_DONT_MOVE PA_STREAM_DONT_MOVE
00309 #define PA_STREAM_VARIABLE_RATE PA_STREAM_VARIABLE_RATE
00310 #define PA_STREAM_PEAK_DETECT PA_STREAM_PEAK_DETECT
00311 #define PA_STREAM_START_MUTED PA_STREAM_START_MUTED
00312 #define PA_STREAM_ADJUST_LATENCY PA_STREAM_ADJUST_LATENCY
00313 #define PA_STREAM_EARLY_REQUESTS PA_STREAM_EARLY_REQUESTS
00314 #define PA_STREAM_DONT_INHIBIT_AUTO_SUSPEND PA_STREAM_DONT_INHIBIT_AUTO_SUSPEND
00315 #define PA_STREAM_START_UNMUTED PA_STREAM_START_UNMUTED
00316 #define PA_STREAM_FAIL_ON_SUSPEND PA_STREAM_FAIL_ON_SUSPEND
00317 #define PA_STREAM_RELATIVE_VOLUME PA_STREAM_RELATIVE_VOLUME
00318 
00322 typedef struct pa_buffer_attr {
00323     uint32_t maxlength;
00328     uint32_t tlength;
00346     uint32_t prebuf;
00357     uint32_t minreq;
00367     uint32_t fragsize;
00381 } pa_buffer_attr;
00382 
00384 enum {
00385     PA_OK = 0,                     
00386     PA_ERR_ACCESS,                 
00387     PA_ERR_COMMAND,                
00388     PA_ERR_INVALID,                
00389     PA_ERR_EXIST,                  
00390     PA_ERR_NOENTITY,               
00391     PA_ERR_CONNECTIONREFUSED,      
00392     PA_ERR_PROTOCOL,               
00393     PA_ERR_TIMEOUT,                
00394     PA_ERR_AUTHKEY,                
00395     PA_ERR_INTERNAL,               
00396     PA_ERR_CONNECTIONTERMINATED,   
00397     PA_ERR_KILLED,                 
00398     PA_ERR_INVALIDSERVER,          
00399     PA_ERR_MODINITFAILED,          
00400     PA_ERR_BADSTATE,               
00401     PA_ERR_NODATA,                 
00402     PA_ERR_VERSION,                
00403     PA_ERR_TOOLARGE,               
00404     PA_ERR_NOTSUPPORTED,           
00405     PA_ERR_UNKNOWN,                
00406     PA_ERR_NOEXTENSION,            
00407     PA_ERR_OBSOLETE,               
00408     PA_ERR_NOTIMPLEMENTED,         
00409     PA_ERR_FORKED,                 
00410     PA_ERR_IO,                     
00411     PA_ERR_BUSY,                   
00412     PA_ERR_MAX                     
00413 };
00414 
00416 #define PA_OK PA_OK
00417 #define PA_ERR_ACCESS PA_ERR_ACCESS
00418 #define PA_ERR_COMMAND PA_ERR_COMMAND
00419 #define PA_ERR_INVALID PA_ERR_INVALID
00420 #define PA_ERR_EXIST PA_ERR_EXIST
00421 #define PA_ERR_NOENTITY PA_ERR_NOENTITY
00422 #define PA_ERR_CONNECTIONREFUSED PA_ERR_CONNECTIONREFUSED
00423 #define PA_ERR_PROTOCOL PA_ERR_PROTOCOL
00424 #define PA_ERR_TIMEOUT PA_ERR_TIMEOUT
00425 #define PA_ERR_AUTHKEY PA_ERR_AUTHKEY
00426 #define PA_ERR_INTERNAL PA_ERR_INTERNAL
00427 #define PA_ERR_CONNECTIONTERMINATED PA_ERR_CONNECTIONTERMINATED
00428 #define PA_ERR_KILLED PA_ERR_KILLED
00429 #define PA_ERR_INVALIDSERVER PA_ERR_INVALIDSERVER
00430 #define PA_ERR_MODINITFAILED PA_ERR_MODINITFAILED
00431 #define PA_ERR_BADSTATE PA_ERR_BADSTATE
00432 #define PA_ERR_NODATA PA_ERR_NODATA
00433 #define PA_ERR_VERSION PA_ERR_VERSION
00434 #define PA_ERR_TOOLARGE PA_ERR_TOOLARGE
00435 #define PA_ERR_NOTSUPPORTED PA_ERR_NOTSUPPORTED
00436 #define PA_ERR_UNKNOWN PA_ERR_UNKNOWN
00437 #define PA_ERR_NOEXTENSION PA_ERR_NOEXTENSION
00438 #define PA_ERR_OBSOLETE PA_ERR_OBSOLETE
00439 #define PA_ERR_NOTIMPLEMENTED PA_ERR_NOTIMPLEMENTED
00440 #define PA_ERR_FORKED PA_ERR_FORKED
00441 #define PA_ERR_MAX PA_ERR_MAX
00442 
00445 typedef enum pa_subscription_mask {
00446     PA_SUBSCRIPTION_MASK_NULL = 0x0000U,
00449     PA_SUBSCRIPTION_MASK_SINK = 0x0001U,
00452     PA_SUBSCRIPTION_MASK_SOURCE = 0x0002U,
00455     PA_SUBSCRIPTION_MASK_SINK_INPUT = 0x0004U,
00458     PA_SUBSCRIPTION_MASK_SOURCE_OUTPUT = 0x0008U,
00461     PA_SUBSCRIPTION_MASK_MODULE = 0x0010U,
00464     PA_SUBSCRIPTION_MASK_CLIENT = 0x0020U,
00467     PA_SUBSCRIPTION_MASK_SAMPLE_CACHE = 0x0040U,
00470     PA_SUBSCRIPTION_MASK_SERVER = 0x0080U,
00474     PA_SUBSCRIPTION_MASK_AUTOLOAD = 0x0100U,
00478     PA_SUBSCRIPTION_MASK_CARD = 0x0200U,
00481     PA_SUBSCRIPTION_MASK_ALL = 0x02ffU
00483 } pa_subscription_mask_t;
00484 
00486 typedef enum pa_subscription_event_type {
00487     PA_SUBSCRIPTION_EVENT_SINK = 0x0000U,
00490     PA_SUBSCRIPTION_EVENT_SOURCE = 0x0001U,
00493     PA_SUBSCRIPTION_EVENT_SINK_INPUT = 0x0002U,
00496     PA_SUBSCRIPTION_EVENT_SOURCE_OUTPUT = 0x0003U,
00499     PA_SUBSCRIPTION_EVENT_MODULE = 0x0004U,
00502     PA_SUBSCRIPTION_EVENT_CLIENT = 0x0005U,
00505     PA_SUBSCRIPTION_EVENT_SAMPLE_CACHE = 0x0006U,
00508     PA_SUBSCRIPTION_EVENT_SERVER = 0x0007U,
00512     PA_SUBSCRIPTION_EVENT_AUTOLOAD = 0x0008U,
00516     PA_SUBSCRIPTION_EVENT_CARD = 0x0009U,
00519     PA_SUBSCRIPTION_EVENT_FACILITY_MASK = 0x000FU,
00522     PA_SUBSCRIPTION_EVENT_NEW = 0x0000U,
00525     PA_SUBSCRIPTION_EVENT_CHANGE = 0x0010U,
00528     PA_SUBSCRIPTION_EVENT_REMOVE = 0x0020U,
00531     PA_SUBSCRIPTION_EVENT_TYPE_MASK = 0x0030U
00534 } pa_subscription_event_type_t;
00535 
00537 #define pa_subscription_match_flags(m, t) (!!((m) & (1 << ((t) & PA_SUBSCRIPTION_EVENT_FACILITY_MASK))))
00538 
00540 #define PA_SUBSCRIPTION_MASK_NULL PA_SUBSCRIPTION_MASK_NULL
00541 #define PA_SUBSCRIPTION_MASK_SINK PA_SUBSCRIPTION_MASK_SINK
00542 #define PA_SUBSCRIPTION_MASK_SOURCE PA_SUBSCRIPTION_MASK_SOURCE
00543 #define PA_SUBSCRIPTION_MASK_SINK_INPUT PA_SUBSCRIPTION_MASK_SINK_INPUT
00544 #define PA_SUBSCRIPTION_MASK_SOURCE_OUTPUT PA_SUBSCRIPTION_MASK_SOURCE_OUTPUT
00545 #define PA_SUBSCRIPTION_MASK_MODULE PA_SUBSCRIPTION_MASK_MODULE
00546 #define PA_SUBSCRIPTION_MASK_CLIENT PA_SUBSCRIPTION_MASK_CLIENT
00547 #define PA_SUBSCRIPTION_MASK_SAMPLE_CACHE PA_SUBSCRIPTION_MASK_SAMPLE_CACHE
00548 #define PA_SUBSCRIPTION_MASK_SERVER PA_SUBSCRIPTION_MASK_SERVER
00549 #define PA_SUBSCRIPTION_MASK_AUTOLOAD PA_SUBSCRIPTION_MASK_AUTOLOAD
00550 #define PA_SUBSCRIPTION_MASK_CARD PA_SUBSCRIPTION_MASK_CARD
00551 #define PA_SUBSCRIPTION_MASK_ALL PA_SUBSCRIPTION_MASK_ALL
00552 #define PA_SUBSCRIPTION_EVENT_SINK PA_SUBSCRIPTION_EVENT_SINK
00553 #define PA_SUBSCRIPTION_EVENT_SOURCE PA_SUBSCRIPTION_EVENT_SOURCE
00554 #define PA_SUBSCRIPTION_EVENT_SINK_INPUT PA_SUBSCRIPTION_EVENT_SINK_INPUT
00555 #define PA_SUBSCRIPTION_EVENT_SOURCE_OUTPUT PA_SUBSCRIPTION_EVENT_SOURCE_OUTPUT
00556 #define PA_SUBSCRIPTION_EVENT_MODULE PA_SUBSCRIPTION_EVENT_MODULE
00557 #define PA_SUBSCRIPTION_EVENT_CLIENT PA_SUBSCRIPTION_EVENT_CLIENT
00558 #define PA_SUBSCRIPTION_EVENT_SAMPLE_CACHE PA_SUBSCRIPTION_EVENT_SAMPLE_CACHE
00559 #define PA_SUBSCRIPTION_EVENT_SERVER PA_SUBSCRIPTION_EVENT_SERVER
00560 #define PA_SUBSCRIPTION_EVENT_AUTOLOAD PA_SUBSCRIPTION_EVENT_AUTOLOAD
00561 #define PA_SUBSCRIPTION_EVENT_CARD PA_SUBSCRIPTION_EVENT_CARD
00562 #define PA_SUBSCRIPTION_EVENT_FACILITY_MASK PA_SUBSCRIPTION_EVENT_FACILITY_MASK
00563 #define PA_SUBSCRIPTION_EVENT_NEW PA_SUBSCRIPTION_EVENT_NEW
00564 #define PA_SUBSCRIPTION_EVENT_CHANGE PA_SUBSCRIPTION_EVENT_CHANGE
00565 #define PA_SUBSCRIPTION_EVENT_REMOVE PA_SUBSCRIPTION_EVENT_REMOVE
00566 #define PA_SUBSCRIPTION_EVENT_TYPE_MASK PA_SUBSCRIPTION_EVENT_TYPE_MASK
00567 
00587 typedef struct pa_timing_info {
00588     struct timeval timestamp;
00591     int synchronized_clocks;
00598     pa_usec_t sink_usec;
00603     pa_usec_t source_usec;
00607     pa_usec_t transport_usec;
00611     int playing;
00618     int write_index_corrupt;
00625     int64_t write_index;
00631     int read_index_corrupt;
00636     int64_t read_index;
00642     pa_usec_t configured_sink_usec;
00645     pa_usec_t configured_source_usec;
00648     int64_t since_underrun;
00654 } pa_timing_info;
00655 
00663 typedef struct pa_spawn_api {
00664     void (*prefork)(void);
00668     void (*postfork)(void);
00672     void (*atfork)(void);
00678 } pa_spawn_api;
00679 
00681 typedef enum pa_seek_mode {
00682     PA_SEEK_RELATIVE = 0,
00685     PA_SEEK_ABSOLUTE = 1,
00688     PA_SEEK_RELATIVE_ON_READ = 2,
00691     PA_SEEK_RELATIVE_END = 3
00693 } pa_seek_mode_t;
00694 
00696 #define PA_SEEK_RELATIVE PA_SEEK_RELATIVE
00697 #define PA_SEEK_ABSOLUTE PA_SEEK_ABSOLUTE
00698 #define PA_SEEK_RELATIVE_ON_READ PA_SEEK_RELATIVE_ON_READ
00699 #define PA_SEEK_RELATIVE_END PA_SEEK_RELATIVE_END
00700 
00703 typedef enum pa_sink_flags {
00704     PA_SINK_NOFLAGS = 0x0000U,
00707     PA_SINK_HW_VOLUME_CTRL = 0x0001U,
00710     PA_SINK_LATENCY = 0x0002U,
00713     PA_SINK_HARDWARE = 0x0004U,
00717     PA_SINK_NETWORK = 0x0008U,
00720     PA_SINK_HW_MUTE_CTRL = 0x0010U,
00723     PA_SINK_DECIBEL_VOLUME = 0x0020U,
00727     PA_SINK_FLAT_VOLUME = 0x0040U,
00731     PA_SINK_DYNAMIC_LATENCY = 0x0080U,
00735     PA_SINK_SYNC_VOLUME = 0x0100U,
00740     /* PRIVATE: Server-side values -- DO NOT USE THIS ON THE CLIENT
00741      * SIDE! These values are *not* considered part of the official PA
00742      * API/ABI. If you use them your application might break when PA
00743      * is upgraded. Also, please note that these values are not useful
00744      * on the client side anyway. */
00745 
00746     PA_SINK_SHARE_VOLUME_WITH_MASTER = 0x0200U,
00751 } pa_sink_flags_t;
00752 
00754 #define PA_SINK_HW_VOLUME_CTRL PA_SINK_HW_VOLUME_CTRL
00755 #define PA_SINK_LATENCY PA_SINK_LATENCY
00756 #define PA_SINK_HARDWARE PA_SINK_HARDWARE
00757 #define PA_SINK_NETWORK PA_SINK_NETWORK
00758 #define PA_SINK_HW_MUTE_CTRL PA_SINK_HW_MUTE_CTRL
00759 #define PA_SINK_DECIBEL_VOLUME PA_SINK_DECIBEL_VOLUME
00760 #define PA_SINK_FLAT_VOLUME PA_SINK_FLAT_VOLUME
00761 #define PA_SINK_DYNAMIC_LATENCY PA_SINK_DYNAMIC_LATENCY
00762 #define PA_SINK_SYNC_VOLUME PA_SINK_SYNC_VOLUME
00763 
00766 typedef enum pa_sink_state { /* enum serialized in u8 */
00767     PA_SINK_INVALID_STATE = -1,
00770     PA_SINK_RUNNING = 0,
00773     PA_SINK_IDLE = 1,
00776     PA_SINK_SUSPENDED = 2,
00780     /* PRIVATE: Server-side values -- DO NOT USE THIS ON THE CLIENT
00781      * SIDE! These values are *not* considered part of the official PA
00782      * API/ABI. If you use them your application might break when PA
00783      * is upgraded. Also, please note that these values are not useful
00784      * on the client side anyway. */
00785 
00786     PA_SINK_INIT = -2,
00789     PA_SINK_UNLINKED = -3
00793 } pa_sink_state_t;
00794 
00796 static inline int PA_SINK_IS_OPENED(pa_sink_state_t x) {
00797     return x == PA_SINK_RUNNING || x == PA_SINK_IDLE;
00798 }
00799 
00801 #define PA_SINK_INVALID_STATE PA_SINK_INVALID_STATE
00802 #define PA_SINK_RUNNING PA_SINK_RUNNING
00803 #define PA_SINK_IDLE PA_SINK_IDLE
00804 #define PA_SINK_SUSPENDED PA_SINK_SUSPENDED
00805 #define PA_SINK_INIT PA_SINK_INIT
00806 #define PA_SINK_UNLINKED PA_SINK_UNLINKED
00807 #define PA_SINK_IS_OPENED PA_SINK_IS_OPENED
00808 
00811 typedef enum pa_source_flags {
00812     PA_SOURCE_NOFLAGS = 0x0000U,
00815     PA_SOURCE_HW_VOLUME_CTRL = 0x0001U,
00818     PA_SOURCE_LATENCY = 0x0002U,
00821     PA_SOURCE_HARDWARE = 0x0004U,
00825     PA_SOURCE_NETWORK = 0x0008U,
00828     PA_SOURCE_HW_MUTE_CTRL = 0x0010U,
00831     PA_SOURCE_DECIBEL_VOLUME = 0x0020U,
00835     PA_SOURCE_DYNAMIC_LATENCY = 0x0040U
00838 } pa_source_flags_t;
00839 
00841 #define PA_SOURCE_HW_VOLUME_CTRL PA_SOURCE_HW_VOLUME_CTRL
00842 #define PA_SOURCE_LATENCY PA_SOURCE_LATENCY
00843 #define PA_SOURCE_HARDWARE PA_SOURCE_HARDWARE
00844 #define PA_SOURCE_NETWORK PA_SOURCE_NETWORK
00845 #define PA_SOURCE_HW_MUTE_CTRL PA_SOURCE_HW_MUTE_CTRL
00846 #define PA_SOURCE_DECIBEL_VOLUME PA_SOURCE_DECIBEL_VOLUME
00847 #define PA_SOURCE_DYNAMIC_LATENCY PA_SOURCE_DYNAMIC_LATENCY
00848 
00851 typedef enum pa_source_state {
00852     PA_SOURCE_INVALID_STATE = -1,
00855     PA_SOURCE_RUNNING = 0,
00858     PA_SOURCE_IDLE = 1,
00861     PA_SOURCE_SUSPENDED = 2,
00865     /* PRIVATE: Server-side values -- DO NOT USE THIS ON THE CLIENT
00866      * SIDE! These values are *not* considered part of the official PA
00867      * API/ABI. If you use them your application might break when PA
00868      * is upgraded. Also, please note that these values are not useful
00869      * on the client side anyway. */
00870 
00871     PA_SOURCE_INIT = -2,
00874     PA_SOURCE_UNLINKED = -3
00878 } pa_source_state_t;
00879 
00881 static inline int PA_SOURCE_IS_OPENED(pa_source_state_t x) {
00882     return x == PA_SOURCE_RUNNING || x == PA_SOURCE_IDLE;
00883 }
00884 
00886 #define PA_SOURCE_INVALID_STATE PA_SOURCE_INVALID_STATE
00887 #define PA_SOURCE_RUNNING PA_SOURCE_RUNNING
00888 #define PA_SOURCE_IDLE PA_SOURCE_IDLE
00889 #define PA_SOURCE_SUSPENDED PA_SOURCE_SUSPENDED
00890 #define PA_SOURCE_INIT PA_SOURCE_INIT
00891 #define PA_SOURCE_UNLINKED PA_SOURCE_UNLINKED
00892 #define PA_SOURCE_IS_OPENED PA_SOURCE_IS_OPENED
00893 
00896 typedef void (*pa_free_cb_t)(void *p);
00897 
00901 #define PA_STREAM_EVENT_REQUEST_CORK "request-cork"
00902 
00906 #define PA_STREAM_EVENT_REQUEST_UNCORK "request-uncork"
00907 
00908 PA_C_DECL_END
00909 
00910 #endif

Generated on Tue Jun 21 2011 23:52:09 for PulseAudio by  doxygen 1.7.1