Commit Graph

40 Commits

Author SHA1 Message Date
J. Alexander Treuman
3fedc4d806 audioOutputs/audioOutput_shout: adding timers back
The shout plugin will now feign playback until the connect timeout is hit,
preventing connection attempts from blocking playback on local outputs.
Note that this patch is very different from remiss' original one.

git-svn-id: https://svn.musicpd.org/mpd/trunk@6738 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-08-11 21:36:23 +00:00
J. Alexander Treuman
8de17dbed0 Use <= when comparing (current time - start time) to a timeout. This way
if the clock ticks right after we get the start time and the timeout is
only one second, we'll still wait a full second instead of returning
immediately.

git-svn-id: https://svn.musicpd.org/mpd/trunk@6557 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-06-12 18:33:26 +00:00
J. Alexander Treuman
6f2be47270 Make the shout timeout configurable. The default is still 2 seconds.
git-svn-id: https://svn.musicpd.org/mpd/trunk@6556 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-06-12 18:28:57 +00:00
J. Alexander Treuman
3c5cecb828 Redoing remiss's shout patch. This time, just block on open() instead of
pretending to play while we wait for the connection to timeout.  This
removes the need for timers, and thus removes the now unnecessary
timer_get_runtime_* function(s) from the timer code.

The changes made compared to the pre-patch shout plugin are:
* Block while connecting, timing out after 2 seconds.
* Close the device, and not just the connection, if play returns -1.
* Remove sd->last_err (it's always assigned before use).
* Some minor cleanups.

git-svn-id: https://svn.musicpd.org/mpd/trunk@6555 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-06-12 17:58:17 +00:00
Roger Bystrøm
d50fc3849a This should resolve some of the timing issues experienced after switching from blocking to non-blocking shout api
* Wait ten seconds before declearing the shout server unreachable
* Fix a state where it would never attempt to connect if it had previously failed

It isn't perfect yet, but I'd like some testing on it from other setups


git-svn-id: https://svn.musicpd.org/mpd/trunk@6523 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-06-09 15:51:20 +00:00
J. Alexander Treuman
93e68adc79 After changing ERROR();exit() to FATAL(), gcc incorrectly detects some
uninitialized variables and non-returning functions that return.  Let's
tell it to stfu.

git-svn-id: https://svn.musicpd.org/mpd/trunk@6277 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-05-26 18:20:53 +00:00
J. Alexander Treuman
bba444524e Changing all calls to ERROR() followed by exit(EXIT_FAILURE) with a single
call to FATAL().

git-svn-id: https://svn.musicpd.org/mpd/trunk@6276 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-05-26 18:15:54 +00:00
Avuton Olrich
a061da8fb5 The massive copyright update
git-svn-id: https://svn.musicpd.org/mpd/trunk@5834 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-04-05 03:22:33 +00:00
Eric Wong
b443363aa6 Don't initialize globals to zero (or NULL)
Some compilers and linkers aren't smart enough to optimize this,
as global variables are implictly initialized to zero.  As a
result, binaries are a bit smaller as more goes in the .bss and
less in the text section.

git-svn-id: https://svn.musicpd.org/mpd/trunk@5254 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-01-14 03:07:53 +00:00
Warren Dukes
a8a932a215 remove some unneccesary includes from the audioOutput's
git-svn-id: https://svn.musicpd.org/mpd/trunk@4913 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-10-18 03:03:28 +00:00
Eric Wong
5a3f501fc8 audioOutput_shout: use shout_set_nonblocking
This patch should continue to allow mpd to play as well as
possible to icecast servers while avoiding stalls on local
devices.  This has eliminated ALSA underrun errors
for me while streaming to a remote host while the network
connection was bad.

Of course, this makes opening a connection non-blocking, too,
so myShout_openShoutConn is a bit more complex.

git-svn-id: https://svn.musicpd.org/mpd/trunk@4898 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-10-11 00:18:43 +00:00
J. Alexander Treuman
f6e96edcc9 Allow an ogg quality of -1 to be specified.
git-svn-id: https://svn.musicpd.org/mpd/trunk@4893 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-10-10 20:00:33 +00:00
Eric Wong
90847fc881 Replace strdup and {c,re,m}alloc with x* variants to check for OOM errors
I'm checking for zero-size allocations and assert()-ing them,
so we can more easily get backtraces and debug problems, but we'll
also allow -DNDEBUG people to live on the edge if they wish.

We do not rely on errno when checking for OOM errors because
some implementations of malloc do not set it, and malloc
is commonly overridden by userspace wrappers.

I've spent some time looking through the source and didn't find any
obvious places where we would explicitly allocate 0 bytes, so we
shouldn't trip any of those assertions.

We also avoid allocating zero bytes because C libraries don't
handle this consistently (some return NULL, some not); and it's
dangerous either way.

git-svn-id: https://svn.musicpd.org/mpd/trunk@4690 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-08-26 06:25:57 +00:00
Avuton Olrich
ca7fdaa929 Spelling & Grammar
git-svn-id: https://svn.musicpd.org/mpd/trunk@4612 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-08-11 21:50:56 +00:00
Avuton Olrich
29a25b9933 Add mpd-indent.sh
Indent the entire tree, hopefully we can keep
it indented.

git-svn-id: https://svn.musicpd.org/mpd/trunk@4410 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-07-20 16:02:40 +00:00
Eric Wong
a234780aab sparse: ANSI-fy function declarations
These are just warnings from sparse, but it makes the output
easier to read.  I ran this through a quick perl script, but
of course verified the output by looking at the diff and making
sure the thing still compiles.

here's the quick perl script I wrote to generate this patch:
----------- 8< -----------
use Tie::File;
defined(my $pid = open my $fh, '-|') or die $!;
if (!$pid) {
open STDERR, '>&STDOUT' or die $!;
exec 'sparse', @ARGV or die $!;
}
my $na = 'warning: non-ANSI function declaration of function';
while (<$fh>) {
print STDERR $_;
if (/^(.+?\.[ch]):(\d+):(\d+): $na '(\w+)'/o) {
my ($f, $l, $pos, $func) = ($1, $2, $3, $4);
$l--;
tie my @x, 'Tie::File', $f or die "$!: $f";
print '-', $x[$l], "\n";
$x[$l] =~ s/\b($func\s*)\(\s*\)/$1(void)/;
print '+', $x[$l], "\n";
untie @x;
}
}

git-svn-id: https://svn.musicpd.org/mpd/trunk@4378 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-07-17 00:15:34 +00:00
J. Alexander Treuman
2fa7125cce Change shank's email address
git-svn-id: https://svn.musicpd.org/mpd/trunk@4333 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-07-14 19:37:45 +00:00
J. Alexander Treuman
ba9a2c349f Use a macro to declare disabled audio output plugins
git-svn-id: https://svn.musicpd.org/mpd/trunk@4321 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-07-14 17:39:14 +00:00
Avuton Olrich
a37348a74f Huge header update, update the copyright and add
the GPL header where necessary

git-svn-id: https://svn.musicpd.org/mpd/trunk@4317 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-07-13 19:20:34 +00:00
Avuton Olrich
d8d6b949c6 Remove unnecessary include, has always been pulled
in by vorbisenc.h

git-svn-id: https://svn.musicpd.org/mpd/trunk@4298 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-07-05 20:07:35 +00:00
Eric Wong
867ca276ad Hopefully the last of the spelling fixes :>
git-svn-id: https://svn.musicpd.org/mpd/trunk@3923 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-03-16 06:41:41 +00:00
Eric Wong
f8597ccf25 remove C++ style comments
git-svn-id: https://svn.musicpd.org/mpd/trunk@3689 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2005-11-19 10:52:47 +00:00
Warren Dukes
5a2f599dba a little more error output
git-svn-id: https://svn.musicpd.org/mpd/trunk@3078 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2005-03-13 23:59:04 +00:00
Warren Dukes
8583a3bc4e if no audioOutput specified, we no attempt to detect if there exists a usable oss or alsa device
git-svn-id: https://svn.musicpd.org/mpd/trunk@3057 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2005-03-12 03:10:09 +00:00
Warren Dukes
4b016cafa1 wee bit of code cleanup
git-svn-id: https://svn.musicpd.org/mpd/trunk@3021 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2005-03-05 21:09:32 +00:00
Warren Dukes
c8f044572e fix some compilation warning
git-svn-id: https://svn.musicpd.org/mpd/trunk@3013 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2005-03-05 14:26:37 +00:00
Warren Dukes
92653f8474 implemented dropping of current buffered audio, works for oss, but there seems
to be a "blip" for alsa devices, needs more work

git-svn-id: https://svn.musicpd.org/mpd/trunk@3011 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2005-03-05 14:01:13 +00:00
Warren Dukes
1fd8d9a790 don't need to pass audioFormat to openDeviceFunc
git-svn-id: https://svn.musicpd.org/mpd/trunk@2708 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-11-19 15:09:01 +00:00
Warren Dukes
c5d27d8eaa merge changes from metadata-rewrite branch
git-svn-id: https://svn.musicpd.org/mpd/trunk@2589 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-11-10 21:58:27 +00:00
Warren Dukes
902cfe2523 add "genre" and "description" to shout config parameters
git-svn-id: https://svn.musicpd.org/mpd/trunk@2557 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-11-09 13:04:20 +00:00
Warren Dukes
c2a2383090 be sure to flush the metadata on song change
git-svn-id: https://svn.musicpd.org/mpd/trunk@2556 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-11-09 03:58:12 +00:00
Warren Dukes
fb7de941c3 don't set granulepos, that's pad, mmmkay?
git-svn-id: https://svn.musicpd.org/mpd/trunk@2555 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-11-09 03:10:14 +00:00
Warren Dukes
c3eabe01da try one other thing to fix icecast dropping clients
git-svn-id: https://svn.musicpd.org/mpd/trunk@2554 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-11-09 00:29:09 +00:00
Warren Dukes
d06ca1dbda make default non-public
git-svn-id: https://svn.musicpd.org/mpd/trunk@2506 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-11-04 04:03:08 +00:00
Warren Dukes
e9f65c9b98 shout config: make "user" optional and default to "source", also add optional "public"
git-svn-id: https://svn.musicpd.org/mpd/trunk@2505 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-11-04 04:01:04 +00:00
Warren Dukes
44eb26c16f new commands: enalbe_device, and disable_device, (maybe these commands should be toggles instead of two seperate commands?)
also, on close device, close the shout connection

git-svn-id: https://svn.musicpd.org/mpd/trunk@2485 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-11-02 22:13:58 +00:00
Warren Dukes
ee5d5d6330 abstract out audioFormat conversion from shout plugin to the audioOutput layer,
now format can be specified for each different audioOutput device

git-svn-id: https://svn.musicpd.org/mpd/trunk@2474 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-11-02 17:05:27 +00:00
Warren Dukes
0298239770 print more info out in error messages for shout
git-svn-id: https://svn.musicpd.org/mpd/trunk@2473 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-11-02 13:45:38 +00:00
Warren Dukes
2c9b50cabd only attempt to reconnect to shout server every 60 seconds
git-svn-id: https://svn.musicpd.org/mpd/trunk@2472 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-11-02 13:26:50 +00:00
Warren Dukes
82cb5e0931 move audioOutput dir to audioOutputs
git-svn-id: https://svn.musicpd.org/mpd/trunk@2471 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-11-02 12:50:53 +00:00