# PyRadio Configuration File

# Player selection
# This is the eqivelant to the -u , --use-player command line parameter
# Specify the player to use with PyRadio, or the player detection order
# Example:
#   player = vlc
# or
#   player = vlc,mpv, mplayer
player = mpv, mplayer, vlc

# Default playlist
# This is the playlist to open if none is specified
# You can specify full path to CSV file, or if the playlist is in the config
# directory, playlist name (filename without extension or playlist number (as
# reported by -ls command line option)
#
# Default value: stations
default_playlist = stations

# Default station
# This is the equivalent to the -p , --play command line parameter
# The station number within the default playlist to play.Value is 1..number
# of stations, "-1" or "False" means no auto play, "0" or "Random" means play
# a random station
#
# Default value: False
default_station = False

# Continuous playback
# When changing playlists while playing a station, PyRadio will check if the
# station currently playing is in the newly opened playlist. If it is,
# playback will continue. If it is not there, playback will stop.
#
# When this option is set to True, playback will not stop even when the
# station does not exist in the newly opened playlist.
#
# Default value: False
continuous_playback = False


# Mouse support
# If this options is enabled, the mouse can be used to scroll the playlist,
# start playback, etc. Mouse integration is highly terminal dependent, that's
# why it is disabled by default.
#
# Default value: False
enable_mouse = False

# When mouse support is enabled, the Wheel normally scrolls up and down within 
# the playlist, moving the selection, while Shift-Wheel adjusts the volume. 
# If this option is enabled, the functionality will be reversed: the Wheel will 
# adjust the volume instead, and Shift-Wheel will be used to scroll through the 
# playlist.
#
# Default value: False
wheel_adjusts_volume = False


# Recordings directory
# This is the firectory where recorded files will be saved
#
# Please do not change this parameter manually in the user's configuration file
# as it will cause problems. Use the in program Window instead:
# (Config / General Options / Recordings dir)
#
# Default value: default
recording_dir = default

# Resource Opener
# This is a Linux (et al) only parameter. It has no effect on Windows or MacOS.
# A Resource Opener is a program used to open files passed to it as arguments.
# PyRadio will use it to open either directories or HTML files.
# Default value is "auto", in which case, PyRadio will try to use xdg-open,
# gio, mimeopen, mimeo or handlr, in that order of detection.  If none if found,
# the requested file will simply not open.
# To set a custom Opener, insert its name (either absolute path to its executable
# or its name, if it is in your PATH), followed by any parameter required,
# for example: "/usr/bin/gio open", "mimeopen -n".
resource_opener = auto

# Show Time
# If the enable_clock option is enabled, the current time will be
# displayed at the bottom left corner of the window.
#
# The format of the displayed time can be set to one of the following:
# 
#        0 : Display 24h format, with seconds
#        1 : Display 24h format, no seconds
#        2 : Display 12h format, with AM/PM and seconds
#        3 : Display 12h format, no AM/PM, with seconds
#        4 : Display 12h format, with AM/PM, no seconds
#        5 : Display 12h format, no AM/PM, no seconds
#
# Default value: False (for enable_clock) / 1 (for time_format)
enable_clock = False
time_format = 1

# Desktop notifications
# If this option is enabled, a Desktop notification will be displayed using the
# notification daemon / service. If enabled but no notification is displayed,
# please refer to
# https://github.com/coderholic/pyradio/desktop-notification.md
# Valid values are:
#   -1: disabled
#    0: enabled (no repetition)
#    x: enabled and repeat every x seconds
#
# Default value: -1
enable_notifications = -1

# Station icon
# Some stations will advertise a station icon (logo).
# This icon can be downloaded and used in Desktop Notifications,
# if this option is True.
# #
# Default value: True
use_station_icon = True

# Cached Station Icons Handling
# If use_station_incon is True, stations' icons will be cached in the logos folder.
# If this option is True (the default), all files under this folder will be
# deleted at program exit. Otherwise, all downloaded logos will remain in the
# folder for future use.
#
# Default value: True
remove_station_icons = True

# TTS
# Enables PyRadio Text-to-Speech feature, provided that such a feature is 
# already supported by the system.
#
# Default value: False
enable_tts = False

# TTS Volume
# This is the volume to be used by the TTS engine
# It applies to Linux and Windows only
#
# Default value: 50
tts_volume = 50

# TTS Rate
# This is the rate (speed) to be used by the TTS engine
# It applies to Linux and Windows only
#
# Default value: 50
tts_rate = 0

# TTS Pitch
# This is the pitch to be used by the TTS engine
#
# Default value: 0 (use system default pitch)
tts_pitch = 0

# TTS verbosity
# This is the verbosity to be used by the TTS engine
# When set to "punctuation", punctuation will be 
# spoken as if it was a real word in the text.
# Example:
# The text "this option is read-only" will be spoken as
#       Verbosity "default": this option is read only
#   Verbosity "punctuation": this option is read dash only
#
# Default value: default
tts_verbosity = default

