mainmenu "P-RAD configuration"

comment "Readsb input config"

config BASE_URL
	string "HTTP backend base URL"
	default "http://127.0.0.1:8200"
	help
	  Base URL of the backend the display fetches
	  receiver and aircraft JSON from.


comment "Main display configuration"

config AUTOSCALE
	bool "Autoscale range to fardest aircraft"
	default y
	help
	  Dynamically adjust the displayed range so the
	  fardest aircraft stays on screen. When disabled
	  the range is fixed (see MAX_RANGE).

if AUTOSCALE

config RANGE_PADDING
	int "Autoscale range padding (km)"
	range 1 65535
	default 20
	help
	  Padding in km added around the fardest aircraft distance.

endif

config MAX_RANGE
	int "Maximum range (km)"
	range 1 65535
	default 500
	help
	  Fixed range when autoscale is off, initial range when on.

config FIRST_RING_DISTANCE
	int "Distance of first range ring from the center (km)"
	range 1 65535
	default 50
	help
	  Distance of the first ring from the center of the screen.

config TIME_BASED_VECTOR_LENGHT
	int "Lenght of time based vector (minutes)"
	range 1 8
	default 2
	help
	  Time in minutes for time-Based vector represented by line stating in the middle of the an aircraft icon,
	  going in distance of travel the lenght of this line is controled by this setting.
	  For example if set to 2 minutes the line will end where the plane be in 2 minutes,
	  if direction and speed does not change.

config VECTOR_FOLLOW_TRACK_RATE
	bool "Time based vector follows change of track"
	default 1
	help
	  Make Time based vector follows change of track of aircraft.
	  This option will turn the vector from line into curve.
	  This is of course be more computationaly expensive.

config CHARACTER_SPACING
	int "Spacing between character in pixels"
	range 1 255
	default 1

comment "Receiver configuration"

config FALLBACK_LAT
	string "Fallback receiver latitude"
	default "50.000000"
	help
	  Latitude used when the receiver does not provide one.

config FALLBACK_LON
	string "Fallback receiver longitude"
	default "14.000000"
	help
	  Longitude used when the receiver does not provide one.

comment "Unit configuration"

config METRIC
	bool "Use metric units"
	default y
	help
	  Show altitudes in meters instead of feet.

comment "Platform dependent options"

choice
	prompt "Build target"
	default BUILD_LINUX
	help
	  Select platform you want p-rad to be compiled for.

config BUILD_LINUX
	bool "Linux"

config BUILD_PICO
	bool "PI pico W"

config BUILD_OTHER_UNIX
	bool "Other Unix/Posix compatable system (NOT IMPLEMENTED)"
endchoice



if BUILD_LINUX


choice 
	prompt "SDL render target"
	default SDL_TARGET_WINDOW
	help
	  Select where you want SDL3 to render to.

config SDL_TARGET_WINDOW
	bool "Full-Screen Window"
	help 
	  Render to Full-Screen Window using window system like X11 or wayland.

config SDL_TARGET_KMSDRM
	bool "Direct to DRM"
	help
	  Render directly to GPU using kmsdrm
endchoice



endif

if BUILD_LINUX || BUILD_OTHER_UNIX

config SDL_DRIVERS
	string "Enabled SDL3 render drivers"
	default "gpu,vulkan,opengl"
	help
	  Comma-speparated list of drivers,
	  SDL will try each name, in the order listed, until one succeeds or all of them fail.
	  leave empty and SDL will attempt to choose the best option for you,
	  based on what is available on the your system.
	  (I dont recommend leaving this option empty.)
	  Available drivers can be listed by running this code:
	  #include <SDL3/SDL.h>
	  int main() {
          	SDL_Init(SDL_INIT_VIDEO);
		SDL_Log("Available renderer drivers:");
		for (int i = 0; i < SDL_GetNumRenderDrivers(); i++) {
    			SDL_Log("%d. %s", i + 1, SDL_GetRenderDriver(i));
		}
	  }

endif
