Skip to content

Commit ffb762a

Browse files
author
Clement Champetier
committed
ProgressListener: separate interface from implemntation
* Create ProgressListener.cpp. * Add include to iostream in Transcoder.
1 parent 1714ab1 commit ffb762a

File tree

3 files changed

+46
-23
lines changed

3 files changed

+46
-23
lines changed

src/AvTranscoder/ProgressListener.cpp

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
#include "ProgressListener.hpp"
2+
3+
#include <iostream>
4+
#include <iomanip>
5+
6+
namespace avtranscoder
7+
{
8+
9+
IProgress::~IProgress()
10+
{}
11+
12+
ConsoleProgress::~ConsoleProgress()
13+
{}
14+
15+
EJobStatus ConsoleProgress::progress( const double processedDuration, const double programDuration )
16+
{
17+
std::string progress( 80, '-' );
18+
std::string done( 80.0 * processedDuration / programDuration, '#' );
19+
progress.replace( 0, done.size(), done );
20+
21+
std::cout << std::setprecision(2) << std::fixed << "\r[" << progress << "] " << processedDuration << "/" << programDuration << std::flush;
22+
23+
// if( processedFrames >= 100 )
24+
// return avtranscoder::eJobStatusCancel;
25+
26+
return eJobStatusContinue;
27+
}
28+
29+
NoDisplayProgress::~NoDisplayProgress()
30+
{}
31+
32+
EJobStatus NoDisplayProgress::progress( const double processedDuration, const double programDuration )
33+
{
34+
return eJobStatusContinue;
35+
}
36+
37+
}

src/AvTranscoder/ProgressListener.hpp

Lines changed: 7 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
#ifndef _AV_TRANSCODER_PROGRESS_LISTENER_HPP_
22
#define _AV_TRANSCODER_PROGRESS_LISTENER_HPP_
33

4+
#include <AvTranscoder/common.hpp>
5+
46
#include <iostream>
5-
#include <iomanip>
67

78
namespace avtranscoder
89
{
@@ -24,7 +25,7 @@ enum EJobStatus
2425
class IProgress
2526
{
2627
public:
27-
virtual ~IProgress() {};
28+
virtual ~IProgress() = 0;
2829

2930
/**
3031
* @brief Manage the progress.
@@ -41,22 +42,9 @@ class IProgress
4142
class ConsoleProgress : public IProgress
4243
{
4344
public:
44-
~ConsoleProgress()
45-
{}
46-
47-
EJobStatus progress( const double processedDuration, const double programDuration )
48-
{
49-
std::string progress( 80, '-' );
50-
std::string done( 80.0 * processedDuration / programDuration, '#' );
51-
progress.replace( 0, done.size(), done );
52-
53-
std::cout << std::setprecision(2) << std::fixed << "\r[" << progress << "] " << processedDuration << "/" << programDuration << std::flush;
54-
55-
// if( processedFrames >= 100 )
56-
// return avtranscoder::eJobStatusCancel;
45+
~ConsoleProgress();
5746

58-
return eJobStatusContinue;
59-
}
47+
EJobStatus progress( const double processedDuration, const double programDuration );
6048
};
6149

6250
/**
@@ -65,13 +53,9 @@ class ConsoleProgress : public IProgress
6553
class NoDisplayProgress : public IProgress
6654
{
6755
public:
68-
~NoDisplayProgress()
69-
{}
56+
~NoDisplayProgress();
7057

71-
EJobStatus progress( const double processedDuration, const double programDuration )
72-
{
73-
return eJobStatusContinue;
74-
}
58+
EJobStatus progress( const double processedDuration, const double programDuration );
7559
};
7660

7761
}

src/AvTranscoder/Transcoder/Transcoder.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
#include "Transcoder.hpp"
2+
23
#include <limits>
4+
#include <iostream>
35

46
namespace avtranscoder
57
{

0 commit comments

Comments
 (0)