http://realworldremixed.com/remix_track.php?remix_id=UtW_jxz0Bt7sShAd
but my radio player wont, because it abbreviates the addy.. to the last bit..
UtW_jxz0Bt7sShAd
and therefore i cant use that script to play sources like the above..
but i like realworld remixed... and though i can hear the stuff if i open the realworld flash player out of SL or put the addy`s in my SL media.. i would like to be able to select stuff to play using an in SL player.. that can use addys like the above
The script my radio player uses below..... can anyone suggest a solution?
// -- Bucky's Radio - 2.6.4
// an update/expansion of an earlier script
// [email]Bucky.Barkley@gmail.com[/email] - August 2006
// based on...
//=======Land Radio Script =======
//
// assembled for this purpose by
// sky Honey and Dianne Mechanique
// based on the work of others
//
//===========9/12/05==============
// which notecard would you like to use?
string _notecard = "stations-short";
integer chatChannel = 77;
string HELP_MSG = "touch for station dialog, or use ch 77 to change stations (example \"/77 3\"
";list _radioURLs;
list _radioStations;
list theStations;
integer _linenum = 0;
integer curStationOffset = 0;
integer stationChunk = 6;
integer curStationEnd = 5;
integer totalStations = 0;
integer dialogActive = 0;
integer curIdx = -1;
string dispStationStr = "";
string NEXT_MSG = "Next >>";
string PREV_MSG = "<< Prev";
string LIST_MSG = "List";
string CUR_SET = "c";
string ALL_SET = "a";
list cmdNextChunk = [">>", "next", "Next", NEXT_MSG];
list cmdPrevChunk = ["<<", "prev", "Prev", PREV_MSG];
list cmdLsCur = ["ls", "list", LIST_MSG];
list cmdLsAll = ["la", "listall"];
list cmdSearch = ["s", "search"];
string newURL;
string newDesc;
//-----------------------
reset_radio() {
llSetText("starting radio ....", // message to display
<1,0,0>, // color: <red,green,blue>
1.0 ); // 1.0 = 100% opaque, 0.0 = transparent
llListen(77, "", "", ""
;curStationOffset = 0;
curStationEnd = 5;
_linenum = 0;
dialogActive = 0;
_radioURLs = [];
_radioStations = [];
totalStations = 0;
curIdx = -1;
dispStationStr = "";
llGetNotecardLine(_notecard, _linenum);
}
add_station(string line) {
list words = llParseString2List(line, [" ", " ", "="], []);
if (llGetListLength(words) < 2) {
return;
}
string url = llList2String(words, llGetListLength(words) - 1);
string station = "";
integer i;
for (i=0; i<llGetListLength(words) - 1; i++) {
if (llStringLength(station) > 0) {
station += " ";
}
station += llList2String(words, i);
}
_radioURLs += ;
_radioStations += [station];
}
curStations() {
theStations = [PREV_MSG, LIST_MSG, NEXT_MSG];
integer i;
dispStationStr = "";
// llWhisper(0, "offset: " + (string)curStationOffset);
// llWhisper(0, "end: " + (string)curStationEnd);
for (i = curStationOffset; i <= curStationEnd; i++) {
if (curIdx == i) {
dispStationStr += "*";
} else {
dispStationStr += " ";
}
dispStationStr += (string) (i + 1) + ") ";
dispStationStr += llList2String(_radioStations, i);
dispStationStr += "\n";
theStations += (string)(i + 1);
}
}
doNextSet() {
curStationOffset += stationChunk;
curStationEnd = curStationOffset + (stationChunk - 1);
if (curStationOffset >= totalStations) {
curStationOffset = 0;
curStationEnd = curStationOffset + (stationChunk - 1);
}
if (curStationEnd >= totalStations) {
curStationEnd = totalStations - 1;
}
}
doPrevSet() {
if (curStationOffset > 1 && ((curStationOffset - stationChunk) < 1)) {
curStationOffset = 0;
} else {
curStationOffset -= stationChunk;
}
curStationEnd = curStationOffset + (stationChunk - 1);
if (curStationEnd >= totalStations) {
curStationEnd = totalStations - 1;
}
if (curStationOffset < 0) {
curStationEnd = totalStations - 1;
curStationOffset = totalStations - (stationChunk - 1);
}
}
doListStations(string mode) {
integer i;
integer startPos;
integer endPos;
if (mode == "a") {
startPos = 0;
endPos = totalStations - 1;
} else {
startPos = curStationOffset;
endPos = curStationEnd;
}
for (i = startPos; i <= endPos; i++) {
string newURL = llList2String(_radioURLs, i);
string newDesc = llList2String(_radioStations, i);
llSay(0, (string)(i + 1) + ": " + newDesc + " = " + newURL);
}
}
doSearch(string theTerm) {
integer i;
llSay(0, "the term is " + theTerm);
for (i = 0; i < totalStations; i++) {
string curString = llList2String(_radioStations, i);
if (llSubStringIndex(curString, theTerm) != -1) {
string newURL = llList2String(_radioURLs, i);
llSay(0, (string)(i + 1) + ": " + curString + " = " + newURL);
}
}
}
//-----------------------
default {
on_rez(integer start_param) {
reset_radio();
}
state_entry() {
reset_radio();
}
changed(integer change) {
if (change & CHANGED_INVENTORY) {
reset_radio();
}
}
dataserver(key query_id, string data) {
if (data != EOF) {
add_station(data);
_linenum++;
if (_linenum % 5 == 0) {
llSetText("starting: \n" + (string)_linenum + " stations ...", // message to display
<1,0,0>, // color: <red,green,blue>
1.0 ); // 1.0 = 100% opaque, 0.0 = transparent
}
llGetNotecardLine(_notecard, _linenum);
return;
}
llListen(93, "", NULL_KEY, "");
totalStations = llGetListLength(_radioURLs);
llSay(0, HELP_MSG);
dialogActive = 1;
llSetText("", <1,0,0>, 1.0 );
}
touch_start(integer touchNumber) {
curStations();
llDialog(llDetectedKey(0),
dispStationStr,
theStations, 93);
}
listen(integer channel, string name, key id, string message) {
if (dialogActive == 0) {
llWhisper(0, " ... still loading stations ...");
return;
}
if (message == "") {
message = "cur";
}
list words = llParseString2List(message, [" ", " ", "="], []);
list testFind = llList2List(words, 0, 0);
if (llListFindList(cmdNextChunk, testFind) != -1) {
doNextSet();
curStations();
if (channel == chatChannel) {
doListStations(CUR_SET);
} else {
llDialog(id, dispStationStr,theStations, 93);
}
return;
}
else if (llListFindList(cmdPrevChunk, testFind) != -1) {
doPrevSet();
curStations();
if (channel == chatChannel) {
doListStations(CUR_SET);
} else {
llDialog(id, dispStationStr, theStations, 93);
}
return;
}
else if (llListFindList(cmdSearch, testFind) != -1) {
doSearch(message);
return;
}
else if (llListFindList(cmdLsAll, testFind) != -1) {
doListStations(ALL_SET);
return;
}
else if (llListFindList(cmdLsCur, testFind) != -1) {
doListStations(CUR_SET);
return;
}
else if ((integer)message > 0 && (integer)message < 256) {
curIdx = (integer)message - 1;
string newURL = llList2String(_radioURLs, curIdx);
string newDesc = llList2String(_radioStations, curIdx);
llSay(0, "setting station " + message + ":");
llSay(0, newDesc + " = " + newURL);
llSetParcelMusicURL(newURL);
}
}
}