Commit 55f3a9f1 authored by Rafaël Carré's avatar Rafaël Carré

Interaction are controlled by a dedicated thread

This is not the playlist's work at all
Fix #1520
parent f0c27947
......@@ -20,7 +20,6 @@ set( SOURCES_libvlc_common
libvlc-common.c
libvlc.h
libvlc-module.c
interface/interface.h
interface/interface.c
interface/intf_eject.c
interface/interaction.c
......
......@@ -67,6 +67,7 @@
#define VLC_OBJECT_STATS (-29)
#define VLC_OBJECT_HTTPD_HOST (-30)
#define VLC_OBJECT_META_ENGINE (-31)
#define VLC_OBJECT_INTERACTION (-32)
#define VLC_OBJECT_GENERIC (-666)
......
......@@ -237,7 +237,6 @@ struct playlist_t
} request;
// Playlist-unrelated fields
interaction_t *p_interaction; /**< Interaction manager */
input_thread_t *p_stats_computer; /**< Input thread computing stats */
global_stats_t *p_stats; /**< Global statistics */
};
......
......@@ -235,7 +235,6 @@ SOURCES_libvlc_common = \
libvlc-common.c \
libvlc.h \
libvlc-module.c \
interface/interface.h \
interface/interface.c \
interface/intf_eject.c \
interface/interaction.c \
......
This diff is collapsed.
/*****************************************************************************
* interface.h: Internal interface prototypes and structures
*****************************************************************************
* Copyright (C) 1998-2006 the VideoLAN team
* $Id$
*
* Authors: Vincent Seguin <seguin@via.ecp.fr>
* Clément Stenac <zorglub@videolan.org>
* Felix Kühne <fkuehne@videolan.org>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
*****************************************************************************/
#if defined(__PLUGIN__) || defined(__BUILTIN__) || !defined(__LIBVLC__)
# error This header file can only be included from LibVLC.
#endif
#ifndef __LIBVLC_INTERFACE_H
# define __LIBVLC_INTERFACE_H 1
/**********************************************************************
* Interaction
**********************************************************************/
void intf_InteractionManage( playlist_t *);
void intf_InteractionDestroy( interaction_t *);
#endif
......@@ -336,6 +336,10 @@ void * __vlc_object_create( vlc_object_t *p_this, int i_type )
i_size = sizeof( osd_menu_t );
psz_type = "osd menu";
break;
case VLC_OBJECT_INTERACTION:
i_size = sizeof( interaction_t );
psz_type = "interaction";
break;
default:
i_size = i_type > (int)sizeof(vlc_object_t)
? i_type : (int)sizeof(vlc_object_t);
......
......@@ -151,11 +151,6 @@ playlist_t * playlist_Create( vlc_object_t *p_parent )
p_playlist->i_order = ORDER_NORMAL;
/* Interaction
* Init the interaction here, as playlist_MLLoad could trigger
* interaction init */
p_playlist->p_interaction = NULL;
b_save = p_playlist->b_auto_preparse;
p_playlist->b_auto_preparse = VLC_FALSE;
playlist_MLLoad( p_playlist );
......
/*****************************************************************************
* playlist.c : Playlist management functions
* thread.c : Playlist management functions
*****************************************************************************
* Copyright (C) 1999-2004 the VideoLAN team
* Copyright © 1999-2008 the VideoLAN team
* $Id$
*
* Authors: Samuel Hocevar <sam@zoy.org>
......@@ -31,7 +31,6 @@
#include <vlc_interface.h>
#include <vlc_playlist.h>
#include "playlist_internal.h"
#include "interface/interface.h"
/*****************************************************************************
* Local prototypes
......@@ -40,8 +39,6 @@ static void RunControlThread ( playlist_t * );
static void RunPreparse( playlist_preparse_t * );
static void RunFetcher( playlist_fetcher_t * );
static void DestroyInteraction( playlist_t * );
/*****************************************************************************
* Main functions for the global thread
*****************************************************************************/
......@@ -49,7 +46,6 @@ static void DestroyInteraction( playlist_t * );
/**
* Create the main playlist thread
* Additionally to the playlist, this thread controls :
* - Interaction
* - Statistics
* - VLM
* \param p_parent
......@@ -175,8 +171,6 @@ int playlist_ThreadDestroy( playlist_t * p_playlist )
if( p_playlist->p_stats )
free( p_playlist->p_stats );
DestroyInteraction( p_playlist );
playlist_Destroy( p_playlist );
return VLC_SUCCESS;
......@@ -195,9 +189,6 @@ static void RunControlThread ( playlist_t *p_playlist )
{
i_loops++;
if( p_playlist->p_interaction )
intf_InteractionManage( p_playlist );
playlist_MainLoop( p_playlist );
if( p_playlist->b_cant_sleep )
{
......@@ -230,15 +221,3 @@ static void RunFetcher( playlist_fetcher_t *p_obj )
vlc_thread_ready( p_obj );
playlist_FetcherLoop( p_obj );
}
/*****************************************************************************
* Interaction functions
*****************************************************************************/
static void DestroyInteraction( playlist_t *p_playlist )
{
if( p_playlist->p_interaction )
{
intf_InteractionDestroy( p_playlist->p_interaction );
p_playlist->p_interaction = NULL;
}
}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment