package allg5

// #include <allegro5/allegro.h>
import "C"

type Monitor struct {
	X1, Y1 int
	X2, Y2 int
}

func monitor(m *C.ALLEGRO_MONITOR_INFO) Monitor {
	return Monitor{int(m.x1), int(m.y1), int(m.x2), int(m.y2)}
}

func DefaultMonitor() Monitor {
	var m C.ALLEGRO_MONITOR_INFO
	C.al_get_monitor_info(C.ALLEGRO_DEFAULT_DISPLAY_ADAPTER, &m)
	return monitor(&m)
}

func Monitors() []Monitor {
	var n = NumberOfVideoAdapters()
	var mons []Monitor
	var m C.ALLEGRO_MONITOR_INFO
	for i := 0; i < n; i++ {
		C.al_get_monitor_info(C.int(i), &m)
		mons = append(mons, monitor(&m))
	}
	return mons
}

func NumberOfVideoAdapters() int {
	return int(C.al_get_num_video_adapters())
}