Fred Gleason 65af55944c 2023-03-17 Fred Gleason <fredg@paravelsystems.com>
* Updated the copyright notices to use an interval of 2002-2023.

Signed-off-by: Fred Gleason <fredg@paravelsystems.com>
2023-03-17 14:04:27 -04:00

641 lines
14 KiB
C

// rd.h
//
// System-Wide Values for Rivendell
//
// (C) Copyright 2002-2023 Fred Gleason <fredg@paravelsystems.com>
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License version 2 as
// published by the Free Software Foundation.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public
// License along with this program; if not, write to the Free Software
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
//
#ifndef RD_H
#define RD_H
/*
* Copyright Notice
*/
#define RD_COPYRIGHT_NOTICE "© 2002-2023 Fred Gleason"
/*
* Default Configuration File
*/
#define RD_CONF_FILE "/etc/rd.conf"
#define RD_WIN_CONF_FILE "rd.ini"
/*
* Default ALSA asoundrc file
*/
#define RD_ASOUNDRC_FILE "/etc/asound.conf"
/*
* PID File Locations
*/
#define RD_PID_DIR "/var/run"
/*
* Where audio gets stored
*/
#define RD_AUDIO_ROOT "/var/snd"
/*
* Audio File Extension
*/
#define RD_AUDIO_EXTENSION "wav"
/*
* Allow Nonstandard Bitrates?
*/
#define RD_ALLOW_NONSTANDARD_RATES false
/*
* Default mySQL Settings
*/
#define DEFAULT_MYSQL_HOSTNAME "localhost"
#define DEFAULT_MYSQL_DATABASE "Rivendell"
#define DEFAULT_MYSQL_USERNAME "rduser"
#define DEFAULT_MYSQL_PASSWORD "letmein"
#define DEFAULT_MYSQL_DRIVER "QMYSQL3"
#define DEFAULT_MYSQL_HEARTBEAT_INTERVAL 360
#define DEFAULT_MYSQL_ENGINE "MyISAM"
#define DEFAULT_MYSQL_CHARSET "utf8mb4"
#define DEFAULT_MYSQL_COLLATION "utf8mb4_general_ci"
/*
* Maximum Length of Rivendell User Passwords
*/
#define RD_MAX_PASSWORD_LENGTH 32
/*
* ALSA Settings
*/
#define RD_ALSA_DEFAULT_PERIOD_QUANTITY 4
#define RD_ALSA_DEFAULT_PERIOD_SIZE 1024
#define RD_ALSA_FADE_INTERVAL 100
#define RD_ALSA_SAMPLE_RATE_TOLERANCE 100
/*
* Date Limits
*/
#define RD_MAX_YEAR 8000
/*
* JACK Settings
*/
#define RD_JACK_FADE_INTERVAL 100
/*
* RIPCD TCP Port
*/
#define RIPCD_TCP_PORT 5006
/*
* CAED TCP Port
*/
#define CAED_TCP_PORT 5005
/*
* RdCatchd TCP Port
*/
#define RDCATCHD_TCP_PORT 6006
/*
* Minimum event ID for dynamic (RML-controlled) recordings
*/
#define RDCATCHD_DYNAMIC_BASE_ID 1000000000
/*
* Default Local GPIO Device
*/
#define RD_DEFAULT_GPIO_DEVICE "/dev/gpio0"
/*
* Max number of possible GPIO lines (GPI OR GPO)
*/
#define MAX_GPIO_PINS 32768
/*
* Max number of possible audio adapters
*/
#define RD_MAX_CARDS 24
/*
* Max number of possible audio streams/card/type
*/
#define RD_MAX_STREAMS 48
/*
* Max number of possible audio ports/card/type
*/
#define RD_MAX_PORTS 24
/*
* Max number of possible TTYs
*/
#define MAX_TTYS 8
/*
* Max number of netcatcher decks per workstation
*/
#define MAX_DECKS 8
/*
* Max number of inputs or outputs in a switcher
*/
#define MAX_ENDPOINTS 2048
/*
* Max number of attached switcher matrices per workstation
*/
#define MAX_MATRICES 8
/*
* Max number of macro timers
*/
#define RD_MAX_MACRO_TIMERS 16
/*
* Reference Analog Level at 0 dBFS (1/100 dB)
* (thus, -16 dBFS = +4 dBu)
*/
#define RD_BASE_ANALOG 1600
/*
* Maximum number of SoundPanels of a given type
*/
#define MAX_PANELS 50
/*
* Maximum Cart Number
*/
#define RD_MAX_CART_NUMBER 999999
/*
* Maximum Cut Number
*/
#define RD_MAX_CUT_NUMBER 999
/*
* In negative 1/100ths of a dB
*/
#define REFERENCE_LEVEL 1600
/*
* Typomatic Rate Interval, in mS
*/
#define TYPO_RATE_1 300
#define TYPO_RATE_2 100
/*
* ALSA Values
*/
#define ALSA_PLAY_PCM_DEVICE "rdp"
#define ALSA_RECORD_PCM_DEVICE "rdr"
/*
* Default Administrative User
*/
#define RDA_LOGIN_NAME "admin"
#define RDA_PASSWORD ""
#define RDA_FULLNAME "Rivendell Administrator"
#define RDA_DESCRIPTION "Default Administrator Account"
/*
* Default System User
*/
#define RD_USER_LOGIN_NAME "user"
#define RD_USER_PASSWORD ""
#define RD_USER_FULL_NAME "Rivendell User"
#define RD_USER_DESCRIPTION "Default User Account"
/*
* Default System Identities
*/
#define RD_DEFAULT_AUDIO_OWNER "rivendell"
#define RD_DEFAULT_AUDIO_GROUP "rivendell"
#define RD_DEFAULT_PYPAD_OWNER "pypad"
#define RD_DEFAULT_PYPAD_GROUP "pypad"
#define RD_DEFAULT_RN_RML_OWNER "rivendell"
#define RD_DEFAULT_RN_RML_GROUP "rivendell"
#define RD_DEFAULT_LABEL "Default Configuration"
/*
* Default Audio Store Settings
*/
#define RD_DEFAULT_AUDIO_STORE_MOUNT_OPTIONS "defaults"
/*
* Default RDSelect Configuration Directory
*/
#define RD_DEFAULT_RDSELECT_DIR "/etc/rivendell.d"
/*
* Default Workstation
*/
#define RD_STATION_NAME "DEFAULT"
#define RD_STATION_DESCRIPTION "Default Workstation"
/*
* Default Program Service
*/
#define RD_SERVICE_NAME "Production"
#define RD_SERVICE_DESCRIPTION "Default Audio Service"
/*
* RDSelect Label
* (Used for the RDSelect entry in RDAdmin->ManageHosts)
*/
#define RD_RDSELECT_LABEL "[RDSelect]"
/*
* Default Maximum POST Length (bytes)
*/
#define RD_DEFAULT_MAX_POST_LENGTH 10000000
/*
* Pause Time for Starting Daemons (secs)
*/
#define RD_DAEMON_PAUSE_TIME 1
/*
* Location of the proc filesystem
*/
#define RD_PROC_DIR "/proc"
/*
* Location for Lock Files
*/
#define RD_LOCKFILE_DIR "/var/lock"
/*
* Rivendell Macro Language (RML)
*/
#define RD_RML_ECHO_PORT 5858
#define RD_RML_NOECHO_PORT 5859
#define RD_RML_REPLY_PORT 5860
#define RD_RML_MAX_ARGS 100
#define RD_RML_MAX_LENGTH 2048
/*
* Maximum Permissible Time Offset (+/- mS)
*/
#define RD_MAX_TIME_OFFSET 10000
/*
* The file to save geometry state in
*/
#define RD_GEOMETRY_FILE ".rivendell"
/*
* Meter Update Interval (msecs)
*/
#define RD_METER_UPDATE_INTERVAL 20
/*
* The metering block shared memory key
*/
#define RD_METER_SHM_KEY 0x00005005
/*
* Maximum length of import log file line
*/
#define RD_MAX_IMPORT_LINE_LENGTH 1024
/*
* The minimum fader gain at the end of a segue transition
* (in hundreths of a dB)
*/
#define RD_FADE_DEPTH -3000
/*
* The mixer 'off' level for full muting
*/
#define RD_MUTE_DEPTH -10000
/*
* The fade profile (for HPI adapters only)
*/
#define RD_FADE_TYPE RDHPISoundCard::Log
/*
* This defines the maximum frequency (in Hz) of the broadcast audio
* channel being fed by Rivendell. It is used for things like calculating
* how expensive an algorithm is needed for sample rate conversion.
*
* For modern FM facilities running MPX stereo, 15000 Hz is a reasonable
* value.
*/
#define RD_MAX_BANDPASS 15000
/*
* The limits on timescaling
*/
#define RD_TIMESCALE_MIN 0.833
#define RD_TIMESCALE_MAX 1.250
#define RD_TIMESCALE_DIVISOR 100000.0
/*
* Max number of default services
*/
#define RD_MAX_DEFAULT_SERVICES 32
/*
* Ripper Settings
*/
#define RIPPER_BAR_INTERVAL 500
#define RIPPER_TEMP_WAV "rdlibrary_rip.wav"
#define RIPPER_TEMP_PEAK "rdlibrary_rip.dat"
#define RIPPER_CDDB_USER "rdlibrary"
#define RIPPER_MAX_SECTORS 20
/*
* CAE Values
*/
#define CAE_MAX_ARGS 10
#define CAE_MAX_LENGTH 256
#define CAE_POLL_INTERVAL 50
/*
* Default Sample Rate
*/
#define RD_DEFAULT_SAMPLE_RATE 48000
/*
* Default Channels
*/
#define RD_DEFAULT_CHANNELS 2
/*
* Marker Colors
*/
#define RD_SEGUE_MARKER_COLOR Qt::cyan
#define RD_TALK_MARKER_COLOR Qt::blue
#define RD_START_END_MARKER_COLOR Qt::red
#define RD_FADE_MARKER_COLOR Qt::yellow
#define RD_HOOK_MARKER_COLOR Qt::magenta
/*
* Cart Status Colors
*/
#define RD_CART_ERROR_COLOR Qt::red
#define RD_CART_CONDITIONAL_COLOR Qt::yellow
#define RD_CART_FUTURE_COLOR "#00FFFF"
#define RD_CART_EVERGREEN_COLOR "#008000"
#define RD_CART_INVALID_SERVICE_COLOR Qt::magenta
/*
* RDAirPlay Colors
*/
#define RDPANEL_SETUP_FLASH_COLOR Qt::blue
#define RDPANEL_RESET_FLASH_COLOR Qt::blue
#define RDPANEL_PLAY_BACKGROUND_COLOR Qt::red
#define RDPANEL_PAUSED_BACKGROUND_COLOR Qt::cyan
#define BUTTON_STOPPED_BACKGROUND_COLOR Qt::green
#define BUTTON_PLAY_BACKGROUND_COLOR Qt::red
#define BUTTON_PLAY_TEXT_COLOR Qt::black
#define BUTTON_PAUSE_BACKGROUND_COLOR Qt::cyan
#define BUTTON_PAUSE_TEXT_COLOR Qt::black
#define BUTTON_FROM_BACKGROUND_COLOR Qt::magenta
#define BUTTON_FROM_TEXT_COLOR Qt::black
#define BUTTON_TO_BACKGROUND_COLOR Qt::yellow
#define BUTTON_TO_TEXT_COLOR Qt::black
#define BUTTON_DISABLED_BACKGROUND_COLOR Qt::darkGray
#define BUTTON_DISABLED_TEXT_COLOR Qt::white
#define BUTTON_ERROR_BACKGROUND_COLOR Qt::red
#define BUTTON_ERROR_TEXT_COLOR Qt::black
/*
* RDAirPlay Log Machines
*/
#define RDAIRPLAY_LOG_QUANTITY 3
/*
* Cue Editor Colors
*/
#define RD_CUEEDITOR_KNOB_COLOR Qt::blue
#define RD_CUEEDITOR_PLAY_MARKER Qt::black
#define RD_CUEEDITOR_START_MARKER Qt::red
#define RD_CUEEDITOR_BUTTON_FLASH_PERIOD 200
#define RD_CUEEDITOR_AUDITION_PREROLL 5000
/*
* Log Colors
*/
#define RD_CUSTOM_TRANSITION_COLOR Qt::blue
/*
* Default Text Editors
*/
#define RD_LINUX_EDITOR "xterm -e vi"
/*
* System-wide Maintenance Interval (mS)
*/
#define RD_MAINT_MIN_INTERVAL 900000
#define RD_MAINT_MAX_INTERVAL 3600000
/*
* Audio File Filter for QFileDialog
*/
#define RD_AUDIO_FILE_FILTER "Sound Files (*.mp* *.MP* *.wav *.WAV *.ogg *.OGG *.flac *.FLAC *.atx *.ATX *.tmc *.TMC *.aif* *.AIF* *.m4a *.M4A *.aac *.AAC)\nAIFF Files (*.aif* *.AIF*)\nATX Files (*.atx *.ATX)\nMPEG Files (*.mp* *.MP*)\nOggVorbis Files (*.ogg *.OGG)\nFLAC Files (*.flac *.FLAC)\nTM Century GoldDrive Files (*.tmc *.TMC)\nWAV Files (*.wav *.WAV)\nAll Files (*.*)"
/*
* Image File Filter for QFileDialog
*/
#define RD_IMAGE_FILE_FILTER "Image Files (*.png *.bmp *.xbm *.xpm *.pbm *.pgm *.ppm *.jpg *.mng *.gif *.PNG *.BMP *.XBM *.XPM *.PBM *.PGM *.PPM *.JPG *.MNG *.GIF)\nAll Files (*.*)"
/*
* Podcast Image File Filter for QFileDialog
*/
#define RD_PODCAST_IMAGE_FILE_FILTER "Image Files (*.png *.jpg *.PNG *.JPG *.jpeg *.JPEG)\nAll Files (*.*)"
/*
* Loadable Module Filter for QFileDialog
*/
#define RD_MODULE_FILE_FILTER "Rivendell Loadable Modules (*.rlm)\nAll Files (*.*)"
/*
* Web Interface Settings
*/
#define RD_WEB_BACKGROUND_COLOR "#FFFFFF"
#define RD_WEB_LINE_COLOR1 "#E0E0E0"
#define RD_WEB_LINE_COLOR2 "#F0F0F0"
/*
* LiveWire Values
*/
#define RD_LIVEWIRE_DEFAULT_TCP_PORT 93
#define RD_LIVEWIRE_DEFAULT_STREAM_PORT 5004
#define RD_LIVEWIRE_DEFAULT_CHANNELS 2
#define RD_LIVEWIRE_MAX_CMD_LENGTH 1024
#define RD_LIVEWIRE_GPIO_BUNDLE_SIZE 5
#define RD_LIVEWIRE_DEFAULT_LOAD RDLiveWireDestination::LoadHighZ
#define RD_LIVEWIRE_MAX_SOURCE 0x7FFF
#define RD_LIVEWIRE_GPIO_MCAST_ADDR "239.192.255.4"
#define RD_LIVEWIRE_GPIO_SEND_PORT 2055
#define RD_LIVEWIRE_GPIO_RECV_PORT 2060
#define RD_LIVEWIRE_GPIO_PULSE_WIDTH 100
/*
* Number of Carts to Include in a 'Limited' Search
*/
#define RD_LIMITED_CART_SEARCH_QUANTITY 100
/*
* Timeout for libcurl (secs)
*/
#define RD_CURL_TIMEOUT 1200
/*
* Anonymous FTP Credentials
*/
#define RD_ANON_FTP_USERNAME "anonymous"
#define RD_ANON_FTP_PASSWORD "rivendell"
/*
* Status Monitor Height
*/
#define RDMONITOR_HEIGHT 30
/*
* RDAirPlay Colors
*/
#define RDPANEL_SETUP_FLASH_COLOR Qt::blue
#define RDPANEL_RESET_FLASH_COLOR Qt::blue
#define RDPANEL_PLAY_BACKGROUND_COLOR Qt::red
#define RDPANEL_PAUSED_BACKGROUND_COLOR Qt::cyan
#define BUTTON_STOPPED_BACKGROUND_COLOR Qt::green
#define BUTTON_PLAY_BACKGROUND_COLOR Qt::red
#define BUTTON_PLAY_TEXT_COLOR Qt::black
#define BUTTON_PAUSE_BACKGROUND_COLOR Qt::cyan
#define BUTTON_PAUSE_TEXT_COLOR Qt::black
#define BUTTON_FROM_BACKGROUND_COLOR Qt::magenta
#define BUTTON_FROM_TEXT_COLOR Qt::black
#define BUTTON_TO_BACKGROUND_COLOR Qt::yellow
#define BUTTON_TO_TEXT_COLOR Qt::black
#define BUTTON_DISABLED_BACKGROUND_COLOR Qt::darkGray
#define BUTTON_DISABLED_TEXT_COLOR Qt::white
#define BUTTON_ERROR_BACKGROUND_COLOR Qt::red
#define BUTTON_ERROR_TEXT_COLOR Qt::black
#define LOG_SCHEDULED_COLOR Qt::white
#define LOG_PLAYING_COLOR Qt::green
#define LOG_PAUSED_COLOR Qt::cyan
#define LOG_NEXT_COLOR "#CCFFCC"
#define LOG_FINISHED_COLOR Qt::gray
#define LOG_EVERGREEN_COLOR "#008000"
#define LOG_ERROR_COLOR Qt::red
#define LOG_RELATIVE_TEXT_COLOR Qt::black
#define LOG_HARDTIME_TEXT_COLOR Qt::blue
/*
* Cart Label Box Colors
*/
#define BAR_UNCHANGED_TRANSITION_COLOR Qt::green
#define BAR_UNCHANGED_STOPPING_COLOR Qt::red
#define BAR_CHANGED_TRANSITION_COLOR Qt::yellow
#define BAR_CHANGED_STOPPING_COLOR Qt::blue
#define LABELBOX_BACKGROUND_COLOR Qt::white
#define LABELBOX_MISSING_COLOR Qt::red
#define LABELBOX_MARKER_COLOR Qt::cyan
#define LABELBOX_CHAIN_COLOR Qt::magenta
#define LABELBOX_EVERGREEN_COLOR "#008000"
#define LABELBOX_TIMESCALE_COLOR Qt::green
/*
* RDCartSlots Settings
*/
#define RDCARTSLOTS_MAX_ROWS 16
#define RDCARTSLOTS_MAX_COLUMNS 4
/*
* Custom MIME Types (for Drag and Drop)
*/
#define RDMIMETYPE_CART "application/rivendell-cart"
/*
* Number of Cut Event IDs
*/
#define RD_CUT_EVENT_ID_QUAN 16
/*
* Log Filter Listing Limit Quantity
*/
#define RD_LOGFILTER_LIMIT_QUAN 14
/*
* Log Locking Timeout
*/
#define RD_LOG_LOCK_TIMEOUT 30000
/*
* Default multicast address for sending state updates
*/
#define RD_NOTIFICATION_ADDRESS "239.192.255.72"
/*
* UDP port for sending state updates
*/
#define RD_NOTIFICATION_PORT 20539
/*
* RDVAirPlay Values
*/
#define RD_RDVAIRPLAY_LOG_BASE 100
#define RD_RDVAIRPLAY_LOG_QUAN 20
/*
* GUI Style
* (must be one of the values returned by QStyleFactory::keys())
*/
#define RD_GUI_STYLE "Plastique"
/*
* Status / Note Bubble Background Color
*/
#define RD_STATUS_BACKGROUND_COLOR "#AAFFFF"
/*
* PAD Update Connection Points
*/
#define RD_PAD_CLIENT_TCP_PORT 34289
#define RD_PAD_SOURCE_UNIX_ADDRESS "m4w8n8fsfddf-473fdueusurt-8954"
/*
* Default 'ServiceTimeout=' value in rd.conf(5)
*/
#define RD_DEFAULT_SERVICE_TIMEOUT 30
/*
* File Extension for RSS XML Feed Files
*/
#define RD_RSS_XML_FILE_EXTENSION "rss"
/*
* Shelf life for GPIO event records
*/
#define RD_GPIO_EVENT_DAYS 30
/*
* Starting UDP port for cae_meter_socket.
* Default 'MeterPortBaseNumber=' value in rd.conf(5)
*/
#define RD_DEFAULT_METER_SOCKET_BASE_UDP_PORT 30000
/*
* Maximum number of UDP ports to consider for cae_meter_socket.
* Default 'MeterPortRange' value in rd.conf(5)
*/
#define RD_METER_SOCKET_PORT_RANGE 100
#endif // RD_H