1 /******************************************************************** 2 * * 3 * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * 4 * USE, DISTRIBUTION AND REPRODUCTION OF THIS SOURCE IS GOVERNED BY * 5 * THE GNU PUBLIC LICENSE 2, WHICH IS INCLUDED WITH THIS SOURCE. * 6 * PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * 7 * * 8 * THE Ogg123 SOURCE CODE IS (C) COPYRIGHT 2000-2001 * 9 * by Stan Seibert <volsung@xiph.org> AND OTHER CONTRIBUTORS * 10 * http://www.xiph.org/ * 11 * * 12 ******************************************************************** 13 14 last mod: $Id$ 15 16 ********************************************************************/ 17 18 #ifndef __STATUS_H__ 19 #define __STATUS_H__ 20 21 #include <stdarg.h> 22 #include "buffer.h" 23 #include "transport.h" 24 #include "format.h" 25 26 typedef struct { 27 int verbosity; 28 char enabled; 29 const char *formatstr; 30 enum { 31 stat_noarg = 0, 32 stat_intarg, 33 stat_stringarg, 34 stat_floatarg, 35 stat_doublearg 36 } type; 37 union { 38 int intarg; 39 char *stringarg; 40 float floatarg; 41 double doublearg; 42 } arg; 43 } stat_format_t; 44 45 46 /* Status options: 47 * stats[0] - currently playing file / stream 48 * stats[1] - current playback time 49 * stats[2] - remaining playback time 50 * stats[3] - total playback time 51 * stats[4] - instantaneous bitrate 52 * stats[5] - average bitrate (not yet implemented) 53 * stats[6] - input buffer fill % 54 * stats[7] - input buffer state 55 * stats[8] - output buffer fill % 56 * stats[9] - output buffer state 57 * stats[10] - Null format string to mark end of array 58 */ 59 stat_format_t *stat_format_create (); 60 void stat_format_cleanup (stat_format_t *stats); 61 62 void status_init (int verbosity); 63 void status_deinit (); 64 void status_reset_output_lock (); 65 void status_clear_line (); 66 void status_print_statistics (stat_format_t *stats, 67 buffer_stats_t *audio_statistics, 68 data_source_stats_t *data_source_statistics, 69 decoder_stats_t *decoder_statistics); 70 void status_message (int verbosity, const char *fmt, ...); 71 void vstatus_message (int verbosity, const char *fmt, va_list ap); 72 void status_error (const char *fmt, ...); 73 void vstatus_error (const char *fmt, va_list); 74 75 #endif /* __STATUS_H__ */ 76