blob: 0a7e735969bb12b8be37d46226d24c842be2c1f6 [file] [log] [blame] [edit]
/*
* BRLTTY - A background process providing access to the console screen (when in
* text mode) for a blind person using a refreshable braille display.
*
* Copyright (C) 1995-2023 by The BRLTTY Developers.
*
* BRLTTY comes with ABSOLUTELY NO WARRANTY.
*
* This is free software, placed under the terms of the
* GNU Lesser General Public License, as published by the Free Software
* Foundation; either version 2.1 of the License, or (at your option) any
* later version. Please see the file LICENSE-LGPL for details.
*
* Web Page: http://brltty.app/
*
* This software is maintained by Dave Mielke <dave@mielke.cc>.
*/
#ifndef BRLTTY_INCLUDED_PREFS
#define BRLTTY_INCLUDED_PREFS
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
typedef enum {
csBottomDots,
csAllDots,
csLowerLeftDot,
csLowerRightDot,
csNoDots
} CursorStyles;
typedef enum {
bvComputer8,
bvContracted6,
bvComputer6,
bvContracted8,
} BrailleVariant;
typedef enum {
sbwAll,
sbwEndOfLine,
sbwRestOfLine
} SkipBlankWindowsMode;
typedef enum {
sayImmediate,
sayEnqueue
} SayMode;
typedef enum {
sucNone,
sucSayCap,
sucRaisePitch
} SpeechUppercaseIndicator;
typedef enum {
swsNone,
swsSaySpace
} SpeechWhitespaceIndicator;
typedef enum {
tf24Hour,
tf12Hour
} TimeFormat;
typedef enum {
tsColon,
tsDot
} TimeSeparator;
typedef enum {
dpNone,
dpBeforeTime,
dpAfterTime
} DatePosition;
typedef enum {
dfYearMonthDay,
dfMonthDayYear,
dfDayMonthYear
} DateFormat;
typedef enum {
dsDash,
dsSlash,
dsDot
} DateSeparator;
typedef enum {
spNone,
spLeft,
spRight
} StatusPosition;
typedef enum {
ssNone,
ssSpace,
ssBlock,
ssStatusSide,
ssTextSide
} StatusSeparator;
typedef enum {
atOff,
at5s,
at10s,
at20s,
at40s
} AutoreleaseTime;
typedef enum {
ctdNone,
ctd250ms,
ctd500ms,
ctd1s,
ctd2s
} CursorTrackingDelay;
typedef struct {
unsigned char magic[2];
unsigned char showScreenCursor;
unsigned char version;
unsigned char showAttributes;
unsigned char touchSensitivity;
unsigned char blinkingScreenCursor;
unsigned char autorepeatEnabled;
unsigned char blinkingCapitals;
unsigned char longPressTime;
unsigned char blinkingAttributes;
unsigned char autorepeatInterval;
unsigned char screenCursorStyle;
unsigned char sayLineMode;
unsigned char screenCursorVisibleTime;
unsigned char autospeak;
unsigned char screenCursorInvisibleTime;
unsigned char pcmVolume;
unsigned char capitalsVisibleTime;
unsigned char midiVolume;
unsigned char capitalsInvisibleTime;
unsigned char fmVolume;
unsigned char attributesVisibleTime;
unsigned char highlightBrailleWindowLocation;
unsigned char attributesInvisibleTime;
unsigned char trackScreenPointer;
unsigned char brailleVariant;
unsigned char autorepeatPanning;
unsigned char slidingBrailleWindow;
unsigned char eagerSlidingBrailleWindow;
unsigned char alertTunes;
unsigned char tuneDevice;
unsigned char skipIdenticalLines;
unsigned char alertMessages;
unsigned char skipBlankBrailleWindowsMode;
unsigned char alertDots;
unsigned char skipBlankBrailleWindows;
unsigned char midiInstrument;
unsigned char expandCurrentWord;
unsigned char brailleWindowOverlap;
unsigned char speechRate;
unsigned char speechVolume;
unsigned char brailleFirmness;
unsigned char speechPunctuation;
unsigned char speechPitch;
unsigned char statusPosition;
unsigned char statusCount;
unsigned char statusSeparator;
unsigned char statusFields[10];
/*****************************************************************************/
/* No fields above this point should be added, removed, or reordered so that */
/* backward compatibility with old binary preference files will be retained. */
/* */
/* Fields below this point may be modified as desired. */
/*****************************************************************************/
unsigned char brailleKeyboardEnabled;
unsigned char brailleTypingMode;
unsigned char brailleQuickSpace;
unsigned char wordWrap;
unsigned char capitalizationMode;
unsigned char startSelectionWithRoutingKey;
unsigned char speechUppercaseIndicator;
unsigned char speechWhitespaceIndicator;
unsigned char autospeakSelectedLine;
unsigned char autospeakSelectedCharacter;
unsigned char autospeakInsertedCharacters;
unsigned char autospeakDeletedCharacters;
unsigned char autospeakReplacedCharacters;
unsigned char autospeakCompletedWords;
unsigned char autospeakLineIndent;
unsigned char showSpeechCursor;
unsigned char speechCursorStyle;
unsigned char blinkingSpeechCursor;
unsigned char speechCursorVisibleTime;
unsigned char speechCursorInvisibleTime;
unsigned char timeFormat;
unsigned char timeSeparator;
unsigned char showSeconds;
unsigned char datePosition;
unsigned char dateFormat;
unsigned char dateSeparator;
unsigned char consoleBellAlert;
unsigned char keyboardLedAlerts;
unsigned char speakKeyContext;
unsigned char speakModifierKey;
unsigned char autoreleaseTime;
unsigned char onFirstRelease;
unsigned char touchNavigation;
unsigned char scrollAwareCursorNavigation;
unsigned char cursorTrackingDelay;
unsigned char trackScreenScroll;
unsigned char saveOnExit;
unsigned char showSubmenuSizes;
unsigned char showAdvancedSubmenus;
unsigned char showAllItems;
} PACKED PreferenceSettings;
extern PreferenceSettings prefs; /* current preferences settings */
#define PREFS_TIME_MULTIPLIER 10
#define PREFS2MSECS(time) ((time) * PREFS_TIME_MULTIPLIER)
#define MSECS2PREFS(msecs) (((msecs) + (PREFS_TIME_MULTIPLIER - 1)) / PREFS_TIME_MULTIPLIER)
typedef struct PreferenceDefinitionStruct PreferenceDefinition;
extern const PreferenceDefinition *findPreference (const char *name);
extern void resetPreferences (void);
extern int setPreference (char *string);
extern void setStatusFields (const unsigned char *fields);
extern char *makePreferencesFilePath (const char *name);
extern int loadPreferencesFile (const char *path);
extern int savePreferencesFile (const char *path);
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif /* BRLTTY_INCLUDED_PREFS */