static int BookmarkCallback( vlc_object_t *p_this, char const *psz_cmd,
vlc_value_t oldval, vlc_value_t newval, void * );
+static int RecordCallback( vlc_object_t *p_this, char const *psz_cmd,
+ vlc_value_t oldval, vlc_value_t newval,
+ void *p_data );
+
typedef struct
{
const char *psz_name;
static void InputAddCallbacks( input_thread_t *, const vlc_input_callback_t * );
static void InputDelCallbacks( input_thread_t *, const vlc_input_callback_t * );
+#ifdef CALLBACK /* For windows */
+# undef CALLBACK /* We don't care of this one here */
+#endif
/* List all callbacks added by input */
#define CALLBACK(name,cb) { name, cb }
static const vlc_input_callback_t p_input_callbacks[] =
CALLBACK( "video-es", ESCallback ),
CALLBACK( "audio-es", ESCallback ),
CALLBACK( "spu-es", ESCallback ),
+ CALLBACK( "record", RecordCallback ),
CALLBACK( NULL, NULL )
};
{
CALLBACK( "next-chapter", SeekpointCallback ),
CALLBACK( "prev-chapter", SeekpointCallback ),
+
+ CALLBACK( NULL, NULL )
};
#undef CALLBACK
val.i_time = 0;
var_Change( p_input, "spu-delay", VLC_VAR_SETVALUE, &val, NULL );
- p_input->p->pts_adjust.auto_adjust = var_CreateGetBool(
- p_input, "auto-adjust-pts-delay" );
-
/* Video ES */
var_Create( p_input, "video-es", VLC_VAR_INTEGER | VLC_VAR_HASCHOICE );
text.psz_string = _("Video Track");
/* Create title and navigation */
val.psz_string = malloc( sizeof("title ") + 5 );
+ if( !val.psz_string )
+ return;
+
for( i = 0; i < p_input->p->i_title; i++ )
{
- vlc_value_t val2, text, text2;
+ vlc_value_t val2, text2;
int j;
/* Add Navigation entries */
if( p_input->p->title[i]->psz_name == NULL ||
*p_input->p->title[i]->psz_name == '\0' )
{
- asprintf( &text.psz_string, _("Title %i"),
- i + p_input->p->i_title_offset );
+ if( asprintf( &text.psz_string, _("Title %i"),
+ i + p_input->p->i_title_offset ) == -1 )
+ continue;
}
else
{
*p_input->p->title[i]->seekpoint[j]->psz_name == '\0' )
{
/* Default value */
- asprintf( &text2.psz_string, _("Chapter %i"),
- j + p_input->p->i_seekpoint_offset );
+ if( asprintf( &text2.psz_string, _("Chapter %i"),
+ j + p_input->p->i_seekpoint_offset ) == -1 )
+ continue;
}
else
{
void input_ControlVarTitle( input_thread_t *p_input, int i_title )
{
input_title_t *t = p_input->p->title[i_title];
- vlc_value_t val;
+ vlc_value_t val, text;
int i;
/* Create/Destroy command variables */
}
else if( var_Get( p_input, "next-chapter", &val ) != VLC_SUCCESS )
{
- vlc_value_t text;
-
var_Create( p_input, "next-chapter", VLC_VAR_VOID );
text.psz_string = _("Next chapter");
var_Change( p_input, "next-chapter", VLC_VAR_SETTEXT, &text, NULL );
var_Change( p_input, "chapter", VLC_VAR_CLEARCHOICES, NULL, NULL );
for( i = 0; i < t->i_seekpoint; i++ )
{
- vlc_value_t text;
val.i_int = i;
if( t->seekpoint[i]->psz_name == NULL ||
*t->seekpoint[i]->psz_name == '\0' )
{
/* Default value */
- asprintf( &text.psz_string, _("Chapter %i"),
- i + p_input->p->i_seekpoint_offset );
+ if( asprintf( &text.psz_string, _("Chapter %i"),
+ i + p_input->p->i_seekpoint_offset ) == -1 )
+ continue;
}
else
{
*****************************************************************************/
void input_ConfigVarInit ( input_thread_t *p_input )
{
- vlc_value_t val;
-
/* Create Object Variables for private use only */
if( !p_input->b_preparsing )
VLC_VAR_INTEGER | VLC_VAR_DOINHERIT );
var_Create( p_input, "clock-synchro",
VLC_VAR_INTEGER | VLC_VAR_DOINHERIT);
+ var_Create( p_input, "auto-adjust-pts-delay",
+ VLC_VAR_BOOL | VLC_VAR_DOINHERIT);
}
var_Create( p_input, "seekable", VLC_VAR_BOOL );
- val.b_bool = true; /* Fixed later*/
- var_Change( p_input, "seekable", VLC_VAR_SETVALUE, &val, NULL );
+ var_SetBool( p_input, "seekable", true ); /* Fixed later*/
+
var_Create( p_input, "can-pause", VLC_VAR_BOOL );
- val.b_bool = true; /* Fixed later*/
- var_Change( p_input, "can-pause", VLC_VAR_SETVALUE, &val, NULL );
+ var_SetBool( p_input, "can-pause", true ); /* Fixed later*/
+
+ var_Create( p_input, "can-record", VLC_VAR_BOOL );
+ var_SetBool( p_input, "can-record", false ); /* Fixed later*/
+
+ var_Create( p_input, "record", VLC_VAR_BOOL );
+ var_SetBool( p_input, "record", false );
+
+ var_Create( p_input, "teletext-es", VLC_VAR_INTEGER );
+ var_SetInteger( p_input, "teletext-es", -1 );
/* */
var_Create( p_input, "access-filter", VLC_VAR_STRING | VLC_VAR_DOINHERIT );
return VLC_SUCCESS;
}
+
+static int RecordCallback( vlc_object_t *p_this, char const *psz_cmd,
+ vlc_value_t oldval, vlc_value_t newval,
+ void *p_data )
+{
+ input_thread_t *p_input = (input_thread_t*)p_this;
+ VLC_UNUSED(psz_cmd); VLC_UNUSED(oldval); VLC_UNUSED(p_data);
+
+ input_ControlPush( p_input, INPUT_CONTROL_SET_RECORD_STATE, &newval );
+
+ return VLC_SUCCESS;
+}