Commit adce9d32 authored by Clément Stenac's avatar Clément Stenac

Beginning of an improved streaming wizard. Do not use at the moment

parent 7a43f27a
...@@ -6,6 +6,7 @@ SOURCES_wxwindows = \ ...@@ -6,6 +6,7 @@ SOURCES_wxwindows = \
open.cpp \ open.cpp \
streamout.cpp \ streamout.cpp \
streamwizard.cpp \ streamwizard.cpp \
wizard.cpp \
messages.cpp \ messages.cpp \
playlist.cpp \ playlist.cpp \
iteminfo.cpp \ iteminfo.cpp \
......
...@@ -62,6 +62,8 @@ BEGIN_EVENT_TABLE(DialogsProvider, wxFrame) ...@@ -62,6 +62,8 @@ BEGIN_EVENT_TABLE(DialogsProvider, wxFrame)
DialogsProvider::OnPreferences) DialogsProvider::OnPreferences)
EVT_COMMAND(INTF_DIALOG_STREAMWIZARD, wxEVT_DIALOG, EVT_COMMAND(INTF_DIALOG_STREAMWIZARD, wxEVT_DIALOG,
DialogsProvider::OnStreamWizardDialog) DialogsProvider::OnStreamWizardDialog)
EVT_COMMAND(INTF_DIALOG_WIZARD, wxEVT_DIALOG,
DialogsProvider::OnWizardDialog)
EVT_COMMAND(INTF_DIALOG_FILEINFO, wxEVT_DIALOG, EVT_COMMAND(INTF_DIALOG_FILEINFO, wxEVT_DIALOG,
DialogsProvider::OnFileInfo) DialogsProvider::OnFileInfo)
EVT_COMMAND(INTF_DIALOG_BOOKMARKS, wxEVT_DIALOG, EVT_COMMAND(INTF_DIALOG_BOOKMARKS, wxEVT_DIALOG,
...@@ -88,6 +90,7 @@ DialogsProvider::DialogsProvider( intf_thread_t *_p_intf, wxWindow *p_parent ) ...@@ -88,6 +90,7 @@ DialogsProvider::DialogsProvider( intf_thread_t *_p_intf, wxWindow *p_parent )
p_prefs_dialog = NULL; p_prefs_dialog = NULL;
p_file_generic_dialog = NULL; p_file_generic_dialog = NULL;
p_streamwizard_dialog = NULL; p_streamwizard_dialog = NULL;
p_wizard_dialog = NULL;
p_bookmarks_dialog = NULL; p_bookmarks_dialog = NULL;
/* Give our interface a nice little icon */ /* Give our interface a nice little icon */
...@@ -116,6 +119,7 @@ DialogsProvider::~DialogsProvider() ...@@ -116,6 +119,7 @@ DialogsProvider::~DialogsProvider()
if( p_fileinfo_dialog ) delete p_fileinfo_dialog; if( p_fileinfo_dialog ) delete p_fileinfo_dialog;
if( p_file_generic_dialog ) delete p_file_generic_dialog; if( p_file_generic_dialog ) delete p_file_generic_dialog;
if( p_streamwizard_dialog ) delete p_streamwizard_dialog; if( p_streamwizard_dialog ) delete p_streamwizard_dialog;
if( p_wizard_dialog ) delete p_wizard_dialog;
if( p_bookmarks_dialog ) delete p_bookmarks_dialog; if( p_bookmarks_dialog ) delete p_bookmarks_dialog;
...@@ -203,6 +207,20 @@ void DialogsProvider::OnStreamWizardDialog( wxCommandEvent& WXUNUSED(event) ) ...@@ -203,6 +207,20 @@ void DialogsProvider::OnStreamWizardDialog( wxCommandEvent& WXUNUSED(event) )
} }
} }
void DialogsProvider::OnWizardDialog( wxCommandEvent& WXUNUSED(event) )
{
fprintf(stderr,"AHAH %p\n",p_intf);
p_wizard_dialog = new WizardDialog( p_intf, this );
if( p_wizard_dialog )
{
p_wizard_dialog->Run();
}
delete p_wizard_dialog;
p_wizard_dialog = NULL;
}
void DialogsProvider::OnBookmarks( wxCommandEvent& WXUNUSED(event) ) void DialogsProvider::OnBookmarks( wxCommandEvent& WXUNUSED(event) )
{ {
/* Show/hide the open dialog */ /* Show/hide the open dialog */
......
...@@ -118,6 +118,7 @@ enum ...@@ -118,6 +118,7 @@ enum
EjectDisc_Event, EjectDisc_Event,
StreamWizard_Event, StreamWizard_Event,
Wizard_Event,
Playlist_Event, Playlist_Event,
Logs_Event, Logs_Event,
...@@ -184,6 +185,7 @@ BEGIN_EVENT_TABLE(Interface, wxFrame) ...@@ -184,6 +185,7 @@ BEGIN_EVENT_TABLE(Interface, wxFrame)
EVT_MENU(OpenNet_Event, Interface::OnShowDialog) EVT_MENU(OpenNet_Event, Interface::OnShowDialog)
EVT_MENU(OpenSat_Event, Interface::OnShowDialog) EVT_MENU(OpenSat_Event, Interface::OnShowDialog)
EVT_MENU(StreamWizard_Event, Interface::OnShowDialog) EVT_MENU(StreamWizard_Event, Interface::OnShowDialog)
EVT_MENU(Wizard_Event, Interface::OnShowDialog)
EVT_MENU(StopStream_Event, Interface::OnStopStream) EVT_MENU(StopStream_Event, Interface::OnStopStream)
EVT_MENU(PlayStream_Event, Interface::OnPlayStream) EVT_MENU(PlayStream_Event, Interface::OnPlayStream)
EVT_MENU(PrevStream_Event, Interface::OnPrevStream) EVT_MENU(PrevStream_Event, Interface::OnPrevStream)
...@@ -354,6 +356,8 @@ void Interface::CreateOurMenuBar() ...@@ -354,6 +356,8 @@ void Interface::CreateOurMenuBar()
file_menu->Append( StreamWizard_Event, file_menu->Append( StreamWizard_Event,
wxU(_("Streaming &Wizard...\tCtrl-W")), wxU(_("Streaming &Wizard...\tCtrl-W")),
wxU(_(HELP_STREAMWIZARD)) ); wxU(_(HELP_STREAMWIZARD)) );
file_menu->Append( Wizard_Event, wxU(_("New Wizard...")),
wxU(_(HELP_STREAMWIZARD)) );
file_menu->AppendSeparator(); file_menu->AppendSeparator();
file_menu->Append( Exit_Event, wxU(_("E&xit\tCtrl-X")), file_menu->Append( Exit_Event, wxU(_("E&xit\tCtrl-X")),
wxU(_(HELP_EXIT)) ); wxU(_(HELP_EXIT)) );
...@@ -874,6 +878,9 @@ void Interface::OnShowDialog( wxCommandEvent& event ) ...@@ -874,6 +878,9 @@ void Interface::OnShowDialog( wxCommandEvent& event )
case StreamWizard_Event: case StreamWizard_Event:
i_id = INTF_DIALOG_STREAMWIZARD; i_id = INTF_DIALOG_STREAMWIZARD;
break; break;
case Wizard_Event:
i_id = INTF_DIALOG_WIZARD;
break;
case Bookmarks_Event: case Bookmarks_Event:
i_id = INTF_DIALOG_BOOKMARKS; i_id = INTF_DIALOG_BOOKMARKS;
break; break;
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* stream.cpp : wxWindows plugin for vlc * stream.cpp : wxWindows plugin for vlc
***************************************************************************** *****************************************************************************
* Copyright (C) 2000-2004 VideoLAN * Copyright (C) 2000-2004 VideoLAN
* $Id: streamwizard.cpp,v 1.7 2004/03/01 18:31:13 gbazin Exp $ * $Id$
* *
* Authors: Clment Stenac <zorglub@videolan.org> * Authors: Clment Stenac <zorglub@videolan.org>
* *
...@@ -171,6 +171,7 @@ void StreamDialog::OnOpen( wxCommandEvent& event ) ...@@ -171,6 +171,7 @@ void StreamDialog::OnOpen( wxCommandEvent& event )
if( p_open_dialog) if( p_open_dialog)
{ {
p_open_dialog->Show(); p_open_dialog->Show();
p_open_dialog->Enable();
mrl = p_open_dialog->mrl; mrl = p_open_dialog->mrl;
sout_button->Enable(); sout_button->Enable();
step2_label->Enable(); step2_label->Enable();
......
/*****************************************************************************
* wizard.cpp : wxWindows plugin for vlc
*****************************************************************************
* Copyright (C) 2000-2004 VideoLAN
* $Id: streamwizard.cpp 6961 2004-03-05 17:34:23Z sam $
*
* Authors: Clment Stenac <zorglub@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., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
*****************************************************************************/
/*****************************************************************************
* Preamble
*****************************************************************************/
#include <stdlib.h> /* malloc(), free() */
#include <errno.h> /* ENOMEM */
#include <string.h> /* strerror() */
#include <stdio.h>
#include <vlc/vlc.h>
#include <vlc/intf.h>
#include "wxwindows.h"
#include <wx/statline.h>
class wizHelloPage;
class wizInputPage;
/*****************************************************************************
* Define events
*****************************************************************************/
enum
{
ActionRadio0_Event, ActionRadio1_Event,
Open_Event,
ListView_Event,
InputRadio0_Event, InputRadio1_Event,
MethodRadio0_Event, MethodRadio1_Event,
MethodRadio2_Event, MethodRadio3_Event,
EncapRadio0_Event, EncapRadio1_Event,
EncapRadio2_Event, EncapRadio3_Event,
EncapRadio4_Event, EncapRadio5_Event,
EncapRadio6_Event, EncapRadio7_Event,
EncapRadio8_Event, EncapRadio9_Event,
VideoEnable_Event, VideoCodec_Event,
AudioEnable_Event, AudioCodec_Event,
};
#define TEXTWIDTH 50
#define ACTION_STREAM 0
#define ACTION_TRANSCODE 1
#define MUX_PS 0
#define MUX_TS 1
#define MUX_MPEG 2
#define MUX_OGG 3
#define MUX_RAW 4
#define MUX_ASF 5
#define MUX_AVI 6
#define MUX_MP4 7
#define MUX_MOV 8
BEGIN_EVENT_TABLE(WizardDialog, wxWizard)
END_EVENT_TABLE()
/*****************************************************************************
* Wizard strings
*****************************************************************************/
#define ERROR _("Error")
#define ITEM_NAME _("Streaming/Transcoding Wizard")
/* Hello page */
#define HELLO_TITLE _("Streaming / Transcoding Wizard")
#define HELLO_TEXT _("Welcome, streaming wizard")
#define HELLO_STREAMING _("Stream")
#define HELLO_STREAMING_DESC _("Use this to stream on a network")
#define HELLO_TRANSCODE _("Transcode")
#define HELLO_TRANSCODE_DESC _("Use this to re-encode a stream and save it to a file")
#define HELLO_NOTICE _("This wizard only gives access to a small subset of VLC's streaming and transcoding capabilities. Use the Open and Stream Output dialogs to get all of them")
/* Input page */
#define INPUT_TITLE _("Choose input")
#define INPUT_TEXT _("Choose here your input stream")
#define INPUT_OPEN _("Select a stream" )
#define INPUT_PL _( "Existing playlist item" )
#define CHOOSE_STREAM _("You must choose a stream")
#define NO_PLAYLIST _("Uh Oh! Unable to find playlist !")
#define INPUT_BUTTON _("Choose")
/* Transcode 1 */
#define TRANSCODE1_TITLE _("Transcode")
#define TRANSCODE1_TEXT _("If you want to change the compression format of the audio or video tracks, fill in this page. (If you only want to change the container format, proceed to next page")
#define TR_VIDEO_TEXT0 _("If your stream has video and you want to " \
"transcode it, enable this")
#define TR_VIDEO_TEXT _("Select your video codec. Click one to get more " \
" information")
#define TR_AUDIO_TEXT0 _("If your stream has audio and you want to "\
"transcode it, enable this")
#define TR_AUDIO_TEXT _("Select your audio codec. Click one to get more " \
"information")
/* Streaming 1 */
#define STREAMING1_TITLE _("Streaming")
#define STREAMING1_TEXT _("In this page, you will select how your input stream will be sent.")
#define INVALID_MCAST_ADDRESS _("This does not appear to be a valid " \
"multicast address" )
/* Encap */
#define ENCAP_TITLE _("Encapsulation format")
#define ENCAP_TEXT _("In this page, you will select how the stream will be "\
"encapsulated." )
/* Transcode 2 */
#define EXTRATRANSCODE_TITLE _("Additional transcode options")
#define EXTRATRANSCODE_TEXT _("In this page, you will define a few" \
"additionnal parameters for your transcoding" )
/* Streaming 2 */
#define EXTRASTREAMING_TITLE _("Additional streaming options")
#define EXTRASTREAMING_TEXT _("In this page, you will define a few" \
"additionnal parameters for your stream" )
/*****************************************************************************
* Helper structures
*****************************************************************************/
struct codec {
char *psz_display;
char *psz_codec;
char *psz_descr;
int muxers[9];
};
struct codec vcodecs_array[] =
{
{ "MPEG-1 Video" , "mp1v" , "MPEG-1 Video codec",
{MUX_PS, MUX_TS, MUX_MPEG, MUX_OGG, MUX_AVI, MUX_RAW, -1,-1,-1 } },
{ "MPEG-2 Video" , "mp2v" , "MPEG-2 Video codec",
{MUX_PS, MUX_TS, MUX_MPEG, MUX_OGG, MUX_AVI, MUX_RAW, -1,-1,-1 } },
{ "MPEG-4 Video" , "mp4v" , "MPEG-4 Video codec",
{MUX_PS,MUX_TS,MUX_MPEG,MUX_ASF,MUX_MP4,MUX_OGG,MUX_AVI,MUX_RAW, -1} },
{ "DIVX 1" ,"DIV1","Divx first version" ,
{MUX_TS , MUX_MPEG , MUX_ASF , MUX_OGG , MUX_AVI , -1,-1,-1,-1 } },
{ "DIVX 2" ,"DIV2","Divx second version" ,
{MUX_TS , MUX_MPEG , MUX_ASF , MUX_OGG , MUX_AVI , -1,-1,-1,-1 } },
{ "DIVX 3" ,"DIV3","Divx third version" ,
{MUX_TS , MUX_MPEG , MUX_ASF , MUX_OGG , MUX_AVI , -1,-1,-1,-1 } },
{ "H 263" , "H263" , "H263 is ..." ,
{ MUX_TS, MUX_AVI, -1,-1,-1,-1,-1,-1,-1 } },
{ "I 263", "I263", "I263 is ..." ,
{ MUX_TS, MUX_AVI, -1,-1,-1,-1,-1,-1,-1 } },
{ "WMV 1" , "WMV1", "First version of WMV" ,
{MUX_TS , MUX_MPEG , MUX_ASF , MUX_OGG , MUX_AVI , -1,-1,-1,-1 } },
{ "WMV 2" , "WMV2", "2 version of WMV" ,
{MUX_TS , MUX_MPEG , MUX_ASF , MUX_OGG , MUX_AVI , -1,-1,-1,-1 } },
{ "MJPEG" , "MJPG", "MJPEG consists of a series of JPEG pictures" ,
{MUX_TS , MUX_MPEG , MUX_ASF , MUX_OGG , MUX_AVI , -1,-1,-1,-1 } },
{ "Theora" , "theo", "Experimental free codec",
{MUX_TS, -1,-1,-1,-1,-1,-1,-1,-1} },
{ "Dummy", "dummy", "Dummy codec (do not transcode)" ,
{MUX_PS,MUX_TS,MUX_MPEG,MUX_ASF,MUX_MP4,MUX_OGG,MUX_AVI,MUX_RAW,MUX_MOV}},
{ NULL,NULL,NULL , {-1,-1,-1,-1,-1,-1,-1,-1,-1}} /* Do not remove me */
};
struct codec acodecs_array[] =
{
{ "MPEG Audio" , "mpga" , "The standard MPEG audio (1/2) format" ,
{MUX_PS,MUX_TS,MUX_MPEG,MUX_ASF,MUX_OGG,MUX_AVI,MUX_RAW, -1,-1} },
{ "MP3" , "mp3" , "MPEG Audio Layer 3" ,
{MUX_PS,MUX_TS,MUX_MPEG,MUX_ASF,MUX_OGG,MUX_AVI,MUX_RAW, -1,-1} },
{ "MPEG 4 Audio" , "mp4a" , "Audio format for MPEG4" ,
{MUX_TS, MUX_MP4, -1,-1,-1,-1,-1,-1,-1 } },
{ "A/52" , "a52" , "DVD audio format" ,
{MUX_PS,MUX_TS,MUX_MPEG,MUX_ASF,MUX_OGG,MUX_AVI,MUX_RAW, -1,-1} },
{ "Vorbis" , "vorb" , "This is a free audio codec" ,
{MUX_OGG, -1,-1,-1,-1,-1,-1,-1,-1} },
{ "FLAC" , "flac" , "This is an audio codec" ,
{MUX_OGG , MUX_RAW, -1,-1,-1,-1,-1,-1,-1} },
{ "Speex" , "spx" , "An audio codec dedicated to compression of voice" ,
{MUX_OGG, -1,-1,-1,-1,-1,-1,-1,-1} },
{ "Dummy", "dummy", "Dummy codec (do not transcode)" ,
{MUX_PS,MUX_TS,MUX_MPEG,MUX_ASF,MUX_MP4,MUX_OGG,MUX_AVI,MUX_RAW,MUX_MOV}},
{ NULL,NULL,NULL , {-1,-1,-1,-1,-1,-1,-1,-1,-1}} /* Do not remove me */
};
struct method {
char *psz_access;
char *psz_method;
char *psz_descr;
char *psz_address;
int muxers[9];
};
struct method methods_array[] =
{
{"udp:","UDP Unicast", "Use this to stream to a single computer",
"Enter the address of the computer to stream to",
{ MUX_TS, -1,-1,-1,-1,-1,-1,-1,-1 } },
{"udp:","UDP Multicast",
"Use this to stream to a dynamic group of computers on a "
"multicast-enabled network. This is the most efficient method "
"to stream to several computers, but it does not work over Internet.",
"Enter the multicast address to stream to in this field. "
"This must be an IP address between 224.0.0.0 an 239.255.255.255 "
"For a private use, enter an address beginning with 239.255.",
{ MUX_TS, -1,-1,-1,-1,-1,-1,-1,-1 } },
{"http://","HTTP",
"Use this to stream to several computers. This method is "
"less efficient, as the server needs to send several times the "
"stream.",
"Enter the local addresses you want to listen to. Do not enter "
"anything to listen to all adresses. This is generally the best "
"thing to do.",
{ MUX_TS, MUX_PS, MUX_MPEG, MUX_OGG, MUX_RAW, MUX_ASF, -1,-1,-1} },
{ NULL, NULL,NULL,NULL , {-1,-1,-1,-1,-1,-1,-1,-1,-1}} /* Do not remove me */
};
struct encap {
int id;
char *psz_mux;
char *psz_encap;
char *psz_descr;
};
struct encap encaps_array[] =
{
{ MUX_PS, "ps","MPEG PS", "MPEG Program Stream" },
{ MUX_TS, "ts","MPEG TS", "MPEG Transport Stream" },
{ MUX_MPEG, "ps", "MPEG 1", "MPEG 1 Format" },
{ MUX_OGG, "ogg," "OGG", "OGG" },
{ MUX_RAW, "raw", "RAW", "RAW" },
{ MUX_ASF, "asf","ASF", "ASF" },
{ MUX_AVI, "avi","AVI", "AVI" },
{ MUX_MP4, "mp4","MP4", "MPEG4" },
{ MUX_MOV, "mov","MOV", "MOV" },
{ -1 , NULL,NULL , NULL } /* Do not remove me */
};
/*****************************************************************************
* All the pages of the wizard, declaration
*****************************************************************************/
#if 0
/* The open dialog */
class WizardOpen : public wxNotebook
{
public:
protected:
wxPanel *p_parent;
wxPanel *FilePanel();
wxPanel *DiscPanel();
wxPanel *NetPanel();
wxPanel *V4LPanel();
ArrayOfAutoBuiltPanel input_tab_array;
/* Controls for the file panel */
wxComboBox *file_combo;
wxFileDialog *file_dialog;
/* Controls for the disc panel */
wxRadioBox *disc_type;
wxTextCtrl *disc_device;
wxSpinCtrl *disc_title;
wxSpinCtrl *disc_chapter;
/* The media equivalent name for a DVD names. For example,
* "Title", is "Track" for a CD-DA */
wxStaticText *disc_title_label;
wxStaticText *disc_chapter_label;
/* Indicates if the disc device control was modified */
bool b_disc_device_changed;
/* Controls for the net panel */
wxRadioBox *net_type;
int i_net_type;
wxPanel *net_subpanels[4];
wxRadioButton *net_radios[4];
wxSpinCtrl *net_ports[4];
int i_net_ports[4];
wxTextCtrl *net_addrs[4];
wxCheckBox *net_ipv6;
/* Controls for the v4l panel */
wxRadioBox *video_type;
wxTextCtrl *video_device;
wxSpinCtrl *video_channel;
wxButton *v4l_button;
V4LDialog *v4l_dialog;
wxArrayString v4l_mrl;
}
#endif
/* Declare classes */
class wizHelloPage : public wxWizardPageSimple
{
public:
wizHelloPage( wxWizard *parent);
void OnActionChange(wxEvent& event);
void OnWizardPageChanging(wxWizardEvent& event);
protected:
int i_action;
WizardDialog *p_parent;
wxRadioButton *action_radios[2];
DECLARE_EVENT_TABLE()
};
BEGIN_EVENT_TABLE(wizHelloPage, wxWizardPageSimple)
EVT_RADIOBUTTON( ActionRadio0_Event, wizHelloPage::OnActionChange)
EVT_RADIOBUTTON( ActionRadio1_Event, wizHelloPage::OnActionChange)
EVT_WIZARD_PAGE_CHANGING(-1, wizHelloPage::OnWizardPageChanging)
END_EVENT_TABLE()
class wizInputPage : public wxWizardPage
{
public:
wizInputPage( wxWizard *, wxWizardPage *, intf_thread_t *);
wizInputPage::~wizInputPage();
void OnWizardPageChanging(wxWizardEvent& event);
void OnInputChange(wxEvent& event);
virtual wxWizardPage *GetPrev() const;
virtual wxWizardPage *GetNext() const;
void SetStreamingPage( wxWizardPage *page);
void SetTranscodePage( wxWizardPage *page);
void SetAction( int i_action );
void SetPintf( intf_thread_t *p_intf );
protected:
bool b_chosen;
intf_thread_t *p_intf;
int i_action;
int i_input;
WizardDialog *p_parent;
wxRadioButton *input_radios[2];
wxBoxSizer *mainSizer;
wxArrayString mrl;
wxTextCtrl *mrl_text;
OpenDialog *p_open_dialog;
wxListView *listview;
wxPanel *open_panel;
wxPanel *pl_panel;
wxWizardPage *p_prev;
wxWizardPage *p_streaming_page;
wxWizardPage *p_transcode_page;
DECLARE_EVENT_TABLE()
};
BEGIN_EVENT_TABLE(wizInputPage, wxWizardPageSimple)
EVT_RADIOBUTTON( InputRadio0_Event, wizInputPage::OnInputChange)
EVT_RADIOBUTTON( InputRadio1_Event, wizInputPage::OnInputChange)
EVT_WIZARD_PAGE_CHANGING(-1, wizInputPage::OnWizardPageChanging)
END_EVENT_TABLE()
class wizTranscodeCodecPage : public wxWizardPage
{
public:
wizTranscodeCodecPage( wxWizard *parent, wxWizardPage *next);
~wizTranscodeCodecPage();
void wizTranscodeCodecPage::OnWizardPageChanging(wxWizardEvent& event);
virtual wxWizardPage *GetPrev() const;
virtual wxWizardPage *GetNext() const;
void SetPrev( wxWizardPage *page);
protected:
wxCheckBox *video_checkbox;
wxComboBox *video_combo;
wxStaticText * video_text;
wxCheckBox *audio_checkbox;
wxComboBox *audio_combo;
wxStaticText * audio_text;
WizardDialog *p_parent;
int i_audio_codec;
int i_video_codec;
char *vcodec;
char *acodec;
wxWizardPage *p_prev;
wxWizardPage *p_next;
void OnVideoCodecChange(wxCommandEvent& event);
void OnAudioCodecChange(wxCommandEvent& event);
void OnEnableVideo(wxCommandEvent& event);
void OnEnableAudio(wxCommandEvent& event);
DECLARE_EVENT_TABLE()
};
BEGIN_EVENT_TABLE(wizTranscodeCodecPage, wxWizardPageSimple)
EVT_CHECKBOX( VideoEnable_Event, wizTranscodeCodecPage::OnEnableVideo)
EVT_CHECKBOX( AudioEnable_Event, wizTranscodeCodecPage::OnEnableAudio)
EVT_COMBOBOX( VideoCodec_Event, wizTranscodeCodecPage::OnVideoCodecChange)
EVT_COMBOBOX( AudioCodec_Event, wizTranscodeCodecPage::OnAudioCodecChange)
EVT_WIZARD_PAGE_CHANGING(-1, wizTranscodeCodecPage::OnWizardPageChanging)
END_EVENT_TABLE()
class wizStreamingMethodPage : public wxWizardPage
{
public:
wizStreamingMethodPage( wxWizard *parent, wxWizardPage *next);
void OnWizardPageChanging(wxWizardEvent& event);
virtual wxWizardPage *GetPrev() const;
virtual wxWizardPage *GetNext() const;
void SetPrev( wxWizardPage *page);
protected:
DECLARE_EVENT_TABLE()
int i_method;
wxStaticText *address_text;
wxTextCtrl *address_txtctrl;
WizardDialog * p_parent;
void OnMethodChange(wxEvent& event);
wxRadioButton *method_radios[4];
wxWizardPage *p_prev;
wxWizardPage *p_next;
};
BEGIN_EVENT_TABLE(wizStreamingMethodPage, wxWizardPageSimple)
EVT_RADIOBUTTON( MethodRadio0_Event, wizStreamingMethodPage::OnMethodChange)
EVT_RADIOBUTTON( MethodRadio1_Event, wizStreamingMethodPage::OnMethodChange)
EVT_RADIOBUTTON( MethodRadio2_Event, wizStreamingMethodPage::OnMethodChange)
EVT_RADIOBUTTON( MethodRadio3_Event, wizStreamingMethodPage::OnMethodChange)
EVT_WIZARD_PAGE_CHANGING(-1, wizStreamingMethodPage::OnWizardPageChanging)
END_EVENT_TABLE()
class wizEncapPage : public wxWizardPage
{
public:
wizEncapPage( wxWizard *parent);
wizEncapPage::~wizEncapPage();
void OnWizardPageChanging(wxWizardEvent& event);
virtual wxWizardPage *GetPrev() const;
virtual wxWizardPage *GetNext() const;
void SetStreamingPage( wxWizardPage *page);
void SetTranscodePage( wxWizardPage *page);
void SetPrev( wxWizardPage *page);
void SetAction( int );
void EnableEncap( int encap );
protected:
DECLARE_EVENT_TABLE()
int i_encap;
int i_mux;
int i_action;
void OnEncapChange(wxEvent& event);
wxRadioButton *encap_radios[9];
WizardDialog *p_parent;
wxWizardPage *p_prev;
wxWizardPage *p_streaming_page;
wxWizardPage *p_transcode_page;
};
BEGIN_EVENT_TABLE(wizEncapPage, wxWizardPageSimple)
EVT_WIZARD_PAGE_CHANGING(-1, wizEncapPage::OnWizardPageChanging)
EVT_RADIOBUTTON( EncapRadio0_Event, wizEncapPage::OnEncapChange)
EVT_RADIOBUTTON( EncapRadio1_Event, wizEncapPage::OnEncapChange)
EVT_RADIOBUTTON( EncapRadio2_Event, wizEncapPage::OnEncapChange)