added multiple verbosity-level event reporting and verbosity command
line option
This commit is contained in:
parent
199799c61d
commit
11f054eeca
|
@ -37,6 +37,7 @@
|
||||||
/* ============================================================ include files */
|
/* ============================================================ include files */
|
||||||
|
|
||||||
#include "Ref.h"
|
#include "Ref.h"
|
||||||
|
#include "Reporter.h"
|
||||||
#include "Sink.h"
|
#include "Sink.h"
|
||||||
|
|
||||||
|
|
||||||
|
@ -57,7 +58,7 @@
|
||||||
* @author $Author$
|
* @author $Author$
|
||||||
* @version $Revision$
|
* @version $Revision$
|
||||||
*/
|
*/
|
||||||
class BufferedSink : public Sink
|
class BufferedSink : public Sink, public virtual Reporter
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
|
|
||||||
|
@ -163,6 +164,8 @@ class BufferedSink : public Sink
|
||||||
|
|
||||||
u = outp <= inp ? inp - outp : (bufferEnd - outp) + (inp - buffer);
|
u = outp <= inp ? inp - outp : (bufferEnd - outp) + (inp - buffer);
|
||||||
if ( peak < u ) {
|
if ( peak < u ) {
|
||||||
|
reportEvent( 4, "BufferedSink, new peak:", peak);
|
||||||
|
reportEvent( 4, "BufferedSink, remaining:", bufferSize - peak);
|
||||||
peak = u;
|
peak = u;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -388,6 +391,10 @@ class BufferedSink : public Sink
|
||||||
$Source$
|
$Source$
|
||||||
|
|
||||||
$Log$
|
$Log$
|
||||||
|
Revision 1.5 2000/11/15 18:08:42 darkeye
|
||||||
|
added multiple verbosity-level event reporting and verbosity command
|
||||||
|
line option
|
||||||
|
|
||||||
Revision 1.4 2000/11/11 12:33:13 darkeye
|
Revision 1.4 2000/11/11 12:33:13 darkeye
|
||||||
added kdoc-style documentation
|
added kdoc-style documentation
|
||||||
|
|
||||||
|
|
|
@ -265,6 +265,8 @@ Connector :: transfer ( unsigned int bytes,
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
reportEvent( 6, "Connector :: tranfer, bytes", bytes);
|
||||||
|
|
||||||
for ( b = 0; b < bytes; ) {
|
for ( b = 0; b < bytes; ) {
|
||||||
unsigned int d = 0;
|
unsigned int d = 0;
|
||||||
unsigned int e = 0;
|
unsigned int e = 0;
|
||||||
|
@ -274,7 +276,7 @@ Connector :: transfer ( unsigned int bytes,
|
||||||
|
|
||||||
/* check for EOF */
|
/* check for EOF */
|
||||||
if ( d == 0 ) {
|
if ( d == 0 ) {
|
||||||
cout << "Connector :: transfer, EOF" << endl;
|
reportEvent( 3, "Connector :: transfer, EOF");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -289,8 +291,11 @@ cout << "Connector :: transfer, EOF" << endl;
|
||||||
* and the next sink comes to sinks[u] */
|
* and the next sink comes to sinks[u] */
|
||||||
--u;
|
--u;
|
||||||
|
|
||||||
|
reportEvent( 5,
|
||||||
|
"Connector :: transfer, sink removed, remaining", u);
|
||||||
|
|
||||||
if ( numSinks == 0 ) {
|
if ( numSinks == 0 ) {
|
||||||
cout << "Connector :: transfer, no more sinks" << endl;
|
reportEvent( 4, "Connector :: transfer, no more sinks");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -298,7 +303,7 @@ cout << "Connector :: transfer, no more sinks" << endl;
|
||||||
|
|
||||||
b += d;
|
b += d;
|
||||||
} else {
|
} else {
|
||||||
cout << "Connector :: transfer, can't read" << endl;
|
reportEvent( 3, "Connector :: transfer, can't read");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -328,6 +333,10 @@ Connector :: close ( void ) throw ( Exception )
|
||||||
$Source$
|
$Source$
|
||||||
|
|
||||||
$Log$
|
$Log$
|
||||||
|
Revision 1.3 2000/11/15 18:08:43 darkeye
|
||||||
|
added multiple verbosity-level event reporting and verbosity command
|
||||||
|
line option
|
||||||
|
|
||||||
Revision 1.2 2000/11/13 18:46:50 darkeye
|
Revision 1.2 2000/11/13 18:46:50 darkeye
|
||||||
added kdoc-style documentation comments
|
added kdoc-style documentation comments
|
||||||
|
|
||||||
|
|
|
@ -38,6 +38,7 @@
|
||||||
|
|
||||||
#include "Referable.h"
|
#include "Referable.h"
|
||||||
#include "Ref.h"
|
#include "Ref.h"
|
||||||
|
#include "Reporter.h"
|
||||||
#include "Source.h"
|
#include "Source.h"
|
||||||
#include "Sink.h"
|
#include "Sink.h"
|
||||||
|
|
||||||
|
@ -56,7 +57,7 @@
|
||||||
* @author $Author$
|
* @author $Author$
|
||||||
* @version $Revision$
|
* @version $Revision$
|
||||||
*/
|
*/
|
||||||
class Connector : public virtual Referable
|
class Connector : public virtual Referable, public virtual Reporter
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
|
|
||||||
|
@ -257,6 +258,10 @@ class Connector : public virtual Referable
|
||||||
$Source$
|
$Source$
|
||||||
|
|
||||||
$Log$
|
$Log$
|
||||||
|
Revision 1.3 2000/11/15 18:08:43 darkeye
|
||||||
|
added multiple verbosity-level event reporting and verbosity command
|
||||||
|
line option
|
||||||
|
|
||||||
Revision 1.2 2000/11/13 18:46:50 darkeye
|
Revision 1.2 2000/11/13 18:46:50 darkeye
|
||||||
added kdoc-style documentation comments
|
added kdoc-style documentation comments
|
||||||
|
|
||||||
|
|
|
@ -225,9 +225,13 @@ DarkIce :: init ( const Config & config ) throw ( Exception )
|
||||||
}
|
}
|
||||||
|
|
||||||
// encoder related stuff
|
// encoder related stuff
|
||||||
|
unsigned int bs = bufferSecs *
|
||||||
|
(bitsPerSample / 8) * channel * sampleRate;
|
||||||
outputs[i].encIn = new BufferedSink( outputs[i].encInPipe.get(),
|
outputs[i].encIn = new BufferedSink( outputs[i].encInPipe.get(),
|
||||||
bufferSecs * (bitsPerSample / 8) * channel * sampleRate,
|
bs,
|
||||||
(bitsPerSample / 8) * channel );
|
(bitsPerSample / 8) * channel );
|
||||||
|
reportEvent( 6, "using buffer size", bs);
|
||||||
|
|
||||||
encConnector->attach( outputs[i].encIn.get());
|
encConnector->attach( outputs[i].encIn.get());
|
||||||
outputs[i].encoder = new LameEncoder( encoder,
|
outputs[i].encoder = new LameEncoder( encoder,
|
||||||
outputs[i].encInPipe->getFileName(),
|
outputs[i].encInPipe->getFileName(),
|
||||||
|
@ -268,6 +272,7 @@ DarkIce :: encode ( void ) throw ( Exception )
|
||||||
{
|
{
|
||||||
unsigned int len;
|
unsigned int len;
|
||||||
int i;
|
int i;
|
||||||
|
unsigned int bytes;
|
||||||
|
|
||||||
for ( i = 0; i < noOutputs; ++i ) {
|
for ( i = 0; i < noOutputs; ++i ) {
|
||||||
outputs[i].encoder->start();
|
outputs[i].encoder->start();
|
||||||
|
@ -279,10 +284,12 @@ DarkIce :: encode ( void ) throw ( Exception )
|
||||||
throw Exception( __FILE__, __LINE__, "can't open connector");
|
throw Exception( __FILE__, __LINE__, "can't open connector");
|
||||||
}
|
}
|
||||||
|
|
||||||
len = encConnector->transfer( dsp->getSampleRate() *
|
bytes = dsp->getSampleRate() *
|
||||||
(dsp->getBitsPerSample() / 8) *
|
(dsp->getBitsPerSample() / 8) *
|
||||||
dsp->getChannel() *
|
dsp->getChannel() *
|
||||||
duration,
|
duration;
|
||||||
|
|
||||||
|
len = encConnector->transfer( bytes,
|
||||||
4096,
|
4096,
|
||||||
1,
|
1,
|
||||||
0 );
|
0 );
|
||||||
|
@ -306,6 +313,7 @@ bool
|
||||||
DarkIce :: shout ( unsigned int ix ) throw ( Exception )
|
DarkIce :: shout ( unsigned int ix ) throw ( Exception )
|
||||||
{
|
{
|
||||||
unsigned int len;
|
unsigned int len;
|
||||||
|
unsigned int bytes;
|
||||||
|
|
||||||
if ( ix >= noOutputs ) {
|
if ( ix >= noOutputs ) {
|
||||||
return false;
|
return false;
|
||||||
|
@ -315,13 +323,8 @@ DarkIce :: shout ( unsigned int ix ) throw ( Exception )
|
||||||
throw Exception( __FILE__, __LINE__, "can't open connector");
|
throw Exception( __FILE__, __LINE__, "can't open connector");
|
||||||
}
|
}
|
||||||
|
|
||||||
len = outputs[ix].shoutConnector->transfer (
|
bytes = outputs[ix].encoder->getOutBitrate() * (1024 / 8) * duration;
|
||||||
outputs[ix].encoder->getOutBitrate()
|
len = outputs[ix].shoutConnector->transfer ( bytes, 4096, 10, 0 );
|
||||||
* (1024 / 8)
|
|
||||||
* duration,
|
|
||||||
4096,
|
|
||||||
10,
|
|
||||||
0 );
|
|
||||||
|
|
||||||
cout << len << " bytes transfered" << endl;
|
cout << len << " bytes transfered" << endl;
|
||||||
|
|
||||||
|
@ -384,6 +387,10 @@ DarkIce :: run ( void ) throw ( Exception )
|
||||||
$Source$
|
$Source$
|
||||||
|
|
||||||
$Log$
|
$Log$
|
||||||
|
Revision 1.8 2000/11/15 18:08:43 darkeye
|
||||||
|
added multiple verbosity-level event reporting and verbosity command
|
||||||
|
line option
|
||||||
|
|
||||||
Revision 1.7 2000/11/13 19:38:55 darkeye
|
Revision 1.7 2000/11/13 19:38:55 darkeye
|
||||||
moved command line parameter parsing from DarkIce.cpp to main.cpp
|
moved command line parameter parsing from DarkIce.cpp to main.cpp
|
||||||
|
|
||||||
|
|
|
@ -49,6 +49,7 @@
|
||||||
#include <iostream.h>
|
#include <iostream.h>
|
||||||
|
|
||||||
#include "Referable.h"
|
#include "Referable.h"
|
||||||
|
#include "Reporter.h"
|
||||||
#include "Exception.h"
|
#include "Exception.h"
|
||||||
#include "Ref.h"
|
#include "Ref.h"
|
||||||
#include "OssDspSource.h"
|
#include "OssDspSource.h"
|
||||||
|
@ -76,7 +77,7 @@
|
||||||
* @author $Author$
|
* @author $Author$
|
||||||
* @version $Revision$
|
* @version $Revision$
|
||||||
*/
|
*/
|
||||||
class DarkIce : public virtual Referable
|
class DarkIce : public virtual Referable, public virtual Reporter
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
|
|
||||||
|
@ -235,6 +236,10 @@ class DarkIce : public virtual Referable
|
||||||
$Source$
|
$Source$
|
||||||
|
|
||||||
$Log$
|
$Log$
|
||||||
|
Revision 1.6 2000/11/15 18:08:43 darkeye
|
||||||
|
added multiple verbosity-level event reporting and verbosity command
|
||||||
|
line option
|
||||||
|
|
||||||
Revision 1.5 2000/11/13 19:38:55 darkeye
|
Revision 1.5 2000/11/13 19:38:55 darkeye
|
||||||
moved command line parameter parsing from DarkIce.cpp to main.cpp
|
moved command line parameter parsing from DarkIce.cpp to main.cpp
|
||||||
|
|
||||||
|
|
|
@ -42,5 +42,7 @@ darkice_SOURCES = AudioEncoder.h\
|
||||||
ConfigSection.cpp\
|
ConfigSection.cpp\
|
||||||
Config.h\
|
Config.h\
|
||||||
Config.cpp\
|
Config.cpp\
|
||||||
|
Reporter.h\
|
||||||
|
Reporter.cpp\
|
||||||
main.cpp
|
main.cpp
|
||||||
|
|
||||||
|
|
|
@ -48,6 +48,7 @@
|
||||||
|
|
||||||
#include "Ref.h"
|
#include "Ref.h"
|
||||||
#include "Exception.h"
|
#include "Exception.h"
|
||||||
|
#include "Util.h"
|
||||||
#include "DarkIce.h"
|
#include "DarkIce.h"
|
||||||
|
|
||||||
|
|
||||||
|
@ -90,20 +91,27 @@ main (
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const char * configFileName = 0;
|
const char * configFileName = 0;
|
||||||
|
unsigned int verbosity = 1;
|
||||||
int i;
|
int i;
|
||||||
|
const char opts[] = "hc:v:";
|
||||||
static struct option long_options[] = {
|
static struct option long_options[] = {
|
||||||
{ "config", 1, 0, 'c'},
|
{ "config", 1, 0, 'c'},
|
||||||
{ "help", 0, 0, 'h'},
|
{ "help", 0, 0, 'h'},
|
||||||
|
{ "verbosity", 1, 0, 'v'},
|
||||||
{ 0, 0, 0, 0}
|
{ 0, 0, 0, 0}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
while ( (i = getopt_long( argc, argv, "hc:", long_options, 0)) != -1 ) {
|
while ( (i = getopt_long( argc, argv, opts, long_options, 0)) != -1 ) {
|
||||||
switch ( i ) {
|
switch ( i ) {
|
||||||
case 'c':
|
case 'c':
|
||||||
configFileName = optarg;
|
configFileName = optarg;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 'v':
|
||||||
|
verbosity = Util::strToL( optarg);
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
case ':':
|
case ':':
|
||||||
case '?':
|
case '?':
|
||||||
|
@ -123,6 +131,8 @@ main (
|
||||||
ifstream configFile( configFileName);
|
ifstream configFile( configFileName);
|
||||||
Config config( configFile);
|
Config config( configFile);
|
||||||
Ref<DarkIce> di = new DarkIce( config);
|
Ref<DarkIce> di = new DarkIce( config);
|
||||||
|
di->setReportVerbosity( verbosity );
|
||||||
|
di->setReportOutputStream( cout );
|
||||||
|
|
||||||
res = di->run();
|
res = di->run();
|
||||||
|
|
||||||
|
@ -148,6 +158,8 @@ showUsage ( ostream & os )
|
||||||
<< endl
|
<< endl
|
||||||
<< " -c, --config=config.file use configuration file config.file"
|
<< " -c, --config=config.file use configuration file config.file"
|
||||||
<< endl
|
<< endl
|
||||||
|
<< " -v, --verbosity=number verbosity level (0 = silent, 10 = loud)"
|
||||||
|
<< endl
|
||||||
<< " -h, --help print this message and exit"
|
<< " -h, --help print this message and exit"
|
||||||
<< endl
|
<< endl
|
||||||
<< endl;
|
<< endl;
|
||||||
|
@ -159,6 +171,10 @@ showUsage ( ostream & os )
|
||||||
$Source$
|
$Source$
|
||||||
|
|
||||||
$Log$
|
$Log$
|
||||||
|
Revision 1.5 2000/11/15 18:08:43 darkeye
|
||||||
|
added multiple verbosity-level event reporting and verbosity command
|
||||||
|
line option
|
||||||
|
|
||||||
Revision 1.4 2000/11/13 20:21:29 darkeye
|
Revision 1.4 2000/11/13 20:21:29 darkeye
|
||||||
added program version display on startup
|
added program version display on startup
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue