| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
| |
decode() is a trivial wrapper for decodeParent(). Merge both and
rename them to do_play().
|
|
|
|
|
|
| |
Unfortunately, we have to pass the DecoderControl pointer to these
inline functions, because the global variable "dc" may not be
available here. This will be fixed later.
|
|
|
|
|
| |
When dc->error!=NOERROR, we do not need to check state!=START.
Simplify the checks by moving the error check to the top.
|
|
|
|
|
|
| |
The decoder thread is responsible for resetting dc->command after a
command was executed. As a consequence, we can assume that
dc->command is already NONE after decoder_stop().
|
|
|
|
|
|
| |
The source "decoder_control.c" provides an API for controlling the
decoder. This replaces various direct accesses to the DecoderControl
struct.
|
| |
|
|
|
|
|
|
|
| |
playerKill() was marked as deprecated, but it seems like a good idea
to do proper cleanup in all threads (e.g. for usable valgrind
results). Introduce the command "EXIT" which makes the player thread
exit cleanly.
|
|
|
|
|
|
|
|
|
| |
playerWait() stops the player thread (twice!) and closes the output
device. It should be well enough to just send CLOSE_AUDIO, without
STOP.
This requires a tiny change to the player thread code: make it break
when CLOSE_AUDIO is sent.
|
| |
|
|
|
|
|
| |
To make the code more consistent, call quitDecode() only at the end of
decodeParent().
|
|
Move code which runs in the player thread to player_thread.c. Having
a lot of player thread code in decode.c isn't easy to understand.
|