summaryrefslogtreecommitdiff
path: root/src/xine-engine/xine.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/xine-engine/xine.c')
-rw-r--r--src/xine-engine/xine.c21
1 files changed, 18 insertions, 3 deletions
diff --git a/src/xine-engine/xine.c b/src/xine-engine/xine.c
index 7814fdae6..d9eb2f396 100644
--- a/src/xine-engine/xine.c
+++ b/src/xine-engine/xine.c
@@ -17,7 +17,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*
- * $Id: xine.c,v 1.123 2002/05/01 19:42:57 guenter Exp $
+ * $Id: xine.c,v 1.124 2002/05/02 01:44:44 siggi Exp $
*
* top-level xine functions
*
@@ -56,15 +56,25 @@
#include "xineutils.h"
#include "compat.h"
+static char *logo_mrl= XINE_SKINDIR "/xine_logo.mpg";
+#define LOGO_DELAY 500000 /* usec */
+
void * xine_notify_stream_finished_thread (void * this_gen) {
xine_t *this = this_gen;
xine_event_t event;
xine_stop_internal (this);
- event.type = XINE_EVENT_PLAYBACK_FINISHED;
+ if (strcmp(this->cur_mrl, logo_mrl)) {
+
+ event.type = XINE_EVENT_PLAYBACK_FINISHED;
+ xine_send_event (this, &event);
- xine_send_event (this, &event);
+ xine_usec_sleep (LOGO_DELAY);
+ if (this->status == XINE_STOP) {
+ xine_play(this, logo_mrl, 0, 0);
+ }
+ }
pthread_detach( pthread_self() );
@@ -213,6 +223,7 @@ void xine_stop_internal (xine_t *this) {
printf ("xine_stop: done\n");
pthread_mutex_unlock (&this->xine_lock);
+
}
void xine_stop (xine_t *this) {
@@ -224,6 +235,9 @@ void xine_stop (xine_t *this) {
*/
this->metronom->adjust_clock(this->metronom,
this->metronom->get_current_time(this->metronom) + 30 * 90000 );
+
+ xine_play(this, logo_mrl,0,0);
+
}
@@ -612,6 +626,7 @@ xine_t *xine_init (vo_driver_t *vo,
this->osd_renderer->hide (this->osd, 300000);
}
+ xine_play(this, logo_mrl,0,0);
return this;
}