# TTS Context
# This is the context spoken by the TTS engine
# Values are:
#   limited     : system messages and errors, station data
#   window      : also speak windows text
#   all         : speak everything provided
#
#   Default value: limited
tts_context = all

# Titles logging
# If this option is True, PyRadio will start logging song titles to a log file
# at startup, provided that the station playing does provide title data.
#
# This is the same as using the -lt command line parameter, or pressing "W" 
# while the program is running.
#
# Default value: False
log_titles = False

# Connection timeout
# PyRadio will wait for this number of seconds to get a station/server message
# indicating that playback has actually started. If this does not happen
# (within this number of seconds after the connection is initiated), PyRadio
# will consider the station unreachable, and display a relevant message.
#
# Valid values: 5 - 60, 0 disables check
# Default value: 10
connection_timeout = 10

# Force http connections
# Most radio stations use plain old http protocol to broadcast, but some of
# them use https. If this is enabled,  all connections will use http; results
# depend on the combination of station/player.
#
# Default value: False
force_http = False

# Buffering 
# This is the number of seconds the players will buffer data
# before actually starting producing sound
#
# Valid values: 5 - 60 (0 to disable)
# Default value = 0
buffering = 0

# MPlayer auto update bitrate
# This option is only relevant if MPlayer is installed.
# In this case, if the station's bitrate is different to 128kbps,
# the station will be updated and the playlist will be silently saved.
#
# This is because MPlayer buffering uses KB instead of seconds (as
# MPV and VLC do). Since buffering (the previous option) is expressed
# in seconds, having the station's real bitrate is essential in
# order to calculate the correct value (seconds to KB).
#
# Default value: False
mplayer_save_br = False

# Default theme
# Hard coded themes:
#   dark (default) (8 colors)
#   light (8 colors)
#   dark_16_colors (16 colors dark theme alternative)
#   light_16_colors (16 colors light theme alternative)
#   black_on_white (bow) (256 colors)
#   white_on_black (wob) (256 colors)
# If theme is watched for changes, prepend its name with an asterisk
# (i.e. '*my_theme')
# This is applicable for user themes only!
#
# Default value = dark
theme = dark

# Transparency setting
# If False, theme colors will be used.
# If True and a compositor is running, the stations' window background will be
# transparent. If True and a compositor is not running, the terminal's
# background color will be used.
#
# Default value: False
use_transparency = False

# Always obey config Transparency setting
# Most themes will either be transparent of opaque by default. This means that
# these themes will never be allowed to change the transparency setting within
# PyRadio. Enabling this option will make all themes to behave as if their
# "transparency" option is set to 2 (Obey config setting).
#
# Default value: False
force_transparency = False

# Calculated color factor
# This is to produce Secondary Windows background color. A value of 0 disables
# it, otherwise it is the factor to change (lighten or darken) the base color.
# For more info, please refer to
# https://github.com/coderholic/pyradio#secondary-windows-background
#
# Valid values: 0-0.2
# Default value: 0
calculated_color_factor = 0

# Console theme
# This is the theme to be used when a PyRadio is executed either in a Linux
# Virtual Console, or on a terminal that does not support color change.
# Possible values: dark / light
#
# Default value: dark
console_theme = dark


# Playlist management
#
# Specify whether you will be asked to confirm every station deletion action
#
# Default value: True
confirm_station_deletion = True

# Specify whether you will be asked to confirm playlist reloading, when the
# playlist has not been modified within PyRadio
#
# Default value: True
confirm_playlist_reload = True

# Specify whether you will be asked to save a modified playlist whenever it
# needs saving
#
# Default value: True
auto_save_playlist = False

# Remote Control server
# A simple http server that can accept remote connections and pass commands
# to PyRadio
#
# Valid values:
#   remote_control_server_ip: localhost, LAN, lan
#   remote_control_server_port: 1025-65535
#
# Default value: localhost:9998
#                no auto start
remote_control_server_ip = localhost
remote_control_server_port = 9998
remote_control_server_auto_start = False

# The language file to use as localized (alternative) keys
#
# This file will either be in the "keyboard" dir of the package
# or the Data dir (user customization)
#
# Default value: None
localized_keys = None

# Enable "XDG Base Directory Specification" compliance. Enabling this options
# will lead to operational data files being dispersed to XDG directories
#
# More info:
# https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html
# https://wiki.archlinux.org/title/XDG_Base_Directory
#
# This setting has no effect on Windows
#
# Packagers should set this paramater as resired!
#
# Default value: False
xdg_compliant = True

# The name of the distribution providing the package. If this parameter is set
# to anything other than "None" PyRadio will not permit updating (-U command
# line parameter) or removing the package (-R command line parameter).
#
# Packagers must populate this paramater as needed!
#
# Default value: None
distro = Artix Linux
