aboutsummaryrefslogtreecommitdiffstats
path: root/src/input/plugins/MmsInputPlugin.cxx (unfollow)
Commit message (Collapse)AuthorFilesLines
2014-05-11InputStream: remove attribute "plugin"Max Kellermann1-1/+1
2014-05-11InputStream: make various methods abstractMax Kellermann1-9/+3
Replace InputPlugin attributes.
2014-05-11InputStream: add virtual destructorMax Kellermann1-1/+0
Replaces the method Close().
2014-05-11input/plugins: make InputStream the base classMax Kellermann1-4/+4
Prepare for adding virtual methods.
2014-03-16input/mms: move blocking I/O to threadMax Kellermann1-60/+50
2014-01-24Input*: move to input/Max Kellermann1-2/+2
2014-01-13copyright year 2014Max Kellermann1-1/+1
2013-11-28Util/StringUtil: add StringStartsWith()Max Kellermann1-5/+5
Replaces GLib's g_str_has_prefix().
2013-11-28include cleanup using iwyuMax Kellermann1-3/+0
2013-10-30*: update copyright year to 2013Max Kellermann1-1/+1
2013-10-23input_stream: rename struct to InputStreamMax Kellermann1-5/+5
2013-10-23InputInternal: remove obsolete libraryMax Kellermann1-1/+0
2013-10-17input_plugin: rename struct to "InputPlugin"Max Kellermann1-1/+1
2013-10-15input/*: don't allocate attribute "mime"Max Kellermann1-1/+1
This was a memory leak, because "mime" was a std::string which created another copy and discarded the allocated buffer.
2013-10-02Log: new logging library APIMax Kellermann1-3/+0
Prepare to migrate away from GLib. Currently, we're still using GLib as a backend.
2013-09-04util/Error: new error passing libraryMax Kellermann1-13/+8
Replaces GLib's GError.
2013-09-03input/{mms,despotify}: remove "seek" implementationMax Kellermann1-9/+1
Omitting it has the same effect as returning false unconditionally.
2013-08-04*: use gcc.h macros instead of GLibMax Kellermann1-3/+3
2013-01-28InputStream: add constructor/destructorMax Kellermann1-4/+2
Eliminate input_stream_init() and input_stream_deinit().
2013-01-27DecoderControl, InputStream: use Mutex/Cond instead of GMutex/GCondMax Kellermann1-2/+2
2013-01-26input_stream: forward-declare the structMax Kellermann1-0/+1
Hide the definition from C code, to prepare the transition to C++.
2013-01-25input_{internal,plugin}: convert to C++Max Kellermann1-2/+2
2013-01-21input/file,mms: convert to C++Max Kellermann1-34/+42
2011-09-16input_stream: non-blocking I/OMax Kellermann1-2/+5
Add GMutex, GCond attributes which will be used by callers to conditionally wait on the stream. Remove the (now-useless) plugin method buffer(), wait on GCond instead. Lock the input_stream before each method call. Do the same with the playlist plugins.
2011-09-14input_stream: move input_stream_init(), _deinit() to _internal.cMax Kellermann1-0/+1
2011-01-29copyright year 2011Max Kellermann1-1/+1
2010-05-18input/mms: removed empty method buffer()Max Kellermann1-8/+0
input_stream_buffer() has a check for "buffer==NULL", so we don't need an explicit empty implementation.
2010-05-18input/mms: initialize the "eof" attributeMax Kellermann1-0/+2
2010-05-18input/mms: fix memory leak in error handlerMax Kellermann1-0/+1
2010-01-18input_stream: added attribute "uri"Max Kellermann1-1/+1
2010-01-18input_stream: added function input_stream_deinit()Max Kellermann1-0/+1
All close() implementations must call this method.
2010-01-01input_stream: return allocated input_stream objectsMax Kellermann1-12/+15
Major API redesign: don't let the caller allocate the input_stream object. Let each input plugin allocate its own (derived/extended) input_stream pointer. The "data" attribute can now be removed, and all input plugins simply cast the input_stream pointer to their own structure (with an "struct input_stream base" as the first attribute).
2009-12-31Update copyright notices.Avuton Olrich1-1/+1
2009-12-15input_stream: return errors with GErrorMax Kellermann1-7/+17
2009-11-12include config.h in all sourcesMax Kellermann1-0/+1
After we've been hit by Large File Support problems several times in the past week (which only occur on 32 bit platforms, which I don't have), this is yet another attempt to fix the issue.
2009-10-11input_stream: use "goffset" instead of "off_t"Max Kellermann1-1/+1
The "off_t" type may change when you enable or disable large file support on 32 bit platforms. This caused severe ABI problems within MPD when we enabled LFS for the first time: two sources included config.h and sys/types.h in different order, and had different off_t sizes - leading to memory corruption because of ABI incompatibility. This patch attempts to get rid of all public "off_t" uses: it removes "off_t" from the input_stream ABI/API, and switches to GLib's 64 bit "goffset" type. This may hurt 32 bit embedded platforms a tiny bit, but that's not even measurable.
2009-09-20input/mms: fix G_LOG_DOMAIN valueSerge Ziryukin1-1/+1
2009-03-13all: Update copyright header.Avuton Olrich1-3/+4
This updates the copyright header to all be the same, which is pretty much an update of where to mail request for a copy of the GPL and the years of the MPD project. This also puts all committers under 'The Music Player Project' umbrella. These entries should go individually in the AUTHORS file, for consistancy.
2009-03-02input: pass config_param to input_plugin.init()Max Kellermann1-0/+1
Allow input plugins to configure with an "input" block in mpd.conf. Also allow the user to disable a plugin completely.
2009-03-02input: moved plugins to ./src/input/Max Kellermann1-1/+1
Create a sub directory for input plugins.
2009-03-02input_stream: moved struct input_plugin to input_plugin.hMax Kellermann1-1/+1
Start to separate private from public input_stream API.
2009-02-19mms: fix assertion in input_stream_openPeter Colberg1-0/+1
Hi, upon trying to play an MMS stream added to the play list, I got this: mpd: /tmp/mpd/./src/input_stream.c:85: input_stream_open: Assertion `is->plugin->open == ((void *)0) || is->plugin == plugin' failed. With the following patch applied, it works perfectly. Thanks for having implemented MMS support :-). Best regards, Peter
2009-01-29mms: declare GLib log domainMax Kellermann1-0/+3
2009-01-29added support for the MMS protocolMax Kellermann1-0/+120
This patch implements the MMS protocol, by using libmms. It is quite experimental: it does not support seeking yet, and it is currently using synchronous I/O, which causes MPD to hang while waiting for the server.