[-]
[+]
|
Added |
vlc-SLE_10.spec
|
|
[-]
[+]
|
Added |
vlc-0.8.6i-cdda-0.79.patch
^
|
@@ -0,0 +1,18 @@
+diff -ur vlc-0.8.6h/modules/access/cdda/cdda.h vlc-0.8.6h.patched/modules/access/cdda/cdda.h
+--- vlc-0.8.6h/modules/access/cdda/cdda.h 2008-05-25 21:28:56.000000000 +0300
++++ vlc-0.8.6h.patched/modules/access/cdda/cdda.h 2008-05-29 22:00:18.000000000 +0300
+@@ -71,6 +71,14 @@
+ #define CdIo_t CdIo
+ #endif
+
++#if LIBCDIO_VERSION_NUM < 78
++ typedef enum {
++ paranoia_none = 0, /* Note: We make use of 0 as being the same as false */
++ paranoia_overlap = 1,
++ paranoia_full = 2
++ } paranoia_mode_t;
++#endif
++
+ /*****************************************************************************
+ * cdda_data_t: CD audio information
+ *****************************************************************************/
|
[-]
[+]
|
Added |
vlc-0.8.6i-ffmpeg_swscale.patch
^
|
@@ -0,0 +1,522 @@
+diff -ur vlc-0.8.6e.orig/configure vlc-0.8.6e/configure
+--- vlc-0.8.6e.orig/configure 2008-02-24 20:07:09.000000000 +0100
++++ vlc-0.8.6e/configure 2008-03-15 13:59:28.082407135 +0100
+@@ -45043,12 +45043,12 @@
+ pkg_cv_FFMPEG_CFLAGS="$FFMPEG_CFLAGS"
+ else
+ if test -n "$PKG_CONFIG" && \
+- { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"libavcodec, libavformat\"") >&5
+- ($PKG_CONFIG --exists --print-errors "libavcodec, libavformat") 2>&5
++ { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"libavcodec, libavformat, libswscale\"") >&5
++ ($PKG_CONFIG --exists --print-errors "libavcodec, libavformat, libswscale") 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+- pkg_cv_FFMPEG_CFLAGS=`$PKG_CONFIG --cflags "libavcodec, libavformat" 2>/dev/null`
++ pkg_cv_FFMPEG_CFLAGS=`$PKG_CONFIG --cflags "libavcodec, libavformat, libswscale" 2>/dev/null`
+ else
+ pkg_failed=yes
+ fi
+@@ -45061,12 +45061,12 @@
+ pkg_cv_FFMPEG_LIBS="$FFMPEG_LIBS"
+ else
+ if test -n "$PKG_CONFIG" && \
+- { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"libavcodec, libavformat\"") >&5
+- ($PKG_CONFIG --exists --print-errors "libavcodec, libavformat") 2>&5
++ { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"libavcodec, libavformat, libswscale\"") >&5
++ ($PKG_CONFIG --exists --print-errors "libavcodec, libavformat, libswscale") 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+- pkg_cv_FFMPEG_LIBS=`$PKG_CONFIG --libs "libavcodec, libavformat" 2>/dev/null`
++ pkg_cv_FFMPEG_LIBS=`$PKG_CONFIG --libs "libavcodec, libavformat, libswscale" 2>/dev/null`
+ else
+ pkg_failed=yes
+ fi
+@@ -45085,9 +45085,9 @@
+ _pkg_short_errors_supported=no
+ fi
+ if test $_pkg_short_errors_supported = yes; then
+- FFMPEG_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "libavcodec, libavformat"`
++ FFMPEG_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "libavcodec, libavformat, libswscale"`
+ else
+- FFMPEG_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "libavcodec, libavformat"`
++ FFMPEG_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "libavcodec, libavformat, libswscale"`
+ fi
+ # Put the nasty error message in config.log where it belongs
+ echo "$FFMPEG_PKG_ERRORS" >&5
+@@ -45746,7 +45746,7 @@
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ ac_check_lib_save_LIBS=$LIBS
+-LIBS="-lavcodec $LDAVUTIL $LIBS"
++LIBS="-lavcodec -lswscale $LDAVUTIL $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h. */
+ _ACEOF
+@@ -45808,7 +45808,7 @@
+
+
+ for element in ffmpeg; do
+- eval "LDFLAGS_${element}="'"'"-lavcodec "'$'"{LDFLAGS_${element}} "'"'
++ eval "LDFLAGS_${element}="'"'"-lavcodec -lswscale "'$'"{LDFLAGS_${element}} "'"'
+ am_modules_with_ldflags="${am_modules_with_ldflags} ${element}"
+ done
+
+@@ -45907,7 +45907,7 @@
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ ac_check_lib_save_LIBS=$LIBS
+-LIBS="-lavformat -lavcodec -lz $LDAVUTIL $LIBS"
++LIBS="-lavformat -lavcodec -lswscale -lz $LDAVUTIL $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h. */
+ _ACEOF
+@@ -46628,7 +46628,7 @@
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ ac_check_lib_save_LIBS=$LIBS
+-LIBS="-lavcodec $LDAVUTIL $LIBS"
++LIBS="-lavcodec -lswscale $LDAVUTIL $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h. */
+ _ACEOF
+@@ -46690,7 +46690,7 @@
+
+
+ for element in ffmpeg; do
+- eval "LDFLAGS_${element}="'"'"-lavcodec "'$'"{LDFLAGS_${element}} "'"'
++ eval "LDFLAGS_${element}="'"'"-lavcodec -lswscale "'$'"{LDFLAGS_${element}} "'"'
+ am_modules_with_ldflags="${am_modules_with_ldflags} ${element}"
+ done
+
+@@ -46789,7 +46789,7 @@
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ ac_check_lib_save_LIBS=$LIBS
+-LIBS="-lavformat -lavcodec -lz $LDAVUTIL $LIBS"
++LIBS="-lavformat -lavcodec -lswscale -lz $LDAVUTIL $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h. */
+ _ACEOF
+@@ -47586,7 +47586,7 @@
+
+
+ for element in ffmpegaltivec; do
+- eval "LDFLAGS_${element}="'"'"-L${real_ffmpeg_tree}/libavcodec -lavcodecaltivec "'$'"{LDFLAGS_${element}} "'"'
++ eval "LDFLAGS_${element}="'"'"-L${real_ffmpeg_tree}/libavcodec -lavcodecaltivec -lswscale "'$'"{LDFLAGS_${element}} "'"'
+ am_modules_with_ldflags="${am_modules_with_ldflags} ${element}"
+ done
+
+diff -ur vlc-0.8.6e.orig/configure.ac vlc-0.8.6e/configure.ac
+--- vlc-0.8.6e.orig/configure.ac 2008-02-24 20:01:55.000000000 +0100
++++ vlc-0.8.6e/configure.ac 2008-03-15 13:59:28.082407135 +0100
+@@ -2694,7 +2694,7 @@
+ else
+
+ dnl Trying with pkg-config
+- PKG_CHECK_MODULES(FFMPEG,[libavcodec, libavformat],
++ PKG_CHECK_MODULES(FFMPEG,[libavcodec, libavformat, libswscale],
+ [
+ AC_CHECK_HEADERS(ffmpeg/avcodec.h, [], [AC_MSG_ERROR([Missing header file ffmpeg/avcodec.h.])] )
+ AC_CHECK_HEADERS(ffmpeg/avformat.h)
+@@ -2736,7 +2736,7 @@
+
+ AC_CHECK_LIB(avcodec, avcodec_init, [
+ VLC_ADD_BUILTINS([ffmpeg])
+- VLC_ADD_LDFLAGS([ffmpeg],[-lavcodec])
++ VLC_ADD_LDFLAGS([ffmpeg],[-lavcodec -lswscale])
+ if test "${enable_sout}" != "no"; then
+ VLC_ADD_BUILTINS([stream_out_switcher])
+ fi],
+@@ -2749,7 +2749,7 @@
+ [$LDAVUTIL])
+
+ AC_CHECK_LIB(avformat, av_open_input_stream, [
+- VLC_ADD_LDFLAGS([ffmpeg],[-lavformat -lz]) ], [], [-lavcodec -lz $LDAVUTIL])
++ VLC_ADD_LDFLAGS([ffmpeg],[-lavformat -lswscale -lz]) ], [], [-lavcodec -lswscale -lz $LDAVUTIL])
+ LDFLAGS="${LDFLAGS_save}"
+ CPPFLAGS="${CPPFLAGS_save}"
+ ])
+@@ -2785,13 +2785,13 @@
+ dnl Use a custom libffmpeg
+ AC_MSG_RESULT(${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a)
+ VLC_ADD_BUILTINS([ffmpegaltivec])
+- VLC_ADD_LDFLAGS([ffmpegaltivec],[-L${real_ffmpeg_tree}/libavcodec -lavcodecaltivec])
++ VLC_ADD_LDFLAGS([ffmpegaltivec],[-L${real_ffmpeg_tree}/libavcodec -lavcodecaltivec -lswscale])
+ VLC_ADD_CPPFLAGS([ffmpeg],[-DNO_ALTIVEC_IN_FFMPEG])
+ VLC_ADD_CPPFLAGS([ffmpegaltivec],[-I${real_ffmpeg_tree}/libavcodec -I${real_ffmpeg_tree}/libavformat])
+
+ if test -f "${real_ffmpeg_tree}/libavformat/libavformat.a"; then
+ AC_DEFINE(HAVE_LIBAVFORMAT_TREE, 1, [Define if you have ffmpeg's libavformat.])
+- VLC_ADD_LDFLAGS([ffmpegaltivec],[-L${real_ffmpeg_tree}/libavformat -lavformataltivec -lz])
++ VLC_ADD_LDFLAGS([ffmpegaltivec],[-L${real_ffmpeg_tree}/libavformat -lavformataltivec -lswscale -lz])
+ VLC_ADD_CPPFLAGS([ffmpegaltivec],[-I${real_ffmpeg_tree}/libavformat])
+ fi
+ VLC_ADD_LDFLAGS([stream_out_switcher],[-L${real_ffmpeg_tree}/libavcodec])
+diff -ur vlc-0.8.6e.orig/modules/codec/ffmpeg/chroma.c vlc-0.8.6e/modules/codec/ffmpeg/chroma.c
+--- vlc-0.8.6e.orig/modules/codec/ffmpeg/chroma.c 2007-11-21 23:23:29.000000000 +0100
++++ vlc-0.8.6e/modules/codec/ffmpeg/chroma.c 2008-03-15 13:59:28.082407135 +0100
+@@ -35,6 +35,7 @@
+ #endif
+
+ #include "ffmpeg.h"
++#include <libswscale/swscale.h>
+
+ void E_(InitLibavcodec) ( vlc_object_t *p_object );
+ static void ChromaConversion( vout_thread_t *, picture_t *, picture_t * );
+@@ -89,26 +90,27 @@
+ p_vout->chroma.p_sys->i_src_ffmpeg_chroma = i_ffmpeg_chroma[0];
+ p_vout->chroma.p_sys->i_dst_ffmpeg_chroma = i_ffmpeg_chroma[1];
+
+- if( ( p_vout->render.i_height != p_vout->output.i_height ||
+- p_vout->render.i_width != p_vout->output.i_width ) &&
+- ( p_vout->chroma.p_sys->i_dst_vlc_chroma == VLC_FOURCC('I','4','2','0') ||
+- p_vout->chroma.p_sys->i_dst_vlc_chroma == VLC_FOURCC('Y','V','1','2') ))
+-
+- {
+- msg_Dbg( p_vout, "preparing to resample picture" );
+- p_vout->chroma.p_sys->p_rsc =
+- img_resample_init( p_vout->output.i_width, p_vout->output.i_height,
+- p_vout->render.i_width, p_vout->render.i_height );
+- avpicture_alloc( &p_vout->chroma.p_sys->tmp_pic,
+- p_vout->chroma.p_sys->i_dst_ffmpeg_chroma,
+- p_vout->render.i_width, p_vout->render.i_height );
+- }
+- else
+- {
+- msg_Dbg( p_vout, "no resampling" );
+- p_vout->chroma.p_sys->p_rsc = NULL;
+- }
+-
++ /* if( ( p_vout->render.i_height != p_vout->output.i_height ||
++ * p_vout->render.i_width != p_vout->output.i_width ) &&
++ * ( p_vout->chroma.p_sys->i_dst_vlc_chroma == VLC_FOURCC('I','4','2','0') ||
++ * p_vout->chroma.p_sys->i_dst_vlc_chroma == VLC_FOURCC('Y','V','1','2') ))
++ *
++ * {
++ *msg_Dbg( p_vout, "preparing to resample picture" );
++ * p_vout->chroma.p_sys->p_rsc =
|
[-]
[+]
|
Added |
vlc-0.8.6i-ffmpeg_swscale_configure.patch
^
|
@@ -0,0 +1,25 @@
+--- configure.ac.orig 2008-07-12 19:49:29.000000000 +0200
++++ configure.ac 2008-07-12 19:49:58.000000000 +0200
+@@ -2770,14 +2770,14 @@
+ fi
+
+ dnl Check if we have (required) img_resample() in libavcodec
+-if test "${enable_ffmpeg}" != "no"
+-then
+- CFLAGS="${CFLAGS} ${CFLAGS_ffmpeg}"
+- LDFLAGS="${LDFLAGS} ${LDFLAGS_ffmpeg}"
+- AC_CHECK_LIB(avcodec, img_resample, ,
+- [AC_MSG_ERROR([Your FFmpeg library doesn't have the needed img_resample() function. You should rebuild it with software scaler disabled])], -lavutil)
+- VLC_RESTORE_FLAGS
+-fi
++dnl if test "${enable_ffmpeg}" != "no"
++dnl then
++dnl CFLAGS="${CFLAGS} ${CFLAGS_ffmpeg}"
++dnl LDFLAGS="${LDFLAGS} ${LDFLAGS_ffmpeg}"
++dnl AC_CHECK_LIB(avcodec, img_resample, ,
++dnl [AC_MSG_ERROR([Your FFmpeg library doesn't have the needed img_resample() function. You should rebuild it with software scaler disabled])], -lavutil)
++dnl VLC_RESTORE_FLAGS
++dnl fi
+
+ dnl Clean out environment
+ LIBS="${LIBS_save}"
|
[-]
[+]
|
Added |
vlc-0.8.6i-fix_font_path.patch
^
|
@@ -0,0 +1,12 @@
+diff -uNr vlc-0.8.6b-test1.org/modules/misc/freetype.c vlc-0.8.6b-test1/modules/misc/freetype.c
+--- vlc-0.8.6b-test1.org/modules/misc/freetype.c 2007-04-15 00:34:38.000000000 +0300
++++ vlc-0.8.6b-test1/modules/misc/freetype.c 2007-04-15 00:35:18.000000000 +0300
+@@ -55,7 +55,7 @@
+ #elif defined( WIN32 )
+ #define DEFAULT_FONT "" /* Default font found at run-time */
+ #else
+-#define DEFAULT_FONT "/usr/share/fonts/truetype/freefont/FreeSerifBold.ttf"
++#define DEFAULT_FONT "/usr/share/fonts/truetype/FreeSerifBold.ttf"
+ #endif
+
+ #if defined(HAVE_FRIBIDI)
|
[-]
[+]
|
Added |
vlc-0.8.6i-fix_mss.patch
^
|
@@ -0,0 +1,105 @@
+diff --git a/modules/access/mms/mmstu.c b/modules/access/mms/mmstu.c
+index 61f9e38..df5ec78 100644
+--- a/modules/access/mms/mmstu.c
++++ b/modules/access/mms/mmstu.c
+@@ -28,6 +28,7 @@
+ #include <stdlib.h>
+ #include <vlc/vlc.h>
+ #include <string.h>
++#include <inttypes.h>
+ #include <vlc/input.h>
+ #include <errno.h>
+
+@@ -695,7 +696,7 @@ static int MMSOpen( access_t *p_access, vlc_url_t *p_url, int i_proto )
+ GetDWLE( p_sys->p_cmd + MMS_CMD_HEADERSIZE + 60 );
+
+ msg_Dbg( p_access,
+- "answer 0x06 flags:0x%8.8x media_length:%us packet_length:%lu packet_count:%u max_bit_rate:%d header_size:%d",
++ "answer 0x06 flags:0x%8.8"PRIx32" media_length:%"PRIu32"s packet_length:%zu packet_count:%"PRIu32" max_bit_rate:%d header_size:%zu",
+ p_sys->i_flags_broadcast,
+ p_sys->i_media_length,
+ p_sys->i_packet_length,
+@@ -749,12 +750,12 @@ static int MMSOpen( access_t *p_access, vlc_url_t *p_url, int i_proto )
+ if( p_sys->i_header >= p_sys->i_header_size )
+ {
+ msg_Dbg( p_access,
+- "header complete(%d)",
++ "header complete(%zu)",
+ p_sys->i_header );
+ break;
+ }
+ msg_Dbg( p_access,
+- "header incomplete (%d/%d), reading more",
++ "header incomplete (%zu/%zu), reading more",
+ p_sys->i_header,
+ p_sys->i_header_size );
+ }
+@@ -1128,7 +1129,7 @@ static int NetFillBuffer( access_t *p_access )
+
+ static int mms_ParseCommand( access_t *p_access,
+ uint8_t *p_data,
+- int i_data,
++ size_t i_data,
+ int *pi_used )
+ {
+ #define GET32( i_pos ) \
+@@ -1137,7 +1138,7 @@ static int mms_ParseCommand( access_t *p_access,
+ ( p_sys->p_cmd[i_pos + 3] << 24 ) )
+
+ access_sys_t *p_sys = p_access->p_sys;
+- int i_length;
++ uint32_t i_length;
+ uint32_t i_id;
+
+ if( p_sys->p_cmd )
+@@ -1159,10 +1160,10 @@ static int mms_ParseCommand( access_t *p_access,
+ i_id = GetDWLE( p_data + 4 );
+ i_length = GetDWLE( p_data + 8 ) + 16;
+
+- if( i_id != 0xb00bface )
++ if( i_id != 0xb00bface || i_length < 16 )
+ {
+ msg_Err( p_access,
+- "incorrect command header (0x%x)", i_id );
++ "incorrect command header (0x%"PRIx32")", i_id );
+ p_sys->i_command = 0;
+ return -1;
+ }
+@@ -1170,8 +1171,8 @@ static int mms_ParseCommand( access_t *p_access,
+ if( i_length > p_sys->i_cmd )
+ {
+ msg_Warn( p_access,
+- "truncated command (missing %d bytes)",
+- i_length - i_data );
++ "truncated command (missing %zu bytes)",
++ (size_t)i_length - i_data );
+ p_sys->i_command = 0;
+ return -1;
+ }
+diff --git a/modules/access/mms/mmstu.h b/modules/access/mms/mmstu.h
+index b265127..8d41fe7 100644
+--- a/modules/access/mms/mmstu.h
++++ b/modules/access/mms/mmstu.h
+@@ -62,10 +62,10 @@ struct access_sys_t
+ int i_packet_seq_num;
+
+ uint8_t *p_cmd; /* latest command read */
+- int i_cmd; /* allocated at the begining */
++ size_t i_cmd; /* allocated at the begining */
+
+ uint8_t *p_header; /* allocated by mms_ReadPacket */
+- int i_header;
++ size_t i_header;
+
+ uint8_t *p_media; /* allocated by mms_ReadPacket */
+ size_t i_media;
+@@ -86,7 +86,7 @@ struct access_sys_t
+ size_t i_packet_length;
+ uint32_t i_packet_count;
+ int i_max_bit_rate;
+- int i_header_size;
++ size_t i_header_size;
+
+ /* */
+ vlc_bool_t b_seekable;
+
|
[-]
[+]
|
Added |
vlc-0.8.6i-wxGTK28.patch
^
|
@@ -0,0 +1,284 @@
+--- vlc-0.8.6f/modules/gui/wxwidgets/interface.cpp 2008-03-24 00:41:49.000000000 +0200
++++ vlc-0.8.6f.new/modules/gui/wxwidgets/interface.cpp 2008-04-06 04:33:29.000000000 +0300
+@@ -67,7 +67,7 @@
+ /*****************************************************************************
+ * Local prototypes
+ *****************************************************************************/
+-static int InteractCallback( vlc_object_t *, const char *, vlc_value_t,
++ static int InteractCallback( vlc_object_t *, const char *, vlc_value_t,
+ vlc_value_t, void *);
+
+ /*****************************************************************************
+@@ -93,33 +93,6 @@ private:
+
+ };
+
+-class wxVolCtrl;
+-class VLCVolCtrl : public wxControl
+-{
+-public:
+- VLCVolCtrl( intf_thread_t *p_intf, wxWindow *p_parent );
+- virtual ~VLCVolCtrl() {};
+-
+- virtual void OnPaint( wxPaintEvent &event );
+- void OnChange( wxMouseEvent& event );
+- void UpdateVolume();
+-
+- private:
+- DECLARE_EVENT_TABLE()
+-
+- wxVolCtrl *gauge;
+- int i_y_offset;
+- vlc_bool_t b_mute;
+- intf_thread_t *p_intf;
+-};
+-
+-BEGIN_EVENT_TABLE(VLCVolCtrl, wxControl)
+- EVT_PAINT(VLCVolCtrl::OnPaint)
+-
+- /* Mouse events */
+- EVT_LEFT_UP(VLCVolCtrl::OnChange)
+-END_EVENT_TABLE()
+-
+ class Splitter : public wxSplitterWindow
+ {
+ public:
+@@ -291,6 +264,8 @@ enum
+ NextStream_Event,
+ SlowStream_Event,
+ FastStream_Event,
++ ToggleMute_Event,
++ SlideVolume_Event,
+
+ /* it is important for the id corresponding to the "About" command to have
+ * this standard value as otherwise it won't be handled properly under Mac
+@@ -344,6 +319,8 @@ BEGIN_EVENT_TABLE(Interface, wxFrame)
+ EVT_MENU(NextStream_Event, Interface::OnNextStream)
+ EVT_MENU(SlowStream_Event, Interface::OnSlowStream)
+ EVT_MENU(FastStream_Event, Interface::OnFastStream)
++ EVT_MENU(ToggleMute_Event, Interface::OnToggleMute)
++ EVT_COMMAND_SCROLL(SlideVolume_Event, Interface::OnSlideVolume)
+
+ /* Custom events */
+ EVT_COMMAND(0, wxEVT_INTF, Interface::OnControlEvent)
+@@ -530,7 +507,7 @@ void Interface::Init()
+ void Interface::Update()
+ {
+ /* Misc updates */
+- if( !(i_update_counter % 10) ) ((VLCVolCtrl *)volctrl)->UpdateVolume();
++// if( !(i_update_counter % 10) ) ((VLCVolCtrl *)volctrl)->UpdateVolume();
+
+ if( playlist_manager ) playlist_manager->Update();
+
+@@ -683,6 +660,7 @@ void Interface::CreateOurToolBar()
+ #define HELP_PLN N_("Next playlist item")
+ #define HELP_SLOW N_("Play slower")
+ #define HELP_FAST N_("Play faster")
++#define HELP_VOL N_("Toggle mute/unmute of the audio")
+
+ #define LABEL_OPEN N_("Open")
+ #define LABEL_STOP N_("Stop")
+@@ -694,6 +672,8 @@ void Interface::CreateOurToolBar()
+ #define LABEL_PLN N_("Next")
+ #define LABEL_SLOW N_("Slower")
+ #define LABEL_FAST N_("Faster")
++#define LABEL_VOL N_("Mute")
++
+ int minimal = config_GetInt( p_intf, "wx-minimal" );
+ bool label = config_GetInt( p_intf, "wx-labels" );
+
+@@ -740,14 +720,15 @@ void Interface::CreateOurToolBar()
+ wxBitmap( playlist_small_xpm ), wxU(_(HELP_SPLO)) );
+ }
+
+- wxControl *p_dummy_ctrl =
+- new wxControl( toolbar, -1, wxDefaultPosition,
+- wxSize(16, 16 ), wxBORDER_NONE );
+-
+- toolbar->AddControl( p_dummy_ctrl );
+-
+- volctrl = new VLCVolCtrl( p_intf, toolbar );
+- toolbar->AddControl( volctrl );
++ wxToolBarToolBase *v_tool = toolbar->AddTool( ToggleMute_Event,
++ wxU(LABEL_VOL), wxBitmap( speaker_xpm ),
++ wxU(_(HELP_VOL)), wxITEM_CHECK );
++ v_tool->SetClientData( v_tool );
++
++ wxSlider *v_gauge = new wxSlider(toolbar, SlideVolume_Event, 256, 0,
++ AOUT_VOLUME_MAX, wxDefaultPosition,
++ wxSize(64,TOOLBAR_BMP_HEIGHT), wxSL_HORIZONTAL);
++ toolbar->AddControl(v_gauge);
+
+ toolbar->Realize();
+
+@@ -1199,6 +1180,49 @@ void Interface::OnFastStream( wxCommandE
+ }
+ }
+
++void Interface::OnToggleMute ( wxCommandEvent& WXUNUSED(event) )
++{
++ aout_VolumeMute(p_intf, NULL);
++ SyncVolume();
++
++}
++
++void Interface::SyncVolume()
++{
++ wxToolBarToolBase *p_tool = (wxToolBarToolBase *)
++ GetToolBar()->GetToolClientData( ToggleMute_Event );
++ if ( !p_tool) return;
++
++ audio_volume_t i_volume;
++ aout_VolumeGet(p_intf, &i_volume);
++
++// Updating the Mute Button... IF the slider is completely moved to the left,
++// the mute icon is shown too.
++ p_tool->SetNormalBitmap( wxBitmap( i_volume ? speaker_xpm : speaker_mute_xpm ) );
++ GetToolBar()->Realize();
++#if defined( __WXMSW__ )
++ /* Needed to work around a bug in wxToolBar::Realize() */
++ GetToolBar()->SetSize( GetSize().GetWidth(),
++ GetToolBar()->GetSize().GetHeight() );
++ GetToolBar()->Update();
++#endif
++// the Toggle to true and false is nescessary; otherwise, the Icon is not repainted
++ GetToolBar()->ToggleTool( ToggleMute_Event, true );
++ GetToolBar()->ToggleTool( ToggleMute_Event, false );
++ GetToolBar()->Update();
++}
++
++void Interface::OnSlideVolume( wxScrollEvent& WXUNUSED(event))
++{
++ wxSlider *p_tool = (wxSlider *)
++ GetToolBar()->FindControl( SlideVolume_Event );
++ if ( !p_tool) return;
++
++ aout_VolumeSet(p_intf , p_tool->GetValue());
++ SyncVolume();
++
++}
++
+ void Interface::TogglePlayButton( int i_playing_status )
+ {
+ wxToolBarToolBase *p_tool = (wxToolBarToolBase *)
+@@ -1325,108 +1349,6 @@ bool DragAndDrop::OnDropFiles( wxCoord,
+ #endif
+
+ /*****************************************************************************
+- * Definition of VolCtrl class.
+- *****************************************************************************/
+-class wxVolCtrl: public wxGauge
+-{
+-public:
+- /* Constructor */
+- wxVolCtrl( intf_thread_t *_p_intf, wxWindow* parent, wxWindowID id,
+- wxPoint = wxDefaultPosition, wxSize = wxSize( 20, -1 ) );
+- virtual ~wxVolCtrl() {};
+-
+- void UpdateVolume();
+- int GetVolume();
+-
+- void OnChange( wxMouseEvent& event );
+-
+-private:
+- intf_thread_t *p_intf;
+-
+- DECLARE_EVENT_TABLE();
+-};
+-
+-BEGIN_EVENT_TABLE(wxVolCtrl, wxWindow)
+- /* Mouse events */
+- EVT_LEFT_DOWN(wxVolCtrl::OnChange)
+- EVT_MOTION(wxVolCtrl::OnChange)
+-END_EVENT_TABLE()
+-
+-wxVolCtrl::wxVolCtrl( intf_thread_t *_p_intf, wxWindow* parent, wxWindowID id,
+- wxPoint point, wxSize size )
+- : wxGauge( parent, id, 200, point, size, wxGA_HORIZONTAL | wxGA_SMOOTH )
+-{
+- p_intf = _p_intf;
|
|
Added |
vlc-0.8.6i.tar.bz2
^
|