diff options
| -rw-r--r-- | polyp/Makefile.am | 2 | ||||
| -rw-r--r-- | polyp/memblockq.c | 5 | ||||
| -rw-r--r-- | polyp/memblockq.h | 5 | ||||
| -rw-r--r-- | polyp/pacat.c | 5 | ||||
| -rw-r--r-- | polyp/protocol-native.c | 4 | 
5 files changed, 15 insertions, 6 deletions
diff --git a/polyp/Makefile.am b/polyp/Makefile.am index 1f982515..5a49201a 100644 --- a/polyp/Makefile.am +++ b/polyp/Makefile.am @@ -272,7 +272,7 @@ if !X_DISPLAY_MISSING  module_x11_bell_la_SOURCES = module-x11-bell.c  module_x11_bell_la_CFLAGS = $(AM_CFLAGS) $(X_CFLAGS)  module_x11_bell_la_LDFLAGS = -module -avoid-version -module_x11_bell_la_LIBADD = $(AM_LIBADD) $(X_PRE_LIBS) $(X_LIBS) $(X_EXTRA_LIB) +module_x11_bell_la_LIBADD = $(AM_LIBADD) $(X_PRE_LIBS) -lX11 $(X_LIBS) $(X_EXTRA_LIB)  endif  libpolyp_la_SOURCES = polyplib.h \ diff --git a/polyp/memblockq.c b/polyp/memblockq.c index 4019c893..8f499df0 100644 --- a/polyp/memblockq.c +++ b/polyp/memblockq.c @@ -323,3 +323,8 @@ uint32_t pa_memblockq_get_minreq(struct pa_memblockq *bq) {      assert(bq);      return bq->minreq;  } + +void pa_memblockq_prebuf_disable(struct pa_memblockq *bq) { +    assert(bq); +    bq->prebuf = 0; +} diff --git a/polyp/memblockq.h b/polyp/memblockq.h index e6ad01db..40184703 100644 --- a/polyp/memblockq.h +++ b/polyp/memblockq.h @@ -76,7 +76,10 @@ uint32_t pa_memblockq_get_length(struct pa_memblockq *bq);  /* Return how many bytes are missing in queue to the specified fill amount */  uint32_t pa_memblockq_missing(struct pa_memblockq *bq); - +/* Returns the minimal request value */  uint32_t pa_memblockq_get_minreq(struct pa_memblockq *bq); +/* Force disabling of pre-buf even when the pre-buffer is not yet filled */ +void pa_memblockq_prebuf_disable(struct pa_memblockq *bq); +  #endif diff --git a/polyp/pacat.c b/polyp/pacat.c index 4f3bf001..2c7044b8 100644 --- a/polyp/pacat.c +++ b/polyp/pacat.c @@ -113,16 +113,13 @@ static void stream_state_callback(struct pa_stream *s, void *userdata) {      switch (pa_stream_get_state(s)) {          case PA_STREAM_CREATING: +        case PA_STREAM_TERMINATED:              break;          case PA_STREAM_READY:              fprintf(stderr, "Stream successfully created\n");              break; -        case PA_STREAM_TERMINATED: -            quit(0); -            break; -                      case PA_STREAM_FAILED:          default:              fprintf(stderr, "Stream errror: %s\n", pa_strerror(pa_context_errno(pa_stream_get_context(s)))); diff --git a/polyp/protocol-native.c b/polyp/protocol-native.c index 1fafc984..e86c78f0 100644 --- a/polyp/protocol-native.c +++ b/polyp/protocol-native.c @@ -748,12 +748,16 @@ static void command_drain_playback_stream(struct pa_pdispatch *pd, uint32_t comm      }      s->drain_request = 0; + +    pa_memblockq_prebuf_disable(s->memblockq);      if (!pa_memblockq_is_readable(s->memblockq))          pa_pstream_send_simple_ack(c->pstream, tag);      else {          s->drain_request = 1;          s->drain_tag = tag; + +        pa_sink_notify(s->sink_input->sink);      }  }   | 
