 |
|

27.05.2013, 14:13
|
|
Постоянный
Регистрация: 19.03.2013
Сообщений: 586
С нами:
6920791
Репутация:
113
|
|
Всем привет, это урок по добавлению Shoutcast isecast потоковых радио в s0beit Для начала качаем архив приложенный к теме. Все из этого архива кидаем в папку src Далее заходим в main.h И ко всем include добавим
Код:
Код:
#include "bass.h"
#pragma comment(lib, "bass.lib")
Далее идем в cheat.h Там найдем
Код:
Код:
struct cheat_state_generic
И после этого добавим
Код:
Теперь идем в samp.cpp
Найдем
Код:
Код:
// 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;
}
Далее там же найдем
Код:
Код:
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.." );
}
Далее идем в new_menu.cpp
Ко всем меню добавим
Код:
Код:
TwAddButton(twBar_SPCheats, "Play", play, NULL, "");
И еще там же найдем
Код:
И после добавим
Код:
Код:
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
|
|
|

27.05.2013, 14:15
|
|
Новичок
Регистрация: 11.11.2004
Сообщений: 0
С нами:
11312514
Репутация:
0
|
|
Спасибо за полезный урок
|
|
|

27.05.2013, 14:21
|
|
Участник форума
Регистрация: 29.04.2013
Сообщений: 141
С нами:
6861401
Репутация:
0
|
|
Классный урок !!!
|
|
|

27.05.2013, 14:26
|
|
Познающий
Регистрация: 31.03.2013
Сообщений: 84
С нами:
6903092
Репутация:
58
|
|
Вот ето афигено радио в собе
|
|
|

27.05.2013, 14:31
|
|
Участник форума
Регистрация: 19.03.2013
Сообщений: 101
С нами:
6920791
Репутация:
113
|
|
Сообщение от BaHeK
Вот ето афигено радио в собе
Да но зачем оно ?
Далее там же найдем
Код:
void cmd_pickup ( char *params )
я это не нашел
|
|
|

27.05.2013, 14:34
|
|
Познающий
Регистрация: 31.03.2013
Сообщений: 84
С нами:
6903092
Репутация:
58
|
|
Сообщение от fondamentolok
Да но зачем оно ?
Далее там же найдем
Код:
void cmd_pickup ( char *params )
я это не нашел
ну во 1 есть сервера на которих нету радио а 2 рих ты ставиш свою радио врлну которая тибе нравитса и слушаеш ето афигено а Лёха молорик
|
|
|

27.05.2013, 14:35
|
|
Участник форума
Регистрация: 19.03.2013
Сообщений: 101
С нами:
6920791
Репутация:
113
|
|
Сообщение от BaHeK
ну во 1 есть сервера на которих нету радио а 2 рих ты ставиш свою радио врлну которая тибе нравитса и слушаеш ето афигено а Лёха молорик
О да ты прав + можно в меню соба вшить и будет ЗБС )
Не подскажешь как найти void cmd_pickup ( char *params ) у меня не находит
|
|
|

27.05.2013, 14:41
|
|
Познающий
Регистрация: 31.03.2013
Сообщений: 84
С нами:
6903092
Репутация:
58
|
|
Сообщение от fondamentolok
О да ты прав + можно в меню соба вшить и будет ЗБС )
Не подскажешь как найти void cmd_pickup ( char *params ) у меня не находит
собейт у тибя FYP'a??????
|
|
|

27.05.2013, 14:43
|
|
Познающий
Регистрация: 31.03.2013
Сообщений: 84
С нами:
6903092
Репутация:
58
|
|
если да то вот он
void cmd_pickup ( char *params )
{
if ( !strlen( params ) )
{
addMessageToChatWindow( "USAGE: /m0d_pickup " );
return;
}
g_RakClient->SendPickUp( atoi( params ) );
}
|
|
|

27.05.2013, 14:43
|
|
Участник форума
Регистрация: 19.03.2013
Сообщений: 101
С нами:
6920791
Репутация:
113
|
|
Сообщение от BaHeK
собейт у тибя FYP'a??????
Голубя
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|