/* Copyright (C) 2003-2006 Andrey Nazarov 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-1307, USA. */ #include "ui_local.h" /* ============================================================================= NETWORK SETUP MENU ============================================================================= */ typedef struct m_network_s { menuFrameWork_t menu; menuSpinControl_t connection; menuField_t rate; menuField_t maxpackets; menuField_t maxfps; menuSpinControl_t async; } m_network_t; static m_network_t m_network; #define ID_CONNECTION 103 #define ID_PARAMS 104 static const char *connectionNames[] = { "28.8 Modem", "33.6 Modem", "Single ISDN", "Dual ISDN/Cable", "T1/LAN", "User defined", NULL }; static const char *yesnoNames[] = { "no", "yes", NULL }; static const int connectionValues[][2] = { // FIXME - are these values correct? { 2700, 30 }, { 3200, 30 }, { 5000, 60 }, { 10000, 60 }, { 25000, 120 } }; static const int numConnectionValues = sizeof( connectionValues ) / sizeof( connectionValues[0] ); static void SetInitialConnectionParams( void ) { IF_Init( &m_network.rate.field, 6, 6, cvar.VariableString( "rate" ) ); IF_Init( &m_network.maxpackets.field, 6, 6, cvar.VariableString( "cl_maxpackets" ) ); IF_Init( &m_network.maxfps.field, 6, 6, cvar.VariableString( "cl_maxfps" ) ); } static void ConnectionCallback( void ) { if( m_network.connection.curvalue == numConnectionValues ) { SetInitialConnectionParams(); return; } IF_Replace( &m_network.rate.field, va( "%i", connectionValues[m_network.connection.curvalue][0] ) ); IF_Replace( &m_network.maxpackets.field, va( "%i", connectionValues[m_network.connection.curvalue][1] ) ); } static void SetConnectionType( void ) { int rate, maxpackets, maxfps; int i; rate = atoi( m_network.rate.field.text ); maxpackets = atoi( m_network.maxpackets.field.text ); maxfps = atoi( m_network.maxfps.field.text ); for( i=0 ; i