// rd.h // // System-Wide Values for Rivendell // // (C) Copyright 2002-2023 Fred Gleason // // 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