Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
M
mpd
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Иван Мажукин
mpd
Commits
bf803e24
Commit
bf803e24
authored
Jan 28, 2014
by
Max Kellermann
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
AudioOutput: pass plugin to constructor
Make it "const".
parent
8a8d023f
Hide whitespace changes
Inline
Side-by-side
Showing
18 changed files
with
68 additions
and
45 deletions
+68
-45
Init.cxx
src/output/Init.cxx
+7
-9
Internal.hxx
src/output/Internal.hxx
+2
-3
AlsaOutputPlugin.cxx
src/output/plugins/AlsaOutputPlugin.cxx
+4
-3
AoOutputPlugin.cxx
src/output/plugins/AoOutputPlugin.cxx
+4
-2
FifoOutputPlugin.cxx
src/output/plugins/FifoOutputPlugin.cxx
+3
-3
HttpdOutputPlugin.cxx
src/output/plugins/HttpdOutputPlugin.cxx
+2
-1
JackOutputPlugin.cxx
src/output/plugins/JackOutputPlugin.cxx
+4
-2
NullOutputPlugin.cxx
src/output/plugins/NullOutputPlugin.cxx
+4
-2
OSXOutputPlugin.cxx
src/output/plugins/OSXOutputPlugin.cxx
+4
-1
OpenALOutputPlugin.cxx
src/output/plugins/OpenALOutputPlugin.cxx
+4
-2
OssOutputPlugin.cxx
src/output/plugins/OssOutputPlugin.cxx
+4
-3
PipeOutputPlugin.cxx
src/output/plugins/PipeOutputPlugin.cxx
+4
-2
PulseOutputPlugin.cxx
src/output/plugins/PulseOutputPlugin.cxx
+4
-1
RecorderOutputPlugin.cxx
src/output/plugins/RecorderOutputPlugin.cxx
+4
-2
RoarOutputPlugin.cxx
src/output/plugins/RoarOutputPlugin.cxx
+3
-3
ShoutOutputPlugin.cxx
src/output/plugins/ShoutOutputPlugin.cxx
+3
-3
SolarisOutputPlugin.cxx
src/output/plugins/SolarisOutputPlugin.cxx
+4
-2
WinmmOutputPlugin.cxx
src/output/plugins/WinmmOutputPlugin.cxx
+4
-1
No files found.
src/output/Init.cxx
View file @
bf803e24
...
...
@@ -46,8 +46,9 @@
#define AUDIO_OUTPUT_FORMAT "format"
#define AUDIO_FILTERS "filters"
AudioOutput
::
AudioOutput
()
:
enabled
(
true
),
really_enabled
(
false
),
AudioOutput
::
AudioOutput
(
const
AudioOutputPlugin
&
_plugin
)
:
plugin
(
&
_plugin
),
enabled
(
true
),
really_enabled
(
false
),
open
(
false
),
pause
(
false
),
allow_play
(
true
),
...
...
@@ -58,6 +59,10 @@ AudioOutput::AudioOutput()
other_replay_gain_filter
(
nullptr
),
command
(
AO_COMMAND_NONE
)
{
assert
(
plugin
->
finish
!=
nullptr
);
assert
(
plugin
->
open
!=
nullptr
);
assert
(
plugin
->
close
!=
nullptr
);
assert
(
plugin
->
play
!=
nullptr
);
}
static
const
AudioOutputPlugin
*
...
...
@@ -143,15 +148,9 @@ audio_output_load_mixer(AudioOutput *ao,
bool
ao_base_init
(
AudioOutput
*
ao
,
const
AudioOutputPlugin
*
plugin
,
const
config_param
&
param
,
Error
&
error
)
{
assert
(
ao
!=
nullptr
);
assert
(
plugin
!=
nullptr
);
assert
(
plugin
->
finish
!=
nullptr
);
assert
(
plugin
->
open
!=
nullptr
);
assert
(
plugin
->
close
!=
nullptr
);
assert
(
plugin
->
play
!=
nullptr
);
if
(
!
param
.
IsNull
())
{
ao
->
name
=
param
.
GetBlockValue
(
AUDIO_OUTPUT_NAME
);
...
...
@@ -176,7 +175,6 @@ ao_base_init(AudioOutput *ao,
ao
->
config_audio_format
.
Clear
();
}
ao
->
plugin
=
plugin
;
ao
->
tags
=
param
.
GetBlockValue
(
"tags"
,
true
);
ao
->
always_on
=
param
.
GetBlockValue
(
"always_on"
,
false
);
ao
->
enabled
=
param
.
GetBlockValue
(
"enabled"
,
true
);
...
...
src/output/Internal.hxx
View file @
bf803e24
...
...
@@ -69,7 +69,7 @@ struct AudioOutput {
/**
* The plugin which implements this output device.
*/
const
AudioOutputPlugin
*
plugin
;
const
AudioOutputPlugin
*
const
plugin
;
/**
* The #mixer object associated with this audio output device.
...
...
@@ -264,7 +264,7 @@ struct AudioOutput {
*/
bool
chunk_finished
;
AudioOutput
();
AudioOutput
(
const
AudioOutputPlugin
&
_plugin
);
~
AudioOutput
();
};
...
...
@@ -293,7 +293,6 @@ audio_output_new(const config_param ¶m,
bool
ao_base_init
(
AudioOutput
*
ao
,
const
AudioOutputPlugin
*
plugin
,
const
config_param
&
param
,
Error
&
error
);
void
...
...
src/output/plugins/AlsaOutputPlugin.cxx
View file @
bf803e24
...
...
@@ -119,12 +119,13 @@ struct AlsaOutput {
*/
uint8_t
*
silence
;
AlsaOutput
()
:
mode
(
0
),
writei
(
snd_pcm_writei
)
{
AlsaOutput
()
:
base
(
alsa_output_plugin
),
mode
(
0
),
writei
(
snd_pcm_writei
)
{
}
bool
Init
(
const
config_param
&
param
,
Error
&
error
)
{
return
ao_base_init
(
&
base
,
&
alsa_output_plugin
,
param
,
error
);
return
ao_base_init
(
&
base
,
param
,
error
);
}
};
...
...
src/output/plugins/AoOutputPlugin.cxx
View file @
bf803e24
...
...
@@ -42,9 +42,11 @@ struct AoOutput {
ao_option
*
options
;
ao_device
*
device
;
AoOutput
()
:
base
(
ao_output_plugin
)
{}
bool
Initialize
(
const
config_param
&
param
,
Error
&
error
)
{
return
ao_base_init
(
&
base
,
&
ao_output_plugin
,
param
,
error
);
return
ao_base_init
(
&
base
,
param
,
error
);
}
bool
Configure
(
const
config_param
&
param
,
Error
&
error
);
...
...
src/output/plugins/FifoOutputPlugin.cxx
View file @
bf803e24
...
...
@@ -47,12 +47,12 @@ struct FifoOutput {
Timer
*
timer
;
FifoOutput
()
:
path
(
AllocatedPath
::
Null
()),
input
(
-
1
),
output
(
-
1
),
:
base
(
fifo_output_plugin
),
path
(
AllocatedPath
::
Null
()),
input
(
-
1
),
output
(
-
1
),
created
(
false
)
{}
bool
Initialize
(
const
config_param
&
param
,
Error
&
error
)
{
return
ao_base_init
(
&
base
,
&
fifo_output_plugin
,
param
,
error
);
return
ao_base_init
(
&
base
,
param
,
error
);
}
bool
Create
(
Error
&
error
);
...
...
src/output/plugins/HttpdOutputPlugin.cxx
View file @
bf803e24
...
...
@@ -51,6 +51,7 @@ const Domain httpd_output_domain("httpd_output");
inline
HttpdOutput
::
HttpdOutput
(
EventLoop
&
_loop
)
:
ServerSocket
(
_loop
),
DeferredMonitor
(
_loop
),
base
(
httpd_output_plugin
),
encoder
(
nullptr
),
unflushed_input
(
0
),
metadata
(
nullptr
)
{
...
...
@@ -136,7 +137,7 @@ HttpdOutput::Configure(const config_param ¶m, Error &error)
inline
bool
HttpdOutput
::
Init
(
const
config_param
&
param
,
Error
&
error
)
{
return
ao_base_init
(
&
base
,
&
httpd_output_plugin
,
param
,
error
);
return
ao_base_init
(
&
base
,
param
,
error
);
}
static
AudioOutput
*
...
...
src/output/plugins/JackOutputPlugin.cxx
View file @
bf803e24
...
...
@@ -79,9 +79,11 @@ struct JackOutput {
*/
bool
pause
;
JackOutput
()
:
base
(
jack_output_plugin
)
{}
bool
Initialize
(
const
config_param
&
param
,
Error
&
error_r
)
{
return
ao_base_init
(
&
base
,
&
jack_output_plugin
,
param
,
error_r
);
return
ao_base_init
(
&
base
,
param
,
error_r
);
}
};
...
...
src/output/plugins/NullOutputPlugin.cxx
View file @
bf803e24
...
...
@@ -29,9 +29,11 @@ struct NullOutput {
Timer
*
timer
;
NullOutput
()
:
base
(
null_output_plugin
)
{}
bool
Initialize
(
const
config_param
&
param
,
Error
&
error
)
{
return
ao_base_init
(
&
base
,
&
null_output_plugin
,
param
,
error
);
return
ao_base_init
(
&
base
,
param
,
error
);
}
};
...
...
src/output/plugins/OSXOutputPlugin.cxx
View file @
bf803e24
...
...
@@ -45,6 +45,9 @@ struct OSXOutput {
Cond
condition
;
DynamicFifoBuffer
<
uint8_t
>
*
buffer
;
OSXOutput
()
:
base
(
osx_output_plugin
)
{}
};
static
constexpr
Domain
osx_output_domain
(
"osx_output"
);
...
...
@@ -81,7 +84,7 @@ static AudioOutput *
osx_output_init
(
const
config_param
&
param
,
Error
&
error
)
{
OSXOutput
*
oo
=
new
OSXOutput
();
if
(
!
ao_base_init
(
&
oo
->
base
,
&
osx_output_plugin
,
param
,
error
))
{
if
(
!
ao_base_init
(
&
oo
->
base
,
param
,
error
))
{
delete
oo
;
return
NULL
;
}
...
...
src/output/plugins/OpenALOutputPlugin.cxx
View file @
bf803e24
...
...
@@ -48,9 +48,11 @@ struct OpenALOutput {
ALenum
format
;
ALuint
frequency
;
OpenALOutput
()
:
base
(
openal_output_plugin
)
{}
bool
Initialize
(
const
config_param
&
param
,
Error
&
error_r
)
{
return
ao_base_init
(
&
base
,
&
openal_output_plugin
,
param
,
error_r
);
return
ao_base_init
(
&
base
,
param
,
error_r
);
}
};
...
...
src/output/plugins/OssOutputPlugin.cxx
View file @
bf803e24
...
...
@@ -78,11 +78,12 @@ struct OssOutput {
*/
int
oss_format
;
OssOutput
()
:
fd
(
-
1
),
device
(
nullptr
)
{}
OssOutput
()
:
base
(
oss_output_plugin
),
fd
(
-
1
),
device
(
nullptr
)
{}
bool
Initialize
(
const
config_param
&
param
,
Error
&
error_r
)
{
return
ao_base_init
(
&
base
,
&
oss_output_plugin
,
param
,
error_r
);
return
ao_base_init
(
&
base
,
param
,
error_r
);
}
};
...
...
src/output/plugins/PipeOutputPlugin.cxx
View file @
bf803e24
...
...
@@ -34,9 +34,11 @@ struct PipeOutput {
std
::
string
cmd
;
FILE
*
fh
;
PipeOutput
()
:
base
(
pipe_output_plugin
)
{}
bool
Initialize
(
const
config_param
&
param
,
Error
&
error
)
{
return
ao_base_init
(
&
base
,
&
pipe_output_plugin
,
param
,
error
);
return
ao_base_init
(
&
base
,
param
,
error
);
}
bool
Configure
(
const
config_param
&
param
,
Error
&
error
);
...
...
src/output/plugins/PulseOutputPlugin.cxx
View file @
bf803e24
...
...
@@ -55,6 +55,9 @@ struct PulseOutput {
struct
pa_stream
*
stream
;
size_t
writable
;
PulseOutput
()
:
base
(
pulse_output_plugin
)
{}
};
static
constexpr
Domain
pulse_output_domain
(
"pulse_output"
);
...
...
@@ -331,7 +334,7 @@ pulse_output_init(const config_param ¶m, Error &error)
g_setenv
(
"PULSE_PROP_media.role"
,
"music"
,
true
);
po
=
new
PulseOutput
();
if
(
!
ao_base_init
(
&
po
->
base
,
&
pulse_output_plugin
,
param
,
error
))
{
if
(
!
ao_base_init
(
&
po
->
base
,
param
,
error
))
{
delete
po
;
return
nullptr
;
}
...
...
src/output/plugins/RecorderOutputPlugin.cxx
View file @
bf803e24
...
...
@@ -57,9 +57,11 @@ struct RecorderOutput {
*/
char
buffer
[
32768
];
RecorderOutput
()
:
base
(
recorder_output_plugin
)
{}
bool
Initialize
(
const
config_param
&
param
,
Error
&
error_r
)
{
return
ao_base_init
(
&
base
,
&
recorder_output_plugin
,
param
,
error_r
);
return
ao_base_init
(
&
base
,
param
,
error_r
);
}
bool
Configure
(
const
config_param
&
param
,
Error
&
error
);
...
...
src/output/plugins/RoarOutputPlugin.cxx
View file @
bf803e24
...
...
@@ -50,15 +50,15 @@ class RoarOutput {
public
:
RoarOutput
()
:
err
(
ROAR_ERROR_NONE
)
{}
:
base
(
roar_output_plugin
),
err
(
ROAR_ERROR_NONE
)
{}
operator
AudioOutput
*
()
{
return
&
base
;
}
bool
Initialize
(
const
config_param
&
param
,
Error
&
error
)
{
return
ao_base_init
(
&
base
,
&
roar_output_plugin
,
param
,
error
);
return
ao_base_init
(
&
base
,
param
,
error
);
}
void
Configure
(
const
config_param
&
param
);
...
...
src/output/plugins/ShoutOutputPlugin.cxx
View file @
bf803e24
...
...
@@ -54,7 +54,8 @@ struct ShoutOutput final {
uint8_t
buffer
[
32768
];
ShoutOutput
()
:
shout_conn
(
shout_new
()),
:
base
(
shout_output_plugin
),
shout_conn
(
shout_new
()),
shout_meta
(
shout_metadata_new
()),
quality
(
-
2.0
),
bitrate
(
-
1
),
...
...
@@ -68,8 +69,7 @@ struct ShoutOutput final {
}
bool
Initialize
(
const
config_param
&
param
,
Error
&
error
)
{
return
ao_base_init
(
&
base
,
&
shout_output_plugin
,
param
,
error
);
return
ao_base_init
(
&
base
,
param
,
error
);
}
bool
Configure
(
const
config_param
&
param
,
Error
&
error
);
...
...
src/output/plugins/SolarisOutputPlugin.cxx
View file @
bf803e24
...
...
@@ -57,9 +57,11 @@ struct SolarisOutput {
int
fd
;
SolarisOutput
()
:
base
(
solaris_output_plugin
)
{}
bool
Initialize
(
const
config_param
&
param
,
Error
&
error_r
)
{
return
ao_base_init
(
&
base
,
&
solaris_output_plugin
,
param
,
error_r
);
return
ao_base_init
(
&
base
,
param
,
error_r
);
}
};
...
...
src/output/plugins/WinmmOutputPlugin.cxx
View file @
bf803e24
...
...
@@ -51,6 +51,9 @@ struct WinmmOutput {
WinmmBuffer
buffers
[
8
];
unsigned
next_buffer
;
WinmmBuffer
()
:
base
(
winmm_output_plugin
)
{}
};
static
constexpr
Domain
winmm_output_domain
(
"winmm_output"
);
...
...
@@ -112,7 +115,7 @@ static AudioOutput *
winmm_output_init
(
const
config_param
&
param
,
Error
&
error
)
{
WinmmOutput
*
wo
=
new
WinmmOutput
();
if
(
!
ao_base_init
(
&
wo
->
base
,
&
winmm_output_plugin
,
param
,
error
))
{
if
(
!
ao_base_init
(
&
wo
->
base
,
param
,
error
))
{
delete
wo
;
return
nullptr
;
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment