char *psz_channel_server;\r
\r
/* server port */\r
- UpDownPort->Position = config_GetIntVariable( "server-port" );\r
+ UpDownUDPPort->Position = config_GetIntVariable( "server-port" );\r
+ UpDownMulticastPort->Position = config_GetIntVariable( "server-port" );\r
\r
/* channel server */\r
if( config_GetIntVariable( "network-channel" ) )\r
{\r
- CheckBoxChannel->Checked = true;\r
+ RadioButtonCS->Checked = true;\r
}\r
\r
psz_channel_server = config_GetPszVariable( "channel-server" );\r
if( psz_channel_server )\r
{\r
- ComboBoxChannel->Text = psz_channel_server;\r
+ ComboBoxCSAddress->Text = psz_channel_server;\r
free( psz_channel_server );\r
}\r
\r
- UpDownPortCS->Position = config_GetIntVariable( "channel-port" );\r
+ UpDownCSPort->Position = config_GetIntVariable( "channel-port" );\r
+\r
+ OldRadioValue = 0;\r
}\r
//---------------------------------------------------------------------------\r
void __fastcall TNetworkDlg::FormShow( TObject *Sender )\r
Hide();\r
}\r
//---------------------------------------------------------------------------\r
-void __fastcall TNetworkDlg::CheckBoxBroadcastClick( TObject *Sender )\r
-{\r
- ComboBoxBroadcast->Enabled = NOT( ComboBoxBroadcast->Enabled );\r
-}\r
-//---------------------------------------------------------------------------\r
-void __fastcall TNetworkDlg::CheckBoxChannelClick( TObject *Sender )\r
-{\r
- LabelAddress->Enabled = NOT( LabelAddress->Enabled );\r
- ComboBoxAddress->Enabled = NOT( ComboBoxAddress->Enabled );\r
- LabelPort->Enabled = NOT( LabelPort->Enabled );\r
- EditPort->Enabled = NOT( EditPort->Enabled );\r
- UpDownPort->Enabled = NOT( UpDownPort->Enabled );\r
- CheckBoxBroadcast->Enabled = NOT( CheckBoxBroadcast->Enabled );\r
- ComboBoxBroadcast->Enabled = ( NOT( ComboBoxBroadcast->Enabled ) &&\r
- CheckBoxBroadcast->Checked );\r
- ComboBoxChannel->Enabled = NOT( ComboBoxChannel->Enabled );\r
- LabelPortCS->Enabled = NOT( LabelPortCS->Enabled );\r
- EditPortCS->Enabled = NOT( EditPortCS->Enabled );\r
- UpDownPortCS->Enabled = NOT( UpDownPortCS->Enabled );\r
-}\r
-//---------------------------------------------------------------------------\r
void __fastcall TNetworkDlg::BitBtnOkClick( TObject *Sender )\r
{\r
- AnsiString Source, Protocol, Server;\r
- boolean_t b_channel;\r
- boolean_t b_broadcast;\r
+ AnsiString Source, Address;\r
+ AnsiString Channel = ComboBoxCSAddress->Text;\r
+ unsigned int i_channel_port = UpDownCSPort->Position;\r
unsigned int i_port;\r
int i_end = p_main->p_playlist->i_size;\r
\r
Hide();\r
- Server = ComboBoxAddress->Text;\r
\r
/* select added item */\r
if( p_input_bank->pp_input[0] != NULL )\r
p_input_bank->pp_input[0]->b_eof = 1;\r
}\r
\r
- /* Check which protocol was activated */\r
- switch( RadioGroupProtocol->ItemIndex )\r
+ /* Check which option was chosen */\r
+ switch( OldRadioValue )\r
{\r
+ /* UDP */\r
case 0:\r
- Protocol = "udp";\r
+ config_PutIntVariable( "network-channel", FALSE );\r
+ i_port = UpDownUDPPort->Position;\r
+\r
+ /* Build source name */\r
+ Source = "udp:@:" + IntToStr( i_port );\r
+\r
+ intf_PlaylistAdd( p_main->p_playlist, PLAYLIST_END, Source.c_str() );\r
+\r
+ /* update the display */\r
+ p_intfGlobal->p_sys->p_playlist->UpdateGrid( p_main->p_playlist );\r
+\r
+ intf_PlaylistJumpto( p_main->p_playlist, i_end - 1 );\r
break;\r
+\r
+ /* UDP Multicast */\r
case 1:\r
- intf_ErrMsg( "intf error: rtp protocol not yet implemented" );\r
- return;\r
- case 2:\r
- Protocol = "http";\r
- break;\r
- }\r
+ config_PutIntVariable( "network-channel", FALSE );\r
+ Address = ComboBoxMulticastAddress->Text;\r
+ i_port = UpDownMulticastPort->Position;\r
\r
- /* Manage channel server */\r
- b_channel = CheckBoxChannel->Checked ? TRUE : FALSE;\r
- config_PutIntVariable( "network-channel", b_channel );\r
- if( b_channel )\r
- {\r
- AnsiString Channel = ComboBoxChannel->Text;\r
- unsigned int i_channel_port = UpDownPortCS->Position;\r
+ /* Build source name */\r
+ Source = "udp:@" + Address + ":" + IntToStr( i_port );\r
\r
- if( p_main->p_channel == NULL )\r
- {\r
- network_ChannelCreate();\r
- }\r
+ intf_PlaylistAdd( p_main->p_playlist, PLAYLIST_END, Source.c_str() );\r
\r
- config_PutPszVariable( "channel-server", Channel.c_str() );\r
- if( i_channel_port < 65536 )\r
- {\r
+ /* update the display */\r
+ p_intfGlobal->p_sys->p_playlist->UpdateGrid( p_main->p_playlist );\r
+\r
+ intf_PlaylistJumpto( p_main->p_playlist, i_end - 1 );\r
+ break;\r
+\r
+ /* Channel server */\r
+ case 2:\r
+ config_PutIntVariable( "network-channel", TRUE );\r
+ config_PutPszVariable( "channel-server", Channel.c_str() );\r
config_PutIntVariable( "channel-port", i_channel_port );\r
- }\r
\r
- p_intfGlobal->p_sys->b_playing = 1;\r
- }\r
- else\r
- {\r
- /* Get the port number and make sure it will not\r
- * overflow 5 characters */\r
- i_port = UpDownPort->Position;\r
- if( i_port > 65535 )\r
- {\r
- intf_ErrMsg( "intf error: invalid port %i", i_port );\r
- }\r
+ if( p_main->p_channel == NULL )\r
+ {\r
+ network_ChannelCreate();\r
+ }\r
\r
- /* do we have a broadcast address */\r
- b_broadcast = CheckBoxBroadcast->Checked ? TRUE : FALSE;\r
- if( b_broadcast )\r
- {\r
- AnsiString Broadcast = ComboBoxBroadcast->Text;\r
+ p_intfGlobal->p_sys->b_playing = 1;\r
+ break;\r
+\r
+ /* HTTP */\r
+ case 3:\r
+ config_PutIntVariable( "network-channel", FALSE );\r
+ Address = EditHTTPURL->Text;\r
\r
/* Build source name */\r
- Source = Protocol + "://" + Server + "@:" + IntToStr( i_port )\r
- + "/" + Broadcast;\r
- }\r
- else\r
- {\r
- /* Build source name */\r
- Source = Protocol + "://" + Server + "@:" + IntToStr( i_port );\r
- }\r
+ Source = "http:" + Address;\r
+\r
+ intf_PlaylistAdd( p_main->p_playlist, PLAYLIST_END, Source.c_str() );\r
\r
- intf_PlaylistAdd( p_main->p_playlist, PLAYLIST_END, Source.c_str() );\r
- \r
- /* update the display */\r
- p_intfGlobal->p_sys->p_playlist->UpdateGrid( p_main->p_playlist );\r
+ /* update the display */\r
+ p_intfGlobal->p_sys->p_playlist->UpdateGrid( p_main->p_playlist );\r
\r
- intf_PlaylistJumpto( p_main->p_playlist, i_end - 1 );\r
+ intf_PlaylistJumpto( p_main->p_playlist, i_end - 1 );\r
+ break;\r
}\r
}\r
//---------------------------------------------------------------------------\r
+void __fastcall TNetworkDlg::ChangeEnabled( int i_selected )\r
+{\r
+ switch( i_selected )\r
+ {\r
+ case 0:\r
+ LabelUDPPort->Enabled = NOT( LabelUDPPort->Enabled );\r
+ EditUDPPort->Enabled = NOT( EditUDPPort->Enabled );\r
+ UpDownUDPPort->Enabled = NOT( UpDownUDPPort->Enabled );\r
+ break;\r
+ case 1:\r
+ LabelMulticastAddress->Enabled =\r
+ NOT( LabelMulticastAddress->Enabled );\r
+ ComboBoxMulticastAddress->Enabled =\r
+ NOT( ComboBoxMulticastAddress->Enabled );\r
+ LabelMulticastPort->Enabled = NOT( LabelMulticastPort->Enabled );\r
+ EditMulticastPort->Enabled = NOT( EditMulticastPort->Enabled );\r
+ UpDownMulticastPort->Enabled = NOT( UpDownMulticastPort->Enabled );\r
+ break;\r
+ case 2:\r
+ LabelCSAddress->Enabled = NOT( LabelCSAddress->Enabled );\r
+ ComboBoxCSAddress->Enabled = NOT( ComboBoxCSAddress->Enabled );\r
+ LabelCSPort->Enabled = NOT( LabelCSPort->Enabled );\r
+ EditCSPort->Enabled = NOT( EditCSPort->Enabled );\r
+ UpDownCSPort->Enabled = NOT( UpDownCSPort->Enabled );\r
+ break;\r
+ case 3:\r
+ LabelHTTPURL->Enabled = NOT( LabelHTTPURL->Enabled );\r
+ EditHTTPURL->Enabled = NOT( EditHTTPURL->Enabled );\r
+ break;\r
+ }\r
+}\r
+//---------------------------------------------------------------------------\r
+void __fastcall TNetworkDlg::RadioButtonUDPClick( TObject *Sender )\r
+{\r
+ ChangeEnabled( OldRadioValue );\r
+ OldRadioValue = 0;\r
+ ChangeEnabled( OldRadioValue );\r
+}\r
+//---------------------------------------------------------------------------\r
+void __fastcall TNetworkDlg::RadioButtonMulticastClick( TObject *Sender )\r
+{\r
+ ChangeEnabled( OldRadioValue );\r
+ OldRadioValue = 1;\r
+ ChangeEnabled( OldRadioValue );\r
+}\r
+//---------------------------------------------------------------------------\r
+void __fastcall TNetworkDlg::RadioButtonCSClick( TObject *Sender )\r
+{\r
+ ChangeEnabled( OldRadioValue );\r
+ OldRadioValue = 2;\r
+ ChangeEnabled( OldRadioValue );\r
+}\r
+//---------------------------------------------------------------------------\r
+void __fastcall TNetworkDlg::RadioButtonHTTPClick( TObject *Sender )\r
+{\r
+ ChangeEnabled( OldRadioValue );\r
+ OldRadioValue = 3;\r
+ ChangeEnabled( OldRadioValue );\r
+}\r
+//---------------------------------------------------------------------------\r
\r
object NetworkDlg: TNetworkDlg\r
- Left = 419\r
- Top = 281\r
+ Left = 353\r
+ Top = 273\r
BorderStyle = bsDialog\r
Caption = 'Open network'\r
- ClientHeight = 209\r
- ClientWidth = 386\r
+ ClientHeight = 222\r
+ ClientWidth = 482\r
Color = clBtnFace\r
Font.Charset = DEFAULT_CHARSET\r
Font.Color = clWindowText\r
OnShow = FormShow\r
PixelsPerInch = 96\r
TextHeight = 13\r
- object RadioGroupProtocol: TRadioGroup\r
- Left = 8\r
- Top = 8\r
- Width = 89\r
- Height = 97\r
- Caption = 'Protocol'\r
- ItemIndex = 0\r
- Items.Strings = (\r
- 'TS'\r
- 'RTP'\r
- 'HTTP')\r
+ object BitBtnOk: TBitBtn\r
+ Left = 40\r
+ Top = 184\r
+ Width = 177\r
+ Height = 25\r
TabOrder = 0\r
+ OnClick = BitBtnOkClick\r
+ Kind = bkOK\r
end\r
- object GroupBoxServer: TGroupBox\r
- Left = 104\r
- Top = 8\r
- Width = 273\r
- Height = 97\r
- Caption = 'Server'\r
+ object BitBtnCancel: TBitBtn\r
+ Left = 256\r
+ Top = 184\r
+ Width = 177\r
+ Height = 25\r
TabOrder = 1\r
- object LabelAddress: TLabel\r
- Left = 16\r
- Top = 20\r
- Width = 38\r
+ OnClick = BitBtnCancelClick\r
+ Kind = bkCancel\r
+ end\r
+ object GroupBoxMode: TGroupBox\r
+ Left = 8\r
+ Top = 8\r
+ Width = 465\r
+ Height = 161\r
+ Caption = 'Network mode'\r
+ TabOrder = 2\r
+ object LabelUDPPort: TLabel\r
+ Left = 148\r
+ Top = 34\r
+ Width = 22\r
Height = 13\r
- Caption = 'Address'\r
+ Caption = 'Port:'\r
end\r
- object LabelPort: TLabel\r
- Left = 16\r
- Top = 46\r
- Width = 19\r
+ object LabelMulticastPort: TLabel\r
+ Left = 364\r
+ Top = 66\r
+ Width = 22\r
Height = 13\r
- Caption = 'Port'\r
+ Caption = 'Port:'\r
+ Enabled = False\r
+ end\r
+ object LabelCSPort: TLabel\r
+ Left = 364\r
+ Top = 98\r
+ Width = 22\r
+ Height = 13\r
+ Caption = 'Port:'\r
+ Enabled = False\r
end\r
- object CheckBoxBroadcast: TCheckBox\r
+ object LabelMulticastAddress: TLabel\r
+ Left = 139\r
+ Top = 66\r
+ Width = 41\r
+ Height = 13\r
+ Caption = 'Address:'\r
+ Enabled = False\r
+ end\r
+ object LabelCSAddress: TLabel\r
+ Left = 139\r
+ Top = 98\r
+ Width = 41\r
+ Height = 13\r
+ Caption = 'Address:'\r
+ Enabled = False\r
+ end\r
+ object LabelHTTPURL: TLabel\r
+ Left = 147\r
+ Top = 130\r
+ Width = 25\r
+ Height = 13\r
+ Caption = 'URL:'\r
+ Enabled = False\r
+ end\r
+ object RadioButtonUDP: TRadioButton\r
Left = 16\r
- Top = 72\r
- Width = 73\r
+ Top = 32\r
+ Width = 97\r
Height = 17\r
- Caption = 'Broadcast'\r
+ Caption = 'UDP'\r
+ Checked = True\r
TabOrder = 0\r
- OnClick = CheckBoxBroadcastClick\r
+ TabStop = True\r
+ OnClick = RadioButtonUDPClick\r
end\r
- object EditPort: TEdit\r
- Left = 96\r
- Top = 42\r
- Width = 145\r
- Height = 21\r
+ object RadioButtonMulticast: TRadioButton\r
+ Left = 16\r
+ Top = 64\r
+ Width = 97\r
+ Height = 17\r
+ Caption = 'UDP Multicast'\r
TabOrder = 1\r
- Text = '1234'\r
+ OnClick = RadioButtonMulticastClick\r
end\r
- object ComboBoxAddress: TComboBox\r
- Left = 96\r
- Top = 16\r
- Width = 161\r
- Height = 21\r
- ItemHeight = 13\r
+ object RadioButtonCS: TRadioButton\r
+ Left = 16\r
+ Top = 96\r
+ Width = 97\r
+ Height = 17\r
+ Caption = 'Channel Server'\r
TabOrder = 2\r
- Text = '138.195.131.10'\r
- Items.Strings = (\r
- '138.195.131.10')\r
+ OnClick = RadioButtonCSClick\r
end\r
- object ComboBoxBroadcast: TComboBox\r
- Left = 96\r
- Top = 70\r
- Width = 161\r
- Height = 21\r
- Enabled = False\r
- ItemHeight = 13\r
+ object RadioButtonHTTP: TRadioButton\r
+ Left = 16\r
+ Top = 128\r
+ Width = 97\r
+ Height = 17\r
+ Caption = 'HTTP'\r
TabOrder = 3\r
- Text = '138.195.143.255'\r
- Items.Strings = (\r
- '138.195.143.255')\r
+ OnClick = RadioButtonHTTPClick\r
end\r
- object UpDownPort: TUpDown\r
- Left = 241\r
- Top = 42\r
- Width = 15\r
+ object EditUDPPort: TEdit\r
+ Left = 184\r
+ Top = 30\r
+ Width = 41\r
Height = 21\r
- Associate = EditPort\r
+ TabOrder = 4\r
+ Text = '1234'\r
+ end\r
+ object UpDownUDPPort: TUpDown\r
+ Left = 225\r
+ Top = 30\r
+ Width = 16\r
+ Height = 21\r
+ Associate = EditUDPPort\r
Min = 0\r
Max = 32767\r
Position = 1234\r
- TabOrder = 4\r
+ TabOrder = 5\r
Thousands = False\r
Wrap = False\r
end\r
- end\r
- object GroupBoxChannels: TGroupBox\r
- Left = 8\r
- Top = 112\r
- Width = 369\r
- Height = 57\r
- Caption = 'Channels'\r
- TabOrder = 2\r
- object LabelPortCS: TLabel\r
- Left = 268\r
- Top = 26\r
- Width = 19\r
- Height = 13\r
- Caption = 'Port'\r
+ object EditMulticastPort: TEdit\r
+ Left = 392\r
+ Top = 62\r
+ Width = 41\r
+ Height = 21\r
Enabled = False\r
+ TabOrder = 6\r
+ Text = '1234'\r
end\r
- object CheckBoxChannel: TCheckBox\r
- Left = 8\r
- Top = 24\r
- Width = 97\r
- Height = 17\r
- Caption = 'Channel server'\r
- TabOrder = 0\r
- OnClick = CheckBoxChannelClick\r
- end\r
- object ComboBoxChannel: TComboBox\r
- Left = 112\r
- Top = 22\r
- Width = 137\r
+ object UpDownMulticastPort: TUpDown\r
+ Left = 433\r
+ Top = 62\r
+ Width = 16\r
Height = 21\r
+ Associate = EditMulticastPort\r
Enabled = False\r
- ItemHeight = 13\r
- TabOrder = 1\r
- Text = '138.195.156.232'\r
- Items.Strings = (\r
- '138.195.156.232')\r
+ Min = 0\r
+ Max = 32767\r
+ Position = 1234\r
+ TabOrder = 7\r
+ Thousands = False\r
+ Wrap = False\r
end\r
- object EditPortCS: TEdit\r
- Left = 296\r
- Top = 22\r
+ object EditCSPort: TEdit\r
+ Left = 392\r
+ Top = 94\r
Width = 41\r
Height = 21\r
Enabled = False\r
- TabOrder = 2\r
- Text = '6 010'\r
+ TabOrder = 8\r
+ Text = '6010'\r
end\r
- object UpDownPortCS: TUpDown\r
- Left = 337\r
- Top = 22\r
- Width = 15\r
+ object UpDownCSPort: TUpDown\r
+ Left = 433\r
+ Top = 94\r
+ Width = 16\r
Height = 21\r
- Associate = EditPortCS\r
+ Associate = EditCSPort\r
Enabled = False\r
Min = 0\r
Max = 32767\r
Position = 6010\r
- TabOrder = 3\r
+ TabOrder = 9\r
+ Thousands = False\r
Wrap = False\r
end\r
- end\r
- object BitBtnOk: TBitBtn\r
- Left = 8\r
- Top = 176\r
- Width = 177\r
- Height = 25\r
- Caption = 'OK'\r
- Default = True\r
- ModalResult = 1\r
- TabOrder = 3\r
- OnClick = BitBtnOkClick\r
- end\r
- object BitBtnCancel: TBitBtn\r
- Left = 200\r
- Top = 176\r
- Width = 177\r
- Height = 25\r
- Caption = 'Cancel'\r
- ModalResult = 2\r
- TabOrder = 4\r
- OnClick = BitBtnCancelClick\r
+ object ComboBoxMulticastAddress: TComboBox\r
+ Left = 184\r
+ Top = 62\r
+ Width = 161\r
+ Height = 21\r
+ Enabled = False\r
+ ItemHeight = 13\r
+ TabOrder = 10\r
+ end\r
+ object ComboBoxCSAddress: TComboBox\r
+ Left = 184\r
+ Top = 94\r
+ Width = 161\r
+ Height = 21\r
+ Enabled = False\r
+ ItemHeight = 13\r
+ TabOrder = 11\r
+ Text = '138.195.156.230'\r
+ Items.Strings = (\r
+ '138.195.159.230')\r
+ end\r
+ object EditHTTPURL: TEdit\r
+ Left = 184\r
+ Top = 126\r
+ Width = 265\r
+ Height = 21\r
+ Enabled = False\r
+ TabOrder = 12\r
+ end\r
end\r
end\r
class TNetworkDlg : public TForm\r
{\r
__published: // IDE-managed Components\r
- TRadioGroup *RadioGroupProtocol;\r
- TGroupBox *GroupBoxServer;\r
- TLabel *LabelAddress;\r
- TLabel *LabelPort;\r
- TCheckBox *CheckBoxBroadcast;\r
- TEdit *EditPort;\r
- TComboBox *ComboBoxAddress;\r
- TComboBox *ComboBoxBroadcast;\r
- TUpDown *UpDownPort;\r
- TGroupBox *GroupBoxChannels;\r
- TLabel *LabelPortCS;\r
- TCheckBox *CheckBoxChannel;\r
- TComboBox *ComboBoxChannel;\r
- TEdit *EditPortCS;\r
- TUpDown *UpDownPortCS;\r
TBitBtn *BitBtnOk;\r
TBitBtn *BitBtnCancel;\r
+ TGroupBox *GroupBoxMode;\r
+ TRadioButton *RadioButtonUDP;\r
+ TRadioButton *RadioButtonMulticast;\r
+ TRadioButton *RadioButtonCS;\r
+ TRadioButton *RadioButtonHTTP;\r
+ TLabel *LabelUDPPort;\r
+ TEdit *EditUDPPort;\r
+ TUpDown *UpDownUDPPort;\r
+ TLabel *LabelMulticastPort;\r
+ TEdit *EditMulticastPort;\r
+ TUpDown *UpDownMulticastPort;\r
+ TLabel *LabelCSPort;\r
+ TEdit *EditCSPort;\r
+ TUpDown *UpDownCSPort;\r
+ TLabel *LabelMulticastAddress;\r
+ TComboBox *ComboBoxMulticastAddress;\r
+ TLabel *LabelCSAddress;\r
+ TComboBox *ComboBoxCSAddress;\r
+ TEdit *EditHTTPURL;\r
+ TLabel *LabelHTTPURL;\r
void __fastcall FormShow( TObject *Sender );\r
void __fastcall FormHide( TObject *Sender );\r
- void __fastcall BitBtnCancelClick(TObject *Sender);\r
- void __fastcall CheckBoxBroadcastClick( TObject *Sender );\r
- void __fastcall CheckBoxChannelClick( TObject *Sender );\r
- void __fastcall BitBtnOkClick(TObject *Sender);\r
+ void __fastcall BitBtnCancelClick( TObject *Sender );\r
+ void __fastcall BitBtnOkClick( TObject *Sender );\r
+ void __fastcall RadioButtonUDPClick( TObject *Sender );\r
+ void __fastcall RadioButtonMulticastClick( TObject *Sender );\r
+ void __fastcall RadioButtonCSClick( TObject *Sender );\r
+ void __fastcall RadioButtonHTTPClick( TObject *Sender );\r
private: // User declarations\r
+ int OldRadioValue;\r
+ void __fastcall ChangeEnabled( int i_selected );\r
public: // User declarations\r
__fastcall TNetworkDlg( TComponent* Owner );\r
};\r