Zloy_Gelud, Огромное спасибо!
И еще вопрос по той же bass. Создаю синхронизатор, который срабатывает при обновлении трека на станции. Создал по примерах callback-функцию, но при обновлении песни, программа вылетает.
Можно ли через MemoryEx создавать callback-функции?
Код: require "alien"
bass = alien.load(_SourceFolder.."\\bass.dll")
--callback
function cl_bak(handle,channel,data,user)
bass.BASS_ChannelGetTags:types{ret = "string", "ulong", "ulong", abi="stdcall"}
meta = bass.BASS_ChannelGetTags(current_chanell, 5)
Dialog.Message("next song", meta);
end
callback_func = alien.callback(cl_bak,{"ulong","ulong","ulong","ulong",abi="stdcall"})
bass.BASS_ChannelSetSync:types{"uint","uint","uint","callback","uint", abi="stdcall"};
BASS_SYNC_META = 4;
--init
bass.BASS_Init:types{"int", "uint", "uint", "int", "uint", abi="stdcall"}
init = bass.BASS_Init(-1, 44100, 0, 0, 0)
if init ~= 0 then
bass.BASS_StreamCreateURL:types{"string", "uint", "uint", "int", "uint", abi="stdcall"}
current_chanell = bass.BASS_StreamCreateURL("http://sc2c-sjc.1.fm:7700", 0, 0, 0, 0)
if current_chanell ~= 0 then
bass.BASS_ChannelPlay:types{"ulong", "int", abi="stdcall"}
isplay = bass.BASS_ChannelPlay(current_chanell, 0)
if isplay ~= 0 then
bass.BASS_ChannelGetTags:types{ret = "string", "ulong", "ulong", abi="stdcall"}
meta = bass.BASS_ChannelGetTags(current_chanell, 5)
sync_id = bass.BASS_ChannelSetSync(current_chanell,BASS_SYNC_META,0,callback_func,0)
Dialog.Message("song", meta)
end
end
end
И еще вопрос по той же bass. Создаю синхронизатор, который срабатывает при обновлении трека на станции. Создал по примерах callback-функцию, но при обновлении песни, программа вылетает.
Можно ли через MemoryEx создавать callback-функции?
Код: require "alien"
bass = alien.load(_SourceFolder.."\\bass.dll")
--callback
function cl_bak(handle,channel,data,user)
bass.BASS_ChannelGetTags:types{ret = "string", "ulong", "ulong", abi="stdcall"}
meta = bass.BASS_ChannelGetTags(current_chanell, 5)
Dialog.Message("next song", meta);
end
callback_func = alien.callback(cl_bak,{"ulong","ulong","ulong","ulong",abi="stdcall"})
bass.BASS_ChannelSetSync:types{"uint","uint","uint","callback","uint", abi="stdcall"};
BASS_SYNC_META = 4;
--init
bass.BASS_Init:types{"int", "uint", "uint", "int", "uint", abi="stdcall"}
init = bass.BASS_Init(-1, 44100, 0, 0, 0)
if init ~= 0 then
bass.BASS_StreamCreateURL:types{"string", "uint", "uint", "int", "uint", abi="stdcall"}
current_chanell = bass.BASS_StreamCreateURL("http://sc2c-sjc.1.fm:7700", 0, 0, 0, 0)
if current_chanell ~= 0 then
bass.BASS_ChannelPlay:types{"ulong", "int", abi="stdcall"}
isplay = bass.BASS_ChannelPlay(current_chanell, 0)
if isplay ~= 0 then
bass.BASS_ChannelGetTags:types{ret = "string", "ulong", "ulong", abi="stdcall"}
meta = bass.BASS_ChannelGetTags(current_chanell, 5)
sync_id = bass.BASS_ChannelSetSync(current_chanell,BASS_SYNC_META,0,callback_func,0)
Dialog.Message("song", meta)
end
end
end