int groove_fingerprinter_info_get(struct GrooveFingerprinter *printer, struct GrooveFingerprinterInfo *info, int block) { struct GrooveFingerprinterPrivate *p = (struct GrooveFingerprinterPrivate *) printer; struct GrooveFingerprinterInfo *info_ptr; if (groove_queue_get(p->info_queue, (void**)&info_ptr, block) == 1) { *info = *info_ptr; deallocate(info_ptr); return 1; } return 0; }
int groove_sink_buffer_get(struct GrooveSink *sink, struct GrooveBuffer **buffer, int block) { struct GrooveSinkPrivate *s = (struct GrooveSinkPrivate *) sink; if (groove_queue_get(s->audioq, (void**)buffer, block) == 1) { if (*buffer == end_of_q_sentinel) { *buffer = NULL; return GROOVE_BUFFER_END; } else { return GROOVE_BUFFER_YES; } } else { *buffer = NULL; return GROOVE_BUFFER_NO; } }
int groove_encoder_buffer_get(struct GrooveEncoder *encoder, struct GrooveBuffer **buffer, int block) { struct GrooveEncoderPrivate *e = (struct GrooveEncoderPrivate *) encoder; if (groove_queue_get(e->audioq, (void**)buffer, block) == 1) { if (*buffer == end_of_q_sentinel) { *buffer = NULL; return GROOVE_BUFFER_END; } else { return GROOVE_BUFFER_YES; } } else { *buffer = NULL; return GROOVE_BUFFER_NO; } }