Changed HTTPError class to have more standard error messages, and custom inner descriptions. Decoupled JSON Schemas from validate module, now schemas are either generated by config classes, or stored statically in the api blueprint. Added JSON validation schemas to recording api Blueprint Updated validation tests for validate.py changes, changed xunit setups to pytest fixtures
Moves get_default_device and get_default_source methods out of affected plugin Config classes and into the get_videoinput_bin or get_audioinput_bin methods, so that no OS-dependent plugin code gets run at startup. Fix #658
Config schema methods generate a json schemas based on the config instance's options. Option schema methods generate schemas based on the type of Option, its default values, and whether its required or not. Also adds schema unit tests for Config and Options, and adds test_float unit test file. Needed for #632
Methods for deleting, creating, and listing profiles. Also modifies get_profile by adding an extra arg to specify whether a non- existing profile should be auto-created. Adds unit tests to test_profile. Methods added: - create - list_profiles - delete Related to #632
Freeseer will now try to use the appropriate translation if it exists for the user's system language. It does this by detecting the user's locale and searching for a matching translation. The US English translation will be used if no matching translation exists.
Freeseer now supports converting video signals from one display resolution to another. Technically we already supported this, but there were no scaling options so it wasn't very useful. The following scaling options are now available when recording video: - No scaling - 240p (320x240) - 360p (480x360) - 480p (640x480) - 720p (1280x720) - 1080p (1920x1080)
Now the user can load and unload video/audio input sources and record without closing the program. This bug was caused because the flag variables self.record_audio and self.record_video are not cleared after a cycle of recording ends. So the program will try to unload the source even it has been unchecked. This fix reset the variables by the end of recording so it will not influence the next one.
Each plugin class that saves configuration settings to the plugin.conf file now has its own CONFIG_CLASS that extends the Config class from the freeseer.framework.config.core package Plugin options are loaded and saved from/to file via the plugin's Config class. Changes the YAPSY ConfigurablePluginManager to simple PluginManager. Refactored plugins: - Jackaudio - PulseSrcAudio - Multiaudio - DesktopLinuxSrc - Firewiresrc - Usbsrc - Videotestsrc - Picture-in-Picture (pip) - Videopassthrough - Audiofeedback - Ogg Icecast - Ogg output - Videopreview - RTMP Stream
Refactored and fixed recording api logic. Implemented a shelve object so changes can persist more reliably and elminate the need for server teardown code. API tests now use pytest fixtures to create a baseline for tests instead of xunit style setup and teardown methods. Refactored and fixed logic of test_server.py tests.
When the user switches from one talk to another, exits the talk editor, or creates a new talk when the currently selected talk has unsaved changes, a window comes up warning the user that there are unsaved changes. The options are "Save Changes", "Discard Changes", and "Continue Editing". Fix #501 Close #605