예제 #1
0
void SplitIPAndPort( const char* sz, char szIP[], unsigned short& usPort, size_t uiIPBufSize = 16 )
{
	const char* szIPAndPort = sz;

	const char* szPort = strstr( szIPAndPort, ":" );

	if ( szPort ) 
	{
		*szPort++;
		if ( is_numA( szPort ) ) usPort = atoi( szPort );

		size_t uiLen = ( szPort - szIPAndPort );
		if ( uiLen > uiIPBufSize )
			uiLen = uiIPBufSize;

		str_cpyA( szIP, szIPAndPort, uiLen );
	}
	else
	{
		usPort = 0;

		str_cpyA( szIP, szIPAndPort, uiIPBufSize );
	}
}
예제 #2
0
void CServers::SetServerMap( const char* sz )
{
	size_t uiLen = strlen( sz )+1;
	m_szServerMap = (char*)realloc( m_szServerMap, uiLen );
	str_cpyA( m_szServerMap, sz, uiLen );
}
예제 #3
0
/*
---------------------------------------
    FMODEx 类型信息
---------------------------------------
*/
static bool_t
fmodex_info (
  __CR_IO__ iXMM_FMOD*  port
    )
{
    sint_t              bits;
    sint_t              chns;
    ansi_t*             allx;
    const ansi_t*       type;
    const ansi_t*       fmts;
    FMOD_RESULT         result;
    FMOD_SOUND_TYPE     snd_type;
    FMOD_SOUND_FORMAT   snd_fmts;

    /* 获取所有信息 */
    result = FMOD_Sound_GetFormat(port->m_snd, &snd_type,
                        &snd_fmts, &chns, &bits);
    if (result != FMOD_OK)
        return (FALSE);

    /* 音频格式类型 */
    switch (snd_type)
    {
        default:
            type = "3rd party / unknown plugin format";
            break;

        case FMOD_SOUND_TYPE_AIFF:
            type = "AIFF";
            break;

        case FMOD_SOUND_TYPE_ASF:
            type = "Microsoft Advanced Systems Format (ie WMA/ASF/WMV)";
            break;

        case FMOD_SOUND_TYPE_AT3:
            type = "Sony ATRAC 3 format";
            break;

        case FMOD_SOUND_TYPE_CDDA:
            type = "Digital CD audio";
            break;

        case FMOD_SOUND_TYPE_DLS:
            type = "Sound font / downloadable sound bank";
            break;

        case FMOD_SOUND_TYPE_FLAC:
            type = "FLAC lossless codec";
            break;

        case FMOD_SOUND_TYPE_FSB:
            type = "FMOD Sample Bank";
            break;

        case FMOD_SOUND_TYPE_GCADPCM:
            type = "Nintendo GameCube/Wii ADPCM";
            break;

        case FMOD_SOUND_TYPE_IT:
            type = "Impulse Tracker";
            break;

        case FMOD_SOUND_TYPE_MIDI:
            type = "MIDI";
            break;

        case FMOD_SOUND_TYPE_MOD:
            type = "Protracker / Fasttracker MOD";
            break;

        case FMOD_SOUND_TYPE_MPEG:
            type = "MP2/MP3 MPEG";
            break;

        case FMOD_SOUND_TYPE_OGGVORBIS:
            type = "Ogg vorbis";
            break;

        case FMOD_SOUND_TYPE_PLAYLIST:
            type = "Information only from ASX/PLS/M3U/WAX playlists";
            break;

        case FMOD_SOUND_TYPE_RAW:
            type = "Raw PCM data";
            break;

        case FMOD_SOUND_TYPE_S3M:
            type = "ScreamTracker 3";
            break;

        case FMOD_SOUND_TYPE_SF2:
            type = "Sound font 2 format";
            break;

        case FMOD_SOUND_TYPE_USER:
            type = "User created sound";
            break;

        case FMOD_SOUND_TYPE_WAV:
            type = "Microsoft WAV";
            break;

        case FMOD_SOUND_TYPE_XM:
            type = "FastTracker 2 XM";
            break;

        case FMOD_SOUND_TYPE_XMA:
            type = "Xbox360 XMA";
            break;

        case FMOD_SOUND_TYPE_VAG:
            type = "PlayStation Portable ADPCM VAG format";
            break;

        case FMOD_SOUND_TYPE_AUDIOQUEUE:
            type = "iPhone hardware decoder, supports AAC, ALAC and MP3";
            break;

        case FMOD_SOUND_TYPE_XWMA:
            type = "Xbox360 XWMA";
            break;

        case FMOD_SOUND_TYPE_BCWAV:
            type = "3DS BCWAV container format for DSP ADPCM and PCM";
            break;

        case FMOD_SOUND_TYPE_AT9:
            type = "NGP ATRAC 9 format";
            break;

        case FMOD_SOUND_TYPE_VORBIS:
            type = "Raw vorbis";
            break;

        case FMOD_SOUND_TYPE_MEDIA_FOUNDATION:
            type = "Microsoft Media Foundation wrappers, supports ASF/WMA";
            break;
    }

    /* 音频数据类型 */
    switch (snd_fmts)
    {
        default:
            fmts = "Unitialized / unknown";
            break;

        case FMOD_SOUND_FORMAT_PCM8:
            fmts = "8bit integer PCM data";
            break;

        case FMOD_SOUND_FORMAT_PCM16:
            fmts = "16bit integer PCM data";
            break;

        case FMOD_SOUND_FORMAT_PCM24:
            fmts = "24bit integer PCM data";
            break;

        case FMOD_SOUND_FORMAT_PCM32:
            fmts = "32bit integer PCM data";
            break;

        case FMOD_SOUND_FORMAT_PCMFLOAT:
            fmts = "32bit floating point PCM data";
            break;

        case FMOD_SOUND_FORMAT_GCADPCM:
            fmts = "Compressed Nintendo 3DS/Wii DSP data";
            break;

        case FMOD_SOUND_FORMAT_IMAADPCM:
            fmts = "Compressed IMA ADPCM data";
            break;

        case FMOD_SOUND_FORMAT_VAG:
            fmts = "Compressed PlayStation Portable ADPCM data";
            break;

        case FMOD_SOUND_FORMAT_HEVAG:
            fmts = "Compressed PSVita ADPCM data";
            break;

        case FMOD_SOUND_FORMAT_XMA:
            fmts = "Compressed Xbox360 XMA data";
            break;

        case FMOD_SOUND_FORMAT_MPEG:
            fmts = "Compressed MPEG layer 2 or 3 data";
            break;

        case FMOD_SOUND_FORMAT_CELT:
            fmts = "Compressed CELT data";
            break;

        case FMOD_SOUND_FORMAT_AT9:
            fmts = "Compressed PSVita ATRAC9 data";
            break;

        case FMOD_SOUND_FORMAT_XWMA:
            fmts = "Compressed Xbox360 xWMA data";
            break;

        case FMOD_SOUND_FORMAT_VORBIS:
            fmts = "Compressed Vorbis data";
            break;
    }

    /* 合成说明字符串 */
    allx = str_fmtA("%s (%s) - %uch / %ubits", type, fmts, chns, bits);
    if (allx == NULL)
        return (FALSE);
    str_cpyA(port->m_inf, allx);
    mem_free(allx);
    return (TRUE);
}
예제 #4
0
void CServers::SetServerPass( const char* sz )
{
	size_t uiLen = strlen( sz )+1;
	m_szPass = (char*)realloc( m_szPass, uiLen );
	str_cpyA( m_szPass, sz, uiLen );
}