Files
Paradise/code/modules/media/broadcast/receiver.dm
2014-07-27 13:49:50 -04:00

47 lines
1.3 KiB
Plaintext

// frequency => list(listeners)
var/global/media_receivers=list()
///////////////////////
// RECEIVERS
///////////////////////
/obj/machinery/media/receiver
var/media_frequency = 1015 // 123.4 MHz
var/media_crypto = null // Crypto key
/obj/machinery/media/receiver/New()
..()
connect_frequency()
/obj/machinery/media/receiver/proc/receive_broadcast(var/url="", var/start_time=0)
media_url = url
media_start_time = start_time
update_music()
/obj/machinery/media/receiver/proc/connect_frequency()
// This is basically media_receivers["[media_frequency]"] += src
var/list/receivers=list()
var/freq = num2text(media_frequency)
if(freq in media_receivers)
receivers = media_receivers[freq]
receivers.Add(src)
media_receivers[freq]=receivers
// Check if there's a broadcast to tune into.
if(freq in media_transmitters)
// Pick a random broadcast in that frequency.
var/obj/machinery/media/transmitter/B = pick(media_transmitters[freq])
if(B.media_crypto == media_crypto) // Crypto-key check, if needed.
receive_broadcast(B.media_url,B.media_start_time)
/obj/machinery/media/receiver/proc/disconnect_frequency()
var/list/receivers=list()
var/freq = num2text(media_frequency)
if(freq in media_receivers)
receivers = media_receivers[freq]
receivers.Remove(src)
media_receivers[freq]=receivers
receive_broadcast()