diff options
author | Rafael Antognolli <antognolli@gmail.com> | 2011-09-05 16:07:00 +0000 |
---|---|---|
committer | Rafael Antognolli <antognolli@gmail.com> | 2011-09-05 16:07:00 +0000 |
commit | ee8f09c0f75dda77d501c200c8c5d780075f5ea4 (patch) | |
tree | b3f5d428ecf6ef190f301482e6e9c67061bf5a1d /src | |
parent | 2ee0ad02c416ade16da898a7ad26e9f1b32495b7 (diff) | |
download | emotion_generic_players-ee8f09c0f75dda77d501c200c8c5d780075f5ea4.tar.gz |
emotion/generic - Don't start opening new file when another one is being open.
SVN revision: 63203
Diffstat (limited to 'src')
-rw-r--r-- | src/vlc/emotion_generic_vlc.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/vlc/emotion_generic_vlc.c b/src/vlc/emotion_generic_vlc.c index 425aeb4..a297931 100644 --- a/src/vlc/emotion_generic_vlc.c +++ b/src/vlc/emotion_generic_vlc.c @@ -373,6 +373,13 @@ _event_cb(const struct libvlc_event_t *ev, void *data) static void _file_set(struct _App *app) { + if (app->opening) + { + libvlc_media_release(app->m); + libvlc_media_player_release(app->mp); + free(app->filename); + } + _em_str_read(app->em_read, &app->filename); app->m = libvlc_media_new_path(app->libvlc, app->filename); @@ -514,6 +521,9 @@ static void _file_close(struct _App *app) { app->playing = 0; + if (app->opening) + goto release_resources; + if (libvlc_media_player_get_state(app->mp) != libvlc_Playing) { _send_file_closed(app); @@ -521,6 +531,8 @@ _file_close(struct _App *app) } app->closing = 1; + +release_resources: libvlc_media_player_stop(app->mp); if (app->filename) free(app->filename); |