*****************************************************************************
* Copyright (C) 2003-2004 Commonwealth Scientific and Industrial Research
* Organisation (CSIRO) Australia
- * Copyright (C) 2004 VideoLAN (Centrale Réseaux) and its contributors
+ * Copyright (C) 2004 the VideoLAN team
*
* $Id$
*
* 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
*
* 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., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
*****************************************************************************/
/*****************************************************************************
* Preamble
*****************************************************************************/
-#include <stdlib.h> /* malloc(), free() */
-#include <string.h>
-
#include <vlc/vlc.h>
+#include <stdio.h>
+
#ifdef HAVE_UNISTD_H
# include <unistd.h>
#endif
-#include <vlc/decoder.h>
-#include <vlc/input.h>
-#include <vlc/intf.h>
-#include <vlc/vout.h>
-
-#include <osd.h>
+#include <vlc_codec.h>
+#include <vlc_input.h>
+#include <vlc_interface.h>
+#include <vlc_vout.h>
+#include <vlc_playlist.h>
+#include <vlc_osd.h>
#include "vlc_keys.h"
p_intf->pf_run = RunIntf;
- var_AddCallback( p_intf->p_vlc, "key-pressed", KeyEvent, p_intf );
+ var_AddCallback( p_intf->p_libvlc, "key-pressed", KeyEvent, p_intf );
/* we also need to add the callback for "mouse-clicked", but do that later
* when we've found a p_vout */
- var_Create( p_intf->p_vlc, "browse-go-back", VLC_VAR_VOID );
- var_AddCallback( p_intf->p_vlc, "browse-go-back",
+ var_Create( p_intf->p_libvlc, "browse-go-back", VLC_VAR_VOID );
+ var_AddCallback( p_intf->p_libvlc, "browse-go-back",
GoBackCallback, p_intf );
- var_Create( p_intf->p_vlc, "browse-go-forward", VLC_VAR_VOID );
- var_AddCallback( p_intf->p_vlc, "browse-go-forward",
+ var_Create( p_intf->p_libvlc, "browse-go-forward", VLC_VAR_VOID );
+ var_AddCallback( p_intf->p_libvlc, "browse-go-forward",
GoForwardCallback, p_intf );
- var_Create( p_intf->p_vlc, "browse-follow-anchor", VLC_VAR_VOID );
- var_AddCallback( p_intf->p_vlc, "browse-follow-anchor",
+ var_Create( p_intf->p_libvlc, "browse-follow-anchor", VLC_VAR_VOID );
+ var_AddCallback( p_intf->p_libvlc, "browse-follow-anchor",
FollowAnchorCallback, p_intf );
return( 0 );
vlc_object_release( p_vout );
}
- var_DelCallback( p_intf->p_vlc, "key-pressed", KeyEvent, p_intf );
+ var_DelCallback( p_intf->p_libvlc, "key-pressed", KeyEvent, p_intf );
vlc_object_release( p_intf->p_sys->p_cmml_decoder );
/* Main loop */
while( !p_intf->b_die )
{
-
+
/* find a video output if we currently don't have one */
if( p_vout == NULL )
{
{
vlc_value_t val;
int i, i_action = -1;
- struct hotkey *p_hotkeys = p_intf->p_vlc->p_hotkeys;
+ struct hotkey *p_hotkeys = p_intf->p_libvlc->p_hotkeys;
/* Find action triggered by hotkey (if any) */
- var_Get( p_intf->p_vlc, "key-pressed", &val );
+ var_Get( p_intf->p_libvlc, "key-pressed", &val );
/* Acknowledge that we've handled the b_key_pressed event */
p_intf->p_sys->b_key_pressed = VLC_FALSE;
if( p_vout != NULL )
{
/* don't display anchor if main interface can display it */
- p_primary_intf = vlc_object_find( p_intf->p_vlc, VLC_OBJECT_INTF,
+ p_primary_intf = vlc_object_find( p_intf->p_libvlc, VLC_OBJECT_INTF,
FIND_CHILD );
if( p_primary_intf )
vlc_mutex_lock( &p_intf->change_lock );
p_intf->p_sys->b_key_pressed = VLC_TRUE;
-
+
vlc_mutex_unlock( &p_intf->change_lock );
return VLC_SUCCESS;
mtime_t i_seconds;
vlc_value_t time;
- p_playlist = (playlist_t *) vlc_object_find( p_intf,
+ p_playlist = (playlist_t *) vlc_object_find( p_intf,
VLC_OBJECT_PLAYLIST, FIND_ANYWHERE );
if ( !p_playlist )
{
}
/* Get new URL */
- p_current_item = p_playlist->pp_items[p_playlist->i_index];
+ p_current_item = p_playlist->status.p_item;
+ char *psz_uri = input_item_GetURI( p_current_item->p_input );
#ifdef CMML_INTF_DEBUG
- msg_Dbg( p_intf, "Current playlist item URL is \"%s\"",
- p_current_item->input.psz_uri );
+ msg_Dbg( p_intf, "Current playlist item URL is \"%s\"", psz_uri );
#endif
- psz_uri_to_load = XURL_Concat( p_current_item->input.psz_uri,
- psz_url );
+ psz_uri_to_load = XURL_Concat( psz_uri, psz_url );
+ free( psz_uri );
#ifdef CMML_INTF_DEBUG
msg_Dbg( p_intf, "URL to load is \"%s\"", psz_uri_to_load );
msg_Dbg( p_intf, "calling browser_Open with \"%s\"", psz_url );
#endif
(void) browser_Open( psz_url );
- playlist_Control( p_playlist, PLAYLIST_PAUSE, 0 );
+ playlist_Control( p_playlist, PLAYLIST_PAUSE, VLC_TRUE, 0 );
}
free( psz_uri_to_load );
char *psz_return_value = NULL;
char *psz_seconds = NULL;
int i_seconds;
-
- psz_url = XURL_GetWithoutFragment( p_current_item->input->psz_uri );
+
+ char *psz_uri = input_item_GetURI( p_current_item->p_input );
+ psz_url = XURL_GetWithoutFragment( psz_uri );
+ free( psz_uri );
/* Get current time as a string */
if( XURL_IsFileURL( psz_url ) == VLC_TRUE )
p = GetTimedURIFragmentForTime; /* unused */
p = GetCurrentTimeInSeconds; /* unused */
- return strdup( p_current_item->input.psz_uri );
+ return input_item_GetURI( p_current_item->p_input );
#endif
}
var_Get( p_input, "time", &time );
i_seconds = time.i_time / 1000000;
-
return i_seconds;
}
char *psz_time;
asprintf( &psz_time, "%d", seconds );
-
return psz_time;
}
#endif
/* Find the playlist */
- p_playlist = (playlist_t *) vlc_object_find( p_intf,
+ p_playlist = (playlist_t *) vlc_object_find( p_intf,
VLC_OBJECT_PLAYLIST, FIND_ANYWHERE );
if ( !p_playlist )
{
return;
}
- p_current_item = p_playlist->pp_items[p_playlist->i_index];
+ p_current_item = p_playlist->status.p_item;
/* Save the currently-playing media in a new history item */
psz_timed_url = GetTimedURLFromPlaylistItem( p_intf, p_current_item );
#endif
/* Find the playlist */
- p_playlist = (playlist_t *) vlc_object_find( p_intf,
+ p_playlist = (playlist_t *) vlc_object_find( p_intf,
VLC_OBJECT_PLAYLIST, FIND_ANYWHERE );
if ( !p_playlist )
{
vlc_object_release( p_playlist );
return;
}
- p_current_item = p_playlist->pp_items[p_playlist->i_index];
- p_new_history_item->psz_uri = GetTimedURLFromPlaylistItem( p_intf,
+ p_current_item = p_playlist->status.p_item;
+ p_new_history_item->psz_uri = GetTimedURLFromPlaylistItem( p_intf,
p_current_item );
p_new_history_item->psz_name = p_new_history_item->psz_uri;
{
playlist_Stop( p_playlist );
(void) playlist_Add( p_playlist, psz_uri, psz_uri,
- PLAYLIST_REPLACE, p_playlist->i_index );
- playlist_Goto( p_playlist, p_playlist->i_index );
+ PLAYLIST_INSERT /* FIXME: used to be PLAYLIST_REPLACE */, PLAYLIST_END|PLAYLIST_GO, VLC_TRUE /* FIXME: p_playlist->status.i_index */,
+ VLC_FALSE);
}
/****************************************************************************
if( p_vout )
{
- text_style_t *p_style = NULL;
-
- text_style_t blue_with_underline = default_text_style;
- blue_with_underline.b_underline = VLC_TRUE;
- blue_with_underline.i_color = 0x22ff22;
-
if( psz_anchor_url )
{
/* Should display subtitle underlined and in blue, but it looks
* like VLC doesn't implement any text styles yet. D'oh! */
- p_style = &blue_with_underline;
+ // p_style = &blue_with_underline;
}
* coordinates. Need to look at the subpicture display system to
* work out why. */
if ( vout_ShowTextAbsolute( p_vout, DEFAULT_CHAN,
- psz_anchor_description, p_style, OSD_ALIGN_BOTTOM,
+ psz_anchor_description, NULL, OSD_ALIGN_BOTTOM,
i_margin_h, i_margin_v, i_now, 0 ) == VLC_SUCCESS )
{
/* Displayed successfully */
{
return VLC_EGENERIC;
}
-
}
else
{