Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
Steve Lhomme
VLC
Commits
0212c515
Commit
0212c515
authored
Dec 23, 2007
by
dionoea
Browse files
Merge the shoutcast and freebox service discovery modules. Cleanup the shout.c code.
parent
f339d3ea
Changes
4
Hide whitespace changes
Inline
Side-by-side
configure.ac
View file @
0212c515
...
...
@@ -1268,7 +1268,7 @@ AC_LANG_POP(C++)
if test "${SYS}" != "mingwce"; then
VLC_ADD_PLUGINS([access_fake access_filter_timeshift access_filter_record access_filter_dump])
VLC_ADD_PLUGINS([gestures rc telnet hotkeys showintf marq podcast shout sap
freebox
fake folder])
VLC_ADD_PLUGINS([gestures rc telnet hotkeys showintf marq podcast shout sap fake folder])
VLC_ADD_PLUGINS([rss mosaic wall motiondetect clone crop erase bluescreen alphamask gaussianblur])
VLC_ADD_PLUGINS([i420_yuy2 i422_yuy2 i420_ymga i422_i420])
VLC_ADD_PLUGINS([aout_file linear_resampler bandlimited_resampler])
...
...
modules/services_discovery/Modules.am
View file @
0212c515
...
...
@@ -4,5 +4,4 @@ SOURCES_shout = shout.c
SOURCES_upnp_cc = upnp_cc.cpp
SOURCES_upnp_intel = upnp_intel.cpp
SOURCES_bonjour = bonjour.c
SOURCES_freebox = freebox.c
SOURCES_podcast = podcast.c
modules/services_discovery/freebox.c
deleted
100644 → 0
View file @
f339d3ea
/*****************************************************************************
* freebox.c : Freebox interface module
*****************************************************************************
* Copyright (C) 2007 the VideoLAN team
* $Id$
*
* Authors: Pierre d'Herbemont <pdherbemont # 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.
*****************************************************************************/
/*****************************************************************************
* Includes
*****************************************************************************/
#include <vlc/vlc.h>
#include <vlc_services_discovery.h>
#include <vlc_interface.h>
#include <vlc_network.h>
/************************************************************************
* definitions
************************************************************************/
static
const
char
kpsz_freebox_playlist_url
[]
=
"http://mafreebox.freebox.fr/freeboxtv/playlist.m3u"
;
/*****************************************************************************
* Module descriptor
*****************************************************************************/
/* Callbacks */
static
int
Open
(
vlc_object_t
*
,
int
);
static
void
Close
(
vlc_object_t
*
);
static
void
ItemAdded
(
const
vlc_event_t
*
p_event
,
void
*
user_data
);
static
void
Run
(
services_discovery_t
*
p_sd
);
vlc_module_begin
();
set_shortname
(
"Freebox"
);
set_description
(
_
(
"Freebox TV listing (French ISP free.fr services)"
)
);
add_shortcut
(
"freebox"
);
set_category
(
CAT_PLAYLIST
);
set_subcategory
(
SUBCAT_PLAYLIST_SD
);
set_capability
(
"services_discovery"
,
0
);
set_callbacks
(
Open
,
Close
);
vlc_module_end
();
/*****************************************************************************
* Open: initialize
*****************************************************************************/
static
int
Open
(
vlc_object_t
*
p_this
,
int
i_type
)
{
services_discovery_t
*
p_sd
=
(
services_discovery_t
*
)
p_this
;
p_sd
->
pf_run
=
Run
;
services_discovery_SetLocalizedName
(
p_sd
,
_
(
"Freebox TV"
)
);
return
VLC_SUCCESS
;
}
/*****************************************************************************
* ItemAdded:
*****************************************************************************/
static
void
ItemAdded
(
const
vlc_event_t
*
p_event
,
void
*
user_data
)
{
services_discovery_t
*
p_sd
=
user_data
;
services_discovery_AddItem
(
p_sd
,
p_event
->
u
.
input_item_subitem_added
.
p_new_child
,
NULL
/* no category */
);
}
/*****************************************************************************
* Run:
*****************************************************************************/
static
void
Run
(
services_discovery_t
*
p_sd
)
{
input_item_t
*
p_input
=
input_ItemNewExt
(
p_sd
,
kpsz_freebox_playlist_url
,
_
(
"Freebox TV"
),
0
,
NULL
,
-
1
);
input_ItemAddOption
(
p_input
,
"no-playlist-autostart"
);
vlc_event_attach
(
&
p_input
->
event_manager
,
vlc_InputItemSubItemAdded
,
ItemAdded
,
p_sd
);
input_Read
(
p_sd
,
p_input
,
VLC_TRUE
);
vlc_event_detach
(
&
p_input
->
event_manager
,
vlc_InputItemSubItemAdded
,
ItemAdded
,
p_sd
);
vlc_gc_decref
(
p_input
);
}
/*****************************************************************************
* Close:
*****************************************************************************/
static
void
Close
(
vlc_object_t
*
p_this
)
{
}
modules/services_discovery/shout.c
View file @
0212c515
/*****************************************************************************
* shout.c: Shoutcast services discovery module
*****************************************************************************
* Copyright (C) 2005 the VideoLAN team
* Copyright (C) 2005
-2007
the VideoLAN team
* $Id$
*
* Authors: Sigmund Augdal Helberg <dnumgis@videolan.org>
* Antoine Cellerier <dionoea -@T- videolan -d.t- org>
* Pierre d'Herbemont <pdherbemont # 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
...
...
@@ -28,71 +29,68 @@
#include <vlc/vlc.h>
#include <vlc_services_discovery.h>
#include <vlc_interface.h>
#include <vlc_network.h>
#include <errno.h>
/* ENOMEM
*/
/*****************************************************************************
* Module descriptor
****************************************************************************
*/
#ifdef HAVE_UNISTD_H
# include <unistd.h>
#endif
#ifdef HAVE_SYS_TIME_H
# include <sys/time.h>
#endif
enum
type_e
{
ShoutRadio
=
0
,
ShoutTV
=
1
,
Freebox
=
2
};
/************************************************************************
* Macros and definitions
************************************************************************/
static
int
Open
(
vlc_object_t
*
,
enum
type_e
);
static
void
Close
(
vlc_object_t
*
);
#define MAX_LINE_LENGTH 256
#define SHOUTCAST_BASE_URL "http/shout-winamp://www.shoutcast.com/sbin/newxml.phtml"
#define SHOUTCAST_TV_BASE_URL "http/shout-winamp://www.shoutcast.com/sbin/newtvlister.phtml?alltv=1"
static
const
struct
{
const
char
*
psz_url
;
const
char
*
psz_name
;
}
p_items
[]
=
{
{
"http/shout-winamp://www.shoutcast.com/sbin/newxml.phtml"
,
N_
(
"Shoutcast Radio"
)
},
{
"http/shout-winamp://www.shoutcast.com/sbin/newtvlister.phtml?alltv=1"
,
N_
(
"Shoutcast TV"
)
},
{
"http://mafreebox.freebox.fr/freeboxtv/playlist.m3u"
,
N_
(
"Freebox TV"
)
},
};
/*****************************************************************************
* Module descriptor
*****************************************************************************/
/* Main functions */
#define OPEN( type ) \
static int Open ## type ( vlc_object_t *p_this ) \
{ \
return Open( p_this, type ); \
}
/* Callbacks */
static
int
Open
(
vlc_object_t
*
,
int
);
static
int
OpenRadio
(
vlc_object_t
*
);
static
int
OpenTV
(
vlc_object_t
*
);
static
void
Close
(
vlc_object_t
*
);
OPEN
(
ShoutRadio
)
OPEN
(
ShoutTV
)
OPEN
(
Freebox
)
vlc_module_begin
();
set_shortname
(
"Shoutcast"
);
set_description
(
_
(
"Shoutcast radio listings"
)
);
add_shortcut
(
"shoutcast"
);
set_category
(
CAT_PLAYLIST
);
set_subcategory
(
SUBCAT_PLAYLIST_SD
);
add_obsolete_integer
(
"shoutcast-limit"
);
set_capability
(
"services_discovery"
,
0
);
set_callbacks
(
OpenRadio
,
Close
);
set_shortname
(
"Shoutcast"
);
set_description
(
_
(
"Shoutcast radio listings"
)
);
set_capability
(
"services_discovery"
,
0
);
set_callbacks
(
OpenShoutRadio
,
Close
);
add_shortcut
(
"shoutcast"
);
add_submodule
();
set_shortname
(
"ShoutcastTV"
);
set_description
(
_
(
"Shoutcast TV listings"
)
);
set_capability
(
"services_discovery"
,
0
);
set_callbacks
(
OpenTV
,
Close
);
set_callbacks
(
Open
Shout
TV
,
Close
);
add_shortcut
(
"shoutcasttv"
);
vlc_
module
_end
();
/*****************************************************************************
* Local structures
*****************************************************************************/
add_sub
module
();
set_shortname
(
"Freebox"
);
set_description
(
_
(
"Freebox TV listing (French ISP free.fr services)"
)
);
set_capability
(
"services_discovery"
,
0
);
set_callbacks
(
OpenFreebox
,
Close
);
add_shortcut
(
"freebox"
);
struct
services_discovery_sys_t
{
input_item_t
*
p_input
;
vlc_bool_t
b_dialog
;
};
vlc_module_end
();
#define RADIO 0
#define TV 1
/*****************************************************************************
* Local prototypes
...
...
@@ -100,47 +98,16 @@ struct services_discovery_sys_t
static
void
Run
(
services_discovery_t
*
p_sd
);
/* Main functions */
static
int
OpenRadio
(
vlc_object_t
*
p_this
)
{
return
Open
(
p_this
,
RADIO
);
}
static
int
OpenTV
(
vlc_object_t
*
p_this
)
{
return
Open
(
p_this
,
TV
);
}
/*****************************************************************************
* Open: initialize and create stuff
*****************************************************************************/
static
int
Open
(
vlc_object_t
*
p_this
,
int
i_type
)
static
int
Open
(
vlc_object_t
*
p_this
,
enum
type_e
i_type
)
{
services_discovery_t
*
p_sd
=
(
services_discovery_t
*
)
p_this
;
DECMALLOC_ERR
(
p_sys
,
services_discovery_sys_t
);
p_sd
->
p_sys
=
p_sys
;
services_discovery_SetLocalizedName
(
p_sd
,
_
(
p_items
[
i_type
].
psz_name
)
);
p_sd
->
pf_run
=
Run
;
switch
(
i_type
)
{
case
TV
:
services_discovery_SetLocalizedName
(
p_sd
,
_
(
"Shoutcast TV"
)
);
p_sys
->
p_input
=
input_ItemNewExt
(
p_sd
,
SHOUTCAST_TV_BASE_URL
,
_
(
"Shoutcast TV"
),
0
,
NULL
,
-
1
);
break
;
case
RADIO
:
default:
services_discovery_SetLocalizedName
(
p_sd
,
_
(
"Shoutcast Radio"
)
);
p_sys
->
p_input
=
input_ItemNewExt
(
p_sd
,
SHOUTCAST_BASE_URL
,
_
(
"Shoutcast Radio"
),
0
,
NULL
,
-
1
);
break
;
}
input_ItemAddOption
(
p_sys
->
p_input
,
"no-playlist-autostart"
);
p_sd
->
p_sys
=
(
void
*
)
i_type
;
return
VLC_SUCCESS
;
}
...
...
@@ -160,9 +127,19 @@ static void ItemAdded( const vlc_event_t * p_event, void * user_data )
*****************************************************************************/
static
void
Run
(
services_discovery_t
*
p_sd
)
{
vlc_event_attach
(
&
p_sd
->
p_sys
->
p_input
->
event_manager
,
vlc_InputItemSubItemAdded
,
ItemAdded
,
p_sd
);
input_Read
(
p_sd
,
p_sd
->
p_sys
->
p_input
,
VLC_TRUE
);
vlc_event_detach
(
&
p_sd
->
p_sys
->
p_input
->
event_manager
,
vlc_InputItemSubItemAdded
,
ItemAdded
,
p_sd
);
enum
type_e
i_type
=
(
enum
type_e
)
p_sd
->
p_sys
;
input_item_t
*
p_input
=
input_ItemNewExt
(
p_sd
,
p_items
[
i_type
].
psz_url
,
_
(
p_items
[
i_type
].
psz_name
),
0
,
NULL
,
-
1
);
input_ItemAddOption
(
p_input
,
"no-playlist-autostart"
);
vlc_gc_incref
(
p_input
);
vlc_event_attach
(
&
p_input
->
event_manager
,
vlc_InputItemSubItemAdded
,
ItemAdded
,
p_sd
);
input_Read
(
p_sd
,
p_input
,
VLC_TRUE
);
vlc_event_detach
(
&
p_input
->
event_manager
,
vlc_InputItemSubItemAdded
,
ItemAdded
,
p_sd
);
vlc_gc_decref
(
p_input
);
}
/*****************************************************************************
...
...
@@ -170,8 +147,4 @@ static void Run( services_discovery_t *p_sd )
*****************************************************************************/
static
void
Close
(
vlc_object_t
*
p_this
)
{
services_discovery_t
*
p_sd
=
(
services_discovery_t
*
)
p_this
;
services_discovery_sys_t
*
p_sys
=
p_sd
->
p_sys
;
vlc_gc_decref
(
p_sys
->
p_input
);
free
(
p_sys
);
}
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment