Всем привет, это урок по добавлению Shoutcast isecast потоковых радио в s0beit
Для начала качаем архив приложенный к теме.
Все из этого архива кидаем в папку src
Далее заходим в main.h
И ко всем include добавим
Код:
#include "bass.h"
#pragma comment(lib, "bass.lib")
Далее идем в cheat.h
Там найдем
Код:
struct cheat_state_generic
Код:
int play;
Найдем
Код:
// start chatbox logging
Код:
if (cheat_state->_generic.play == 1)
{
HSTREAM chan;
BASS_StreamFree(chan);
DWORD r;
chan=BASS_StreamCreateURL("http://online.radiorecord.ru:8102/club_64",0,BASS_STREAM_BLOCK|BASS_STREAM_STATUS|BASS_STREAM_AUTOFREE,StatusProc,(void*)r); // open URL
BASS_ChannelPlay(chan,FALSE);
cheat_state->_generic.play = 0;
}
"http://online.radiorecord.ru:8102/club_64" вот это можно сделать через setting
Далее там же найдем
Код:
void cmd_pickup ( char *params )
И перед ним добавим
Код:
void CALLBACK StatusProc(const void *buffer, DWORD length, void *user)
{
if (buffer && !length && (DWORD)user==0) // got HTTP/ICY tags, and this is still the current request
addMessageToChatWindow( "loading.." );
}
Ко всем меню добавим
Код:
TwAddButton(twBar_SPCheats, "Play", play, NULL, "");
Код:
// MENU FUNCTIONS
Код:
void TW_CALL play(void *)
{
cheat_state->_generic.play ^= 1;
}
Вот выкладываю свой полный код
Код:
if (KEY_DOWN('R') && KEY_PRESSED('Y'))
{
BASS_Start();
HSTREAM chan;
BASS_StreamFree(chan);
DWORD r;
chan = BASS_StreamCreateURL("http://online.radiorecord.ru:8102/club_64", NULL, BASS_STREAM_BLOCK|BASS_STREAM_STATUS|BASS_STREAM_AUTOFREE,StatusProc,(void*)r);
BASS_ChannelPlay(chan,FALSE);
addMessageToChatWindow( "Radio started" );
}
if (KEY_DOWN('R') && KEY_PRESSED('U'))
{
BASS_Stop();
}
if (KEY_DOWN('R') && KEY_PRESSED('N'))
{
HSTREAM chan;
BASS_StreamFree(chan);
DWORD r;
chan = BASS_StreamCreateURL("http://online.radiorecord.ru:8102/club_64", NULL, BASS_STREAM_BLOCK|BASS_STREAM_STATUS|BASS_STREAM_AUTOFREE,StatusProc,(void*)r);
const char *meta=BASS_ChannelGetTags(chan,BASS_TAG_META);
if (meta)
{
const char *p=strstr(meta,"StreamTitle='");
if (p)
{
const char *p2=strstr(p,"';");
if (p2)
{
char *t=strdup(p+13);
t[p2-(p+13)]=0;
addMessageToChatWindow( "%s",t);
}
}
}
else
{
meta=BASS_ChannelGetTags(chan,BASS_TAG_OGG);
if (meta)
{
const char *artist=NULL,*title=NULL,*p=meta;
for (;*p;p+=strlen(p)+1)
{
if (!strnicmp(p,"artist=",7))
artist=p+7;
if (!strnicmp(p,"title=",6))
title=p+6;
}
if (title)
{
if (artist)
{
char text[100];
_snprintf(text,sizeof(text),"%s - %s",artist,title);
addMessageToChatWindow( "%s",text);
}
else
{
addMessageToChatWindow( "%s",title);
}
}
}
}
}
С вами был Jesus Специально для сайта BlastHack.Net
При копировании указывать источник BlastHack.Net
Screen
ВНИМАНИЕ: У КОГО WINDOWS 8 И VS 2012 И ВЫЛАЗИЕТ ОШИБКА SAFESEH
Делаем следующее
Откройте диалоговое окно "Страницы свойств проекта".
Выберите папку Компоновщик.Выберите страницу свойств Командная строка.Введите параметр в поле Дополнительные параметры.
/SAFESEH:NO