7 #ifdef HAVE_PULSE_AUDIO 9 #include <pulse/context.h> 10 #include <pulse/thread-mainloop.h> 11 #include <pulse/introspect.h> 12 #include <pulse/stream.h> 13 #include <pulse/proplist.h> 14 #include <pulse/error.h> 16 #define PULSE_MAX_OUTPUT_CHANS PA_CHANNEL_POSITION_MAX 18 #define LIVES_PA_BUFF_MAXLEN 16384 19 #define LIVES_PA_BUFF_TARGET 1024 20 #define LIVES_PA_BUFF_FRAGSIZE 4096 22 #define PA_SAMPSIZE 16 32 pa_threaded_mainloop *mloop;
35 pa_proplist *pa_props;
37 volatile pa_usec_t usec_start;
41 pa_stream_state_t state;
44 volatile int in_arate;
53 uint64_t out_chans_available;
63 audio_buffer_t *aPlayPtr;
66 uint8_t *sound_buffer;
78 volatile uint64_t frames_written;
84 volatile off_t real_seek_pos;
87 boolean reverse_endian;
99 volatile int read_abuf;
103 double volume_linear;
105 volatile int astream_fd;
107 volatile float abs_maxvol_heard;
109 volatile boolean is_corked;
114 boolean lives_pulse_init(
short startup_phase);
116 int pulse_audio_init(
void);
117 int pulse_audio_read_init(
void);
119 pulse_driver_t *pulse_get_driver(
boolean is_output);
121 int pulse_driver_activate(pulse_driver_t *);
122 void pulse_close_client(pulse_driver_t *);
124 void pulse_shutdown(
void);
126 void pulse_aud_pb_ready(
int fileno);
128 size_t pulse_flush_read_data(pulse_driver_t *,
int fileno,
size_t rbytes,
boolean rev_endian,
void *data);
130 void pulse_driver_uncork(pulse_driver_t *);
131 void pulse_driver_cork(pulse_driver_t *);
133 boolean pulse_try_reconnect(
void);
138 int64_t pulse_audio_seek_bytes(pulse_driver_t *pulsed, int64_t bytes,
lives_clip_t *sfile);
140 void pa_time_reset(pulse_driver_t *pulsed, int64_t offset);
142 uint64_t lives_pulse_get_time(pulse_driver_t *);
144 double lives_pulse_get_pos(pulse_driver_t *);
146 void pa_mloop_lock(
void);
147 void pa_mloop_unlock(
void);
151 boolean pulse_audio_seek_frame(pulse_driver_t *,
int frame);
153 void pulse_get_rec_avals(pulse_driver_t *);
lives_audio_loop_t
Definition: audio.h:141
lives_whentostop_t
which stream end should cause playback to finish ?
Definition: main.h:408
corresponds to one clip in the GUI
Definition: main.h:538
lives_cancel_t
cancel reason
Definition: main.h:415