├── .github ├── FUNDING.yml ├── ISSUE_TEMPLATE │ ├── bug_report.yaml │ ├── config.yml │ └── feature_request.yaml ├── dependabot.yml └── workflows │ ├── build.yml │ ├── codeql.yml │ ├── release.yml │ └── stale.yml ├── .gitignore ├── .gitmodules ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── data └── img │ ├── Lighting-colour-temperature.jpg │ ├── ambilight_color.png │ ├── ambilight_show.png │ ├── asect_ratio.png │ ├── aspect_ratio.jpg │ ├── aspect_ratio_tray.jpg │ ├── baud_rate.jpg │ ├── c3_mini_v2.1.0_1_16x16.jpg │ ├── color_correction_dialog.jpg │ ├── color_order.jpg │ ├── d1_mini_lite_v1.0.0_1_16x16.jpg │ ├── d1_mini_pro_v2.0.0_1_16x16.jpg │ ├── d1_mini_v4.0.0_1_16x16.png │ ├── dark_theme.png │ ├── default_theme.png │ ├── device_tab.jpg │ ├── dig2go.jpg │ ├── doom_eternal.png │ ├── downloading.jpg │ ├── effects.jpg │ ├── enable_wifi.jpg │ ├── enable_wifi_2.jpg │ ├── enable_wifi_mixed.png │ ├── esp32poe.jpg │ ├── eye_care_dialog.jpg │ ├── framerate_counter_javafx_menu.png │ ├── gpio1.jpg │ ├── gpio2.jpg │ ├── groupleds.jpg │ ├── groupleds_ti.jpg │ ├── ha_integration_auto.jpg │ ├── ha_luciferin.jpg │ ├── hue.jpg │ ├── info_screen.png │ ├── init.png │ ├── java_fast_screen_capture_logo.icns │ ├── java_fast_screen_capture_logo.ico │ ├── leds_settings.jpg │ ├── ledstirp.jpg │ ├── ledstrip.jpg │ ├── libayatana_appindicator.png │ ├── libnotify.png │ ├── lightness.jpg │ ├── lightness_brightness.jpg │ ├── ligth_firmware_firmware_download.jpg │ ├── linear_interpolation_frame_insertion.jpg │ ├── linux_loopback.png │ ├── linux_ui.png │ ├── linux_version.jpg │ ├── linuxpipelines.jpg │ ├── luciferin_case.png │ ├── luciferin_case_4_photos.png │ ├── luciferin_logo.ico │ ├── luciferin_logo.png │ ├── luciferin_logo_center.ico │ ├── luciferin_logo_center.png │ ├── luciferin_logo_left.ico │ ├── luciferin_logo_left.png │ ├── luciferin_logo_right.ico │ ├── luciferin_logo_right.png │ ├── luciferin_rgb_rgbw.png │ ├── misc_tab.jpg │ ├── misc_tab_color.jpg │ ├── mode_settings.jpg │ ├── moitorled.png │ ├── mqtt_settings.jpg │ ├── multi_display │ ├── gold_instance.jpg │ ├── multimonitor_1.jpg │ ├── multimonitor_2.jpg │ ├── multimonitor_3.jpg │ ├── multimonitor_6.jpg │ ├── multimonitor_7.jpg │ ├── triple_monitor_tray.jpg │ ├── triple_monitor_tray_grey.jpg │ └── triple_monitor_tray_single.jpg │ ├── new_version.jpg │ ├── night_mode.jpg │ ├── pcb_solder_how_to.jpg │ ├── peak_brightness.jpg │ ├── pillarbox_letterbox_test │ ├── complete_black.png │ ├── letterbox.jpg │ ├── letterbox2.jpg │ ├── letterbox2_b.jpg │ ├── letterbox3.jpg │ ├── letterbox3b.jpg │ ├── letterbox_b.jpg │ ├── no_auto.png │ ├── pillarbox.jpg │ ├── pillarbox.png │ └── very_black.png │ ├── power_saving.jpg │ ├── profiles.jpg │ ├── pullup_res.jpg │ ├── quindor_esp32_eth.png │ ├── quinled.png │ ├── relay.jpg │ ├── rgbcym_degree.jpg │ ├── s2_mini_v1.0.0_1_16x16.jpg │ ├── s3_mini_v1.0.0_1_16x16.jpg │ ├── sat1.jpg │ ├── sat2.jpg │ ├── satellite_1.jpg │ ├── satellite_2.jpg │ ├── saturation.jpg │ ├── settings_1.png │ ├── settings_2.png │ ├── settings_3.png │ ├── settings_screen.png │ ├── setup.png │ ├── simd.png │ ├── smashing_threads.jpg │ ├── smoothing_adv.png │ ├── smoothing_frame_insertion.jpg │ ├── smoothing_framerate.jpg │ ├── static_ip.jpg │ ├── test_image_dominant.jpg │ ├── testimage.jpg │ ├── testimage_luciferini.jpg │ ├── theme_selector.png │ ├── tinypico.jpg │ ├── tray_1.png │ ├── tray_icon_profiles.png │ ├── update_changelog.jpg │ ├── upgrade_success.jpg │ ├── wayland.png │ ├── web_installer │ ├── 1_webinstaller.png │ ├── 2_webinstaller.png │ ├── 3_webinstaller.png │ ├── 4_webinstaller.png │ ├── 5_webinstaller.png │ ├── 6_webinstaller.png │ ├── 7_webinstaller.png │ └── 8_webinstaller.png │ ├── webinterfaceaccess.png │ ├── white_balance │ ├── 1.jpg │ ├── 2.jpg │ ├── 3.jpg │ ├── 4.jpg │ ├── 5.jpg │ ├── 6.jpg │ └── gamma.jpg │ ├── whitebalance.png │ ├── wt32-eth01.jpg │ └── yt_music_mode.JPG ├── docs ├── _config.yml ├── index.md └── static │ └── logos │ ├── luciferin_logo.png │ └── pc_ambilight_logo.png ├── pom.xml ├── snapcraft.yaml └── src └── main ├── java ├── module-info.java └── org │ └── dpsoftware │ ├── FireflyLuciferin.java │ ├── JavaFXStarter.java │ ├── LEDCoordinate.java │ ├── MainSingleton.java │ ├── NativeExecutor.java │ ├── audio │ ├── AudioLoopback.java │ ├── AudioLoopbackNative.java │ ├── AudioLoopbackSoftware.java │ ├── AudioSingleton.java │ └── AudioUtility.java │ ├── config │ ├── Configuration.java │ ├── Constants.java │ ├── Enums.java │ ├── InstanceConfigurer.java │ ├── InstanceConverter.java │ └── LocalizedEnum.java │ ├── grabber │ ├── CustomGDI32Util.java │ ├── DbusScreenCast.java │ ├── GStreamerGrabber.java │ ├── GrabberManager.java │ ├── GrabberSingleton.java │ └── ImageProcessor.java │ ├── gui │ ├── GuiManager.java │ ├── GuiSingleton.java │ ├── TestCanvas.java │ ├── WidgetFactory.java │ ├── bindings │ │ ├── CommonBinding.java │ │ ├── appindicator │ │ │ ├── GCallback.java │ │ │ ├── LibAppIndicator.java │ │ │ └── app_indicator_h.java │ │ └── notify │ │ │ ├── LibNotify.java │ │ │ └── notify_h.java │ ├── controllers │ │ ├── ColorCorrectionDialogController.java │ │ ├── ControlTabController.java │ │ ├── DevicesTabController.java │ │ ├── EyeCareDialogController.java │ │ ├── InfoController.java │ │ ├── LedsConfigTabController.java │ │ ├── MiscTabController.java │ │ ├── ModeTabController.java │ │ ├── NetworkTabController.java │ │ ├── SatellitesDialogController.java │ │ ├── SettingsController.java │ │ └── SmoothingDialogController.java │ ├── elements │ │ ├── DisplayInfo.java │ │ ├── GlowWormDevice.java │ │ └── Satellite.java │ └── trayicon │ │ ├── TrayIconAppIndicator.java │ │ ├── TrayIconAwt.java │ │ ├── TrayIconBase.java │ │ └── TrayIconManager.java │ ├── managers │ ├── CustomGZIPOutputStream.java │ ├── DisplayManager.java │ ├── ManagerSingleton.java │ ├── NetworkManager.java │ ├── PipelineManager.java │ ├── PowerSavingManager.java │ ├── SerialManager.java │ ├── StorageManager.java │ ├── UpgradeManager.java │ └── dto │ │ ├── AudioDevice.java │ │ ├── AudioVuMeter.java │ │ ├── ColorDto.java │ │ ├── ColorRGBW.java │ │ ├── FirmwareConfigDto.java │ │ ├── GammaDto.java │ │ ├── HSLColor.java │ │ ├── LdrDto.java │ │ ├── LedMatrixInfo.java │ │ ├── MqttFramerateDto.java │ │ ├── StateDto.java │ │ ├── StateStatusDto.java │ │ ├── TcpResponse.java │ │ ├── UnsubscribeInstanceDto.java │ │ ├── WebServerStarterDto.java │ │ └── mqttdiscovery │ │ ├── DeviceDiscovery.java │ │ ├── DiscoveryObject.java │ │ ├── LightDiscovery.java │ │ ├── MqttDevice.java │ │ ├── NumberWhiteTempDiscovery.java │ │ ├── SelectAspectRatioDiscovery.java │ │ ├── SelectColorModeDiscovery.java │ │ ├── SelectEffectDiscovery.java │ │ ├── SelectEmaDiscovery.java │ │ ├── SelectFrameGenDiscovery.java │ │ ├── SelectGammaDiscovery.java │ │ ├── SelectProfileDiscovery.java │ │ ├── SensorAspectRatioDiscovery.java │ │ ├── SensorConsumingDiscovery.java │ │ ├── SensorGWConsumingDiscovery.java │ │ ├── SensorGpioDiscovery.java │ │ ├── SensorLastUpdateDiscovery.java │ │ ├── SensorLastUpdateFFDiscovery.java │ │ ├── SensorLdrDiscovery.java │ │ ├── SensorLedsDiscovery.java │ │ ├── SensorProducingDiscovery.java │ │ ├── SensorVersionDiscovery.java │ │ ├── SensorWiFiDiscovery.java │ │ ├── SwitchBiasLightDiscovery.java │ │ └── SwitchRebootDiscovery.java │ ├── network │ ├── MessageClient.java │ ├── MessageServer.java │ ├── NetworkSingleton.java │ └── tcpUdp │ │ ├── TcpClient.java │ │ ├── UdpClient.java │ │ └── UdpServer.java │ └── utilities │ ├── ColorUtilities.java │ ├── CommonUtility.java │ └── PropertiesLoader.java └── resources ├── build_assets ├── org.dpsoftware.FireflyLuciferin.appdata.xml ├── org.dpsoftware.FireflyLuciferin.desktop ├── org.dpsoftware.FireflyLuciferin.snap.desktop └── org.dpsoftware.FireflyLuciferin.svg ├── logback.xml ├── messagebundle.properties ├── messagebundle_de.properties ├── messagebundle_en.properties ├── messagebundle_es.properties ├── messagebundle_fr.properties ├── messagebundle_hu.properties ├── messagebundle_it.properties ├── messagebundle_pl.properties ├── messagebundle_ru.properties ├── org └── dpsoftware │ └── gui │ ├── colorCorrectionDialog.fxml │ ├── controlTab.fxml │ ├── css │ ├── linux.css │ ├── main.css │ ├── theme-dark-blue.css │ ├── theme-dark-cyan.css │ ├── theme-dark-orange.css │ ├── theme-dark-purple.css │ ├── theme-dark.css │ └── webview.css │ ├── devicesTab.fxml │ ├── eyeCareDialog.fxml │ ├── img │ ├── luciferin_logo.png │ ├── luciferin_logo_center.png │ ├── luciferin_logo_center_off.png │ ├── luciferin_logo_grey.png │ ├── luciferin_logo_grey_center.png │ ├── luciferin_logo_grey_left.png │ ├── luciferin_logo_grey_right.png │ ├── luciferin_logo_grey_right_gold.png │ ├── luciferin_logo_left.png │ ├── luciferin_logo_left_off.png │ ├── luciferin_logo_off.png │ ├── luciferin_logo_play.png │ ├── luciferin_logo_play_center.png │ ├── luciferin_logo_play_left.png │ ├── luciferin_logo_play_right.png │ ├── luciferin_logo_play_right_gold.png │ ├── luciferin_logo_play_waiting.png │ ├── luciferin_logo_play_waiting_center.png │ ├── luciferin_logo_play_waiting_left.png │ ├── luciferin_logo_play_waiting_right.png │ ├── luciferin_logo_play_waiting_right_gold.png │ ├── luciferin_logo_right.png │ ├── luciferin_logo_right_gold.png │ ├── luciferin_logo_right_gold_off.png │ ├── luciferin_logo_right_off.png │ └── update │ │ ├── luciferin_logo.png │ │ ├── luciferin_logo_center.png │ │ ├── luciferin_logo_center_off.png │ │ ├── luciferin_logo_grey.png │ │ ├── luciferin_logo_grey_center.png │ │ ├── luciferin_logo_grey_left.png │ │ ├── luciferin_logo_grey_right.png │ │ ├── luciferin_logo_grey_right_gold.png │ │ ├── luciferin_logo_left.png │ │ ├── luciferin_logo_left_off.png │ │ ├── luciferin_logo_off.png │ │ ├── luciferin_logo_play.png │ │ ├── luciferin_logo_play_center.png │ │ ├── luciferin_logo_play_left.png │ │ ├── luciferin_logo_play_right.png │ │ ├── luciferin_logo_play_right_gold.png │ │ ├── luciferin_logo_play_waiting.png │ │ ├── luciferin_logo_play_waiting_center.png │ │ ├── luciferin_logo_play_waiting_left.png │ │ ├── luciferin_logo_play_waiting_right.png │ │ ├── luciferin_logo_play_waiting_right_gold.png │ │ ├── luciferin_logo_right.png │ │ ├── luciferin_logo_right_gold.png │ │ ├── luciferin_logo_right_gold_off.png │ │ └── luciferin_logo_right_off.png │ ├── info.fxml │ ├── infoCustomBar.fxml │ ├── ledsConfigTab.fxml │ ├── miscTab.fxml │ ├── modeTab.fxml │ ├── networkTab.fxml │ ├── satellitesDialog.fxml │ ├── settings.fxml │ ├── settingsCustomBar.fxml │ └── smoothingDialog.fxml └── project.properties /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | github: [ sblantipodi ] 2 | custom: [ "https://www.paypal.com/donate?hosted_button_id=ZEJM8ZLQW5E4A", "https://www.patreon.com/Luciferinambilightclone" ] 3 | 4 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.yaml: -------------------------------------------------------------------------------- 1 | name: Bug Report 2 | description: Report an issue with Luciferin. 3 | title: "[Bug]: " 4 | labels: [ bug, triage ] 5 | assignees: 6 | - sblantipodi 7 | body: 8 | - type: markdown 9 | attributes: 10 | value: | 11 | Thanks for taking the time to fill out this bug report! 12 | - type: input 13 | id: firefly-version 14 | attributes: 15 | label: Firefly Luciferin version 16 | description: Right click the tray icon and select info. 17 | placeholder: Tell us what you see! 18 | validations: 19 | required: true 20 | - type: input 21 | id: gw-version 22 | attributes: 23 | label: Glow Worm Luciferin version 24 | description: Right click the tray icon of Firefly Luciferin -> Settings -> Devices tab -> you can see the firmware version 25 | placeholder: Tell us what you see! 26 | validations: 27 | required: true 28 | - type: dropdown 29 | id: firmware-type 30 | attributes: 31 | label: Firmware type 32 | description: What firmwareare you running? 33 | options: 34 | - FULL 35 | - LIGHT 36 | validations: 37 | required: true 38 | - type: dropdown 39 | id: usb-mqtt 40 | attributes: 41 | label: What is the stream method? 42 | options: 43 | - WiFi Stream 44 | - MQTT Stream 45 | - USB 46 | validations: 47 | required: true 48 | - type: textarea 49 | id: steps-reproduce 50 | attributes: 51 | label: How to reproduce 52 | description: How can we reproduce the problem? Please give steps by steps instruction and drag n drop images (screenshots) if needed 53 | validations: 54 | required: true 55 | - type: textarea 56 | id: config 57 | attributes: 58 | label: Fiefly Luciferin config file 59 | description: Please copy and paste your Firefly Luciferin config file. 60 | placeholder: You can find your config file in ~(Documents or .config)\FireflyLuciferin\FireflyLuciferin.yaml file. Please remove your MQTT password if you don't want to share it 61 | render: shell 62 | - type: textarea 63 | id: logs 64 | attributes: 65 | label: Relevant log output 66 | description: Please copy and paste any relevant log output. This will be automatically formatted into code, so no need for backticks 67 | placeholder: You can find your logs in your ~(Documents or .config)\FireflyLuciferin\logs folder 68 | render: shell 69 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/config.yml: -------------------------------------------------------------------------------- 1 | blank_issues_enabled: false 2 | contact_links: 3 | - name: I want help 4 | url: https://discord.gg/aXf9jeN 5 | about: If you don't want to open an issue and you prefer direct help, then joining our chat is recommended; Just ask! 6 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.yaml: -------------------------------------------------------------------------------- 1 | name: Feature request 2 | description: Suggest an idea for the Luciferin project 3 | title: "[Feature request]: " 4 | labels: [ triage ] 5 | assignees: 6 | - sblantipodi 7 | body: 8 | - type: markdown 9 | attributes: 10 | value: | 11 | Thanks for taking the time to fill out this feature request! 12 | - type: textarea 13 | id: problem 14 | attributes: 15 | label: Is your feature request related to a problem? Please describe 16 | description: A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] 17 | - type: textarea 18 | id: solution 19 | attributes: 20 | label: Describe the solution you'd like 21 | description: A clear and concise description of what you want to happen 22 | - type: textarea 23 | id: alternatives 24 | attributes: 25 | label: Describe alternatives you've considered 26 | description: A clear and concise description of any alternative solutions or features you've considered 27 | 28 | -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | --- 2 | version: 2 3 | updates: 4 | - package-ecosystem: maven 5 | directory: "/" 6 | schedule: 7 | interval: daily 8 | open-pull-requests-limit: 10 9 | - package-ecosystem: github-actions 10 | directory: "/" 11 | schedule: 12 | interval: daily 13 | open-pull-requests-limit: 10 -------------------------------------------------------------------------------- /.github/workflows/stale.yml: -------------------------------------------------------------------------------- 1 | name: "Close stale issues" 2 | on: 3 | schedule: 4 | - cron: "0 0 * * *" 5 | 6 | jobs: 7 | stale: 8 | runs-on: ubuntu-24.04 9 | steps: 10 | - uses: actions/stale@main 11 | with: 12 | repo-token: ${{ secrets.GITHUB_TOKEN }} 13 | stale-issue-message: 'This issue is stale because it has been open 90 days with no activity. Remove stale label or comment or this will be closed in 5 days' 14 | days-before-stale: 90 15 | days-before-close: 5 16 | labels-to-add-when-unstale: 'keep' 17 | exempt-issue-labels: 'blocked,must,should,keep' 18 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /.idea/ 2 | /target/ 3 | *.lck 4 | *.msg 5 | *.deb 6 | *.log 7 | /logs/ 8 | FireflyLuciferin.iml 9 | /build_tools/wixtools/Firefly*.exe 10 | /fireflyluciferin.iml 11 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "build_tools"] 2 | path = build_tools 3 | url = https://github.com/sblantipodi/build_tools.git 4 | [submodule "src/main/resources/gstreamer"] 5 | path = src/main/resources/gstreamer 6 | url = https://github.com/sblantipodi/gstreamer.git 7 | -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | # Contributor Covenant Code of Conduct 2 | 3 | ## Our Pledge 4 | 5 | In the interest of fostering an open and welcoming environment, we as 6 | contributors and maintainers pledge to making participation in our project and 7 | our community a harassment-free experience for everyone, regardless of age, body 8 | size, disability, ethnicity, sex characteristics, gender identity and expression, 9 | level of experience, education, socio-economic status, nationality, personal 10 | appearance, race, religion, or sexual identity and orientation. 11 | 12 | ## Our Standards 13 | 14 | Examples of behavior that contributes to creating a positive environment 15 | include: 16 | 17 | * Using welcoming and inclusive language 18 | * Being respectful of differing viewpoints and experiences 19 | * Gracefully accepting constructive criticism 20 | * Focusing on what is best for the community 21 | * Showing empathy towards other community members 22 | 23 | Examples of unacceptable behavior by participants include: 24 | 25 | * The use of sexualized language or imagery and unwelcome sexual attention or 26 | advances 27 | * Trolling, insulting/derogatory comments, and personal or political attacks 28 | * Public or private harassment 29 | * Publishing others' private information, such as a physical or electronic 30 | address, without explicit permission 31 | * Other conduct which could reasonably be considered inappropriate in a 32 | professional setting 33 | 34 | ## Our Responsibilities 35 | 36 | Project maintainers are responsible for clarifying the standards of acceptable 37 | behavior and are expected to take appropriate and fair corrective action in 38 | response to any instances of unacceptable behavior. 39 | 40 | Project maintainers have the right and responsibility to remove, edit, or 41 | reject comments, commits, code, wiki edits, issues, and other contributions 42 | that are not aligned to this Code of Conduct, or to ban temporarily or 43 | permanently any contributor for other behaviors that they deem inappropriate, 44 | threatening, offensive, or harmful. 45 | 46 | ## Scope 47 | 48 | This Code of Conduct applies both within project spaces and in public spaces 49 | when an individual is representing the project or its community. Examples of 50 | representing a project or community include using an official project e-mail 51 | address, posting via an official social media account, or acting as an appointed 52 | representative at an online or offline event. Representation of a project may be 53 | further defined and clarified by project maintainers. 54 | 55 | ## Enforcement 56 | 57 | Instances of abusive, harassing, or otherwise unacceptable behavior may be 58 | reported by contacting the project team at support@dpsoftware.org. All 59 | complaints will be reviewed and investigated and will result in a response that 60 | is deemed necessary and appropriate to the circumstances. The project team is 61 | obligated to maintain confidentiality with regard to the reporter of an incident. 62 | Further details of specific enforcement policies may be posted separately. 63 | 64 | Project maintainers who do not follow or enforce the Code of Conduct in good 65 | faith may face temporary or permanent repercussions as determined by other 66 | members of the project's leadership. 67 | 68 | ## Attribution 69 | 70 | This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, 71 | available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html 72 | 73 | [homepage]: https://www.contributor-covenant.org 74 | 75 | For answers to common questions about this code of conduct, see 76 | https://www.contributor-covenant.org/faq 77 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | ## Contribution to Luciferin 2 | 3 | First, thank you for taking the time to contribute to this project. 4 | 5 | You can submit changes via GitHub Pull Requests. 6 | 7 | Please: 8 | 9 | 1. Unit test every change in behavior 10 | 2. Consider using the Continuous Integration (GitHub Actions is the preferred one) 11 | 12 | ## Feature suggestions 13 | 14 | If you want to suggest a new feature for Luciferin, please open a [Feature Requests](https://github.com/sblantipodi/firefly_luciferin/issues). 15 | -------------------------------------------------------------------------------- /data/img/Lighting-colour-temperature.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/Lighting-colour-temperature.jpg -------------------------------------------------------------------------------- /data/img/ambilight_color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/ambilight_color.png -------------------------------------------------------------------------------- /data/img/ambilight_show.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/ambilight_show.png -------------------------------------------------------------------------------- /data/img/asect_ratio.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/asect_ratio.png -------------------------------------------------------------------------------- /data/img/aspect_ratio.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/aspect_ratio.jpg -------------------------------------------------------------------------------- /data/img/aspect_ratio_tray.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/aspect_ratio_tray.jpg -------------------------------------------------------------------------------- /data/img/baud_rate.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/baud_rate.jpg -------------------------------------------------------------------------------- /data/img/c3_mini_v2.1.0_1_16x16.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/c3_mini_v2.1.0_1_16x16.jpg -------------------------------------------------------------------------------- /data/img/color_correction_dialog.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/color_correction_dialog.jpg -------------------------------------------------------------------------------- /data/img/color_order.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/color_order.jpg -------------------------------------------------------------------------------- /data/img/d1_mini_lite_v1.0.0_1_16x16.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/d1_mini_lite_v1.0.0_1_16x16.jpg -------------------------------------------------------------------------------- /data/img/d1_mini_pro_v2.0.0_1_16x16.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/d1_mini_pro_v2.0.0_1_16x16.jpg -------------------------------------------------------------------------------- /data/img/d1_mini_v4.0.0_1_16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/d1_mini_v4.0.0_1_16x16.png -------------------------------------------------------------------------------- /data/img/dark_theme.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/dark_theme.png -------------------------------------------------------------------------------- /data/img/default_theme.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/default_theme.png -------------------------------------------------------------------------------- /data/img/device_tab.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/device_tab.jpg -------------------------------------------------------------------------------- /data/img/dig2go.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/dig2go.jpg -------------------------------------------------------------------------------- /data/img/doom_eternal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/doom_eternal.png -------------------------------------------------------------------------------- /data/img/downloading.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/downloading.jpg -------------------------------------------------------------------------------- /data/img/effects.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/effects.jpg -------------------------------------------------------------------------------- /data/img/enable_wifi.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/enable_wifi.jpg -------------------------------------------------------------------------------- /data/img/enable_wifi_2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/enable_wifi_2.jpg -------------------------------------------------------------------------------- /data/img/enable_wifi_mixed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/enable_wifi_mixed.png -------------------------------------------------------------------------------- /data/img/esp32poe.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/esp32poe.jpg -------------------------------------------------------------------------------- /data/img/eye_care_dialog.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/eye_care_dialog.jpg -------------------------------------------------------------------------------- /data/img/framerate_counter_javafx_menu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/framerate_counter_javafx_menu.png -------------------------------------------------------------------------------- /data/img/gpio1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/gpio1.jpg -------------------------------------------------------------------------------- /data/img/gpio2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/gpio2.jpg -------------------------------------------------------------------------------- /data/img/groupleds.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/groupleds.jpg -------------------------------------------------------------------------------- /data/img/groupleds_ti.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/groupleds_ti.jpg -------------------------------------------------------------------------------- /data/img/ha_integration_auto.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/ha_integration_auto.jpg -------------------------------------------------------------------------------- /data/img/ha_luciferin.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/ha_luciferin.jpg -------------------------------------------------------------------------------- /data/img/hue.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/hue.jpg -------------------------------------------------------------------------------- /data/img/info_screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/info_screen.png -------------------------------------------------------------------------------- /data/img/init.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/init.png -------------------------------------------------------------------------------- /data/img/java_fast_screen_capture_logo.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/java_fast_screen_capture_logo.icns -------------------------------------------------------------------------------- /data/img/java_fast_screen_capture_logo.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/java_fast_screen_capture_logo.ico -------------------------------------------------------------------------------- /data/img/leds_settings.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/leds_settings.jpg -------------------------------------------------------------------------------- /data/img/ledstirp.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/ledstirp.jpg -------------------------------------------------------------------------------- /data/img/ledstrip.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/ledstrip.jpg -------------------------------------------------------------------------------- /data/img/libayatana_appindicator.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/libayatana_appindicator.png -------------------------------------------------------------------------------- /data/img/libnotify.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/libnotify.png -------------------------------------------------------------------------------- /data/img/lightness.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/lightness.jpg -------------------------------------------------------------------------------- /data/img/lightness_brightness.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/lightness_brightness.jpg -------------------------------------------------------------------------------- /data/img/ligth_firmware_firmware_download.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/ligth_firmware_firmware_download.jpg -------------------------------------------------------------------------------- /data/img/linear_interpolation_frame_insertion.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/linear_interpolation_frame_insertion.jpg -------------------------------------------------------------------------------- /data/img/linux_loopback.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/linux_loopback.png -------------------------------------------------------------------------------- /data/img/linux_ui.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/linux_ui.png -------------------------------------------------------------------------------- /data/img/linux_version.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/linux_version.jpg -------------------------------------------------------------------------------- /data/img/linuxpipelines.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/linuxpipelines.jpg -------------------------------------------------------------------------------- /data/img/luciferin_case.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/luciferin_case.png -------------------------------------------------------------------------------- /data/img/luciferin_case_4_photos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/luciferin_case_4_photos.png -------------------------------------------------------------------------------- /data/img/luciferin_logo.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/luciferin_logo.ico -------------------------------------------------------------------------------- /data/img/luciferin_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/luciferin_logo.png -------------------------------------------------------------------------------- /data/img/luciferin_logo_center.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/luciferin_logo_center.ico -------------------------------------------------------------------------------- /data/img/luciferin_logo_center.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/luciferin_logo_center.png -------------------------------------------------------------------------------- /data/img/luciferin_logo_left.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/luciferin_logo_left.ico -------------------------------------------------------------------------------- /data/img/luciferin_logo_left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/luciferin_logo_left.png -------------------------------------------------------------------------------- /data/img/luciferin_logo_right.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/luciferin_logo_right.ico -------------------------------------------------------------------------------- /data/img/luciferin_logo_right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/luciferin_logo_right.png -------------------------------------------------------------------------------- /data/img/luciferin_rgb_rgbw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/luciferin_rgb_rgbw.png -------------------------------------------------------------------------------- /data/img/misc_tab.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/misc_tab.jpg -------------------------------------------------------------------------------- /data/img/misc_tab_color.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/misc_tab_color.jpg -------------------------------------------------------------------------------- /data/img/mode_settings.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/mode_settings.jpg -------------------------------------------------------------------------------- /data/img/moitorled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/moitorled.png -------------------------------------------------------------------------------- /data/img/mqtt_settings.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/mqtt_settings.jpg -------------------------------------------------------------------------------- /data/img/multi_display/gold_instance.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/multi_display/gold_instance.jpg -------------------------------------------------------------------------------- /data/img/multi_display/multimonitor_1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/multi_display/multimonitor_1.jpg -------------------------------------------------------------------------------- /data/img/multi_display/multimonitor_2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/multi_display/multimonitor_2.jpg -------------------------------------------------------------------------------- /data/img/multi_display/multimonitor_3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/multi_display/multimonitor_3.jpg -------------------------------------------------------------------------------- /data/img/multi_display/multimonitor_6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/multi_display/multimonitor_6.jpg -------------------------------------------------------------------------------- /data/img/multi_display/multimonitor_7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/multi_display/multimonitor_7.jpg -------------------------------------------------------------------------------- /data/img/multi_display/triple_monitor_tray.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/multi_display/triple_monitor_tray.jpg -------------------------------------------------------------------------------- /data/img/multi_display/triple_monitor_tray_grey.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/multi_display/triple_monitor_tray_grey.jpg -------------------------------------------------------------------------------- /data/img/multi_display/triple_monitor_tray_single.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/multi_display/triple_monitor_tray_single.jpg -------------------------------------------------------------------------------- /data/img/new_version.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/new_version.jpg -------------------------------------------------------------------------------- /data/img/night_mode.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/night_mode.jpg -------------------------------------------------------------------------------- /data/img/pcb_solder_how_to.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/pcb_solder_how_to.jpg -------------------------------------------------------------------------------- /data/img/peak_brightness.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/peak_brightness.jpg -------------------------------------------------------------------------------- /data/img/pillarbox_letterbox_test/complete_black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/pillarbox_letterbox_test/complete_black.png -------------------------------------------------------------------------------- /data/img/pillarbox_letterbox_test/letterbox.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/pillarbox_letterbox_test/letterbox.jpg -------------------------------------------------------------------------------- /data/img/pillarbox_letterbox_test/letterbox2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/pillarbox_letterbox_test/letterbox2.jpg -------------------------------------------------------------------------------- /data/img/pillarbox_letterbox_test/letterbox2_b.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/pillarbox_letterbox_test/letterbox2_b.jpg -------------------------------------------------------------------------------- /data/img/pillarbox_letterbox_test/letterbox3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/pillarbox_letterbox_test/letterbox3.jpg -------------------------------------------------------------------------------- /data/img/pillarbox_letterbox_test/letterbox3b.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/pillarbox_letterbox_test/letterbox3b.jpg -------------------------------------------------------------------------------- /data/img/pillarbox_letterbox_test/letterbox_b.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/pillarbox_letterbox_test/letterbox_b.jpg -------------------------------------------------------------------------------- /data/img/pillarbox_letterbox_test/no_auto.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/pillarbox_letterbox_test/no_auto.png -------------------------------------------------------------------------------- /data/img/pillarbox_letterbox_test/pillarbox.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/pillarbox_letterbox_test/pillarbox.jpg -------------------------------------------------------------------------------- /data/img/pillarbox_letterbox_test/pillarbox.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/pillarbox_letterbox_test/pillarbox.png -------------------------------------------------------------------------------- /data/img/pillarbox_letterbox_test/very_black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/pillarbox_letterbox_test/very_black.png -------------------------------------------------------------------------------- /data/img/power_saving.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/power_saving.jpg -------------------------------------------------------------------------------- /data/img/profiles.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/profiles.jpg -------------------------------------------------------------------------------- /data/img/pullup_res.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/pullup_res.jpg -------------------------------------------------------------------------------- /data/img/quindor_esp32_eth.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/quindor_esp32_eth.png -------------------------------------------------------------------------------- /data/img/quinled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/quinled.png -------------------------------------------------------------------------------- /data/img/relay.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/relay.jpg -------------------------------------------------------------------------------- /data/img/rgbcym_degree.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/rgbcym_degree.jpg -------------------------------------------------------------------------------- /data/img/s2_mini_v1.0.0_1_16x16.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/s2_mini_v1.0.0_1_16x16.jpg -------------------------------------------------------------------------------- /data/img/s3_mini_v1.0.0_1_16x16.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/s3_mini_v1.0.0_1_16x16.jpg -------------------------------------------------------------------------------- /data/img/sat1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/sat1.jpg -------------------------------------------------------------------------------- /data/img/sat2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/sat2.jpg -------------------------------------------------------------------------------- /data/img/satellite_1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/satellite_1.jpg -------------------------------------------------------------------------------- /data/img/satellite_2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/satellite_2.jpg -------------------------------------------------------------------------------- /data/img/saturation.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/saturation.jpg -------------------------------------------------------------------------------- /data/img/settings_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/settings_1.png -------------------------------------------------------------------------------- /data/img/settings_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/settings_2.png -------------------------------------------------------------------------------- /data/img/settings_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/settings_3.png -------------------------------------------------------------------------------- /data/img/settings_screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/settings_screen.png -------------------------------------------------------------------------------- /data/img/setup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/setup.png -------------------------------------------------------------------------------- /data/img/simd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/simd.png -------------------------------------------------------------------------------- /data/img/smashing_threads.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/smashing_threads.jpg -------------------------------------------------------------------------------- /data/img/smoothing_adv.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/smoothing_adv.png -------------------------------------------------------------------------------- /data/img/smoothing_frame_insertion.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/smoothing_frame_insertion.jpg -------------------------------------------------------------------------------- /data/img/smoothing_framerate.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/smoothing_framerate.jpg -------------------------------------------------------------------------------- /data/img/static_ip.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/static_ip.jpg -------------------------------------------------------------------------------- /data/img/test_image_dominant.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/test_image_dominant.jpg -------------------------------------------------------------------------------- /data/img/testimage.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/testimage.jpg -------------------------------------------------------------------------------- /data/img/testimage_luciferini.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/testimage_luciferini.jpg -------------------------------------------------------------------------------- /data/img/theme_selector.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/theme_selector.png -------------------------------------------------------------------------------- /data/img/tinypico.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/tinypico.jpg -------------------------------------------------------------------------------- /data/img/tray_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/tray_1.png -------------------------------------------------------------------------------- /data/img/tray_icon_profiles.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/tray_icon_profiles.png -------------------------------------------------------------------------------- /data/img/update_changelog.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/update_changelog.jpg -------------------------------------------------------------------------------- /data/img/upgrade_success.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/upgrade_success.jpg -------------------------------------------------------------------------------- /data/img/wayland.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/wayland.png -------------------------------------------------------------------------------- /data/img/web_installer/1_webinstaller.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/web_installer/1_webinstaller.png -------------------------------------------------------------------------------- /data/img/web_installer/2_webinstaller.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/web_installer/2_webinstaller.png -------------------------------------------------------------------------------- /data/img/web_installer/3_webinstaller.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/web_installer/3_webinstaller.png -------------------------------------------------------------------------------- /data/img/web_installer/4_webinstaller.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/web_installer/4_webinstaller.png -------------------------------------------------------------------------------- /data/img/web_installer/5_webinstaller.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/web_installer/5_webinstaller.png -------------------------------------------------------------------------------- /data/img/web_installer/6_webinstaller.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/web_installer/6_webinstaller.png -------------------------------------------------------------------------------- /data/img/web_installer/7_webinstaller.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/web_installer/7_webinstaller.png -------------------------------------------------------------------------------- /data/img/web_installer/8_webinstaller.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/web_installer/8_webinstaller.png -------------------------------------------------------------------------------- /data/img/webinterfaceaccess.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/webinterfaceaccess.png -------------------------------------------------------------------------------- /data/img/white_balance/1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/white_balance/1.jpg -------------------------------------------------------------------------------- /data/img/white_balance/2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/white_balance/2.jpg -------------------------------------------------------------------------------- /data/img/white_balance/3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/white_balance/3.jpg -------------------------------------------------------------------------------- /data/img/white_balance/4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/white_balance/4.jpg -------------------------------------------------------------------------------- /data/img/white_balance/5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/white_balance/5.jpg -------------------------------------------------------------------------------- /data/img/white_balance/6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/white_balance/6.jpg -------------------------------------------------------------------------------- /data/img/white_balance/gamma.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/white_balance/gamma.jpg -------------------------------------------------------------------------------- /data/img/whitebalance.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/whitebalance.png -------------------------------------------------------------------------------- /data/img/wt32-eth01.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/wt32-eth01.jpg -------------------------------------------------------------------------------- /data/img/yt_music_mode.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/data/img/yt_music_mode.JPG -------------------------------------------------------------------------------- /docs/_config.yml: -------------------------------------------------------------------------------- 1 | name: Luciferin changelog 2 | title: null 3 | footer: null -------------------------------------------------------------------------------- /docs/static/logos/luciferin_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/docs/static/logos/luciferin_logo.png -------------------------------------------------------------------------------- /docs/static/logos/pc_ambilight_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/docs/static/logos/pc_ambilight_logo.png -------------------------------------------------------------------------------- /src/main/java/module-info.java: -------------------------------------------------------------------------------- 1 | module org.dpsoftware { 2 | 3 | requires javafx.controls; 4 | requires javafx.fxml; 5 | requires javafx.web; 6 | requires static lombok; 7 | requires java.desktop; 8 | requires com.sun.jna.platform; 9 | requires com.sun.jna; 10 | requires xt.audio; 11 | requires org.freedesktop.gstreamer; 12 | requires com.fazecast.jSerialComm; 13 | requires org.eclipse.paho.client.mqttv3; 14 | requires com.fasterxml.jackson.databind; 15 | requires com.fasterxml.jackson.dataformat.yaml; 16 | requires java.net.http; 17 | requires ch.qos.logback.classic; 18 | requires org.freedesktop.dbus; 19 | requires jdk.incubator.vector; 20 | requires java.management; 21 | 22 | opens org.dpsoftware to javafx.fxml, javafx.web; 23 | opens org.dpsoftware.gui to javafx.fxml, javafx.web; 24 | opens org.dpsoftware.gui.controllers to javafx.fxml; 25 | opens org.dpsoftware.managers.dto.mqttdiscovery to com.fasterxml.jackson.databind; 26 | 27 | exports org.dpsoftware; 28 | exports org.dpsoftware.audio; 29 | exports org.dpsoftware.config; 30 | exports org.dpsoftware.grabber; 31 | exports org.dpsoftware.gui; 32 | exports org.dpsoftware.gui.controllers; 33 | exports org.dpsoftware.gui.elements; 34 | exports org.dpsoftware.gui.bindings.appindicator; 35 | exports org.dpsoftware.gui.bindings.notify; 36 | exports org.dpsoftware.managers; 37 | exports org.dpsoftware.managers.dto; 38 | exports org.dpsoftware.managers.dto.mqttdiscovery; 39 | exports org.dpsoftware.utilities; 40 | exports org.dpsoftware.network; 41 | 42 | opens org.dpsoftware.audio to javafx.fxml, javafx.web; 43 | opens org.dpsoftware.grabber to javafx.fxml, javafx.web; 44 | exports org.dpsoftware.gui.trayicon; 45 | opens org.dpsoftware.gui.trayicon to javafx.fxml, javafx.web; 46 | } -------------------------------------------------------------------------------- /src/main/java/org/dpsoftware/JavaFXStarter.java: -------------------------------------------------------------------------------- 1 | /* 2 | JavaFXStarter.java 3 | 4 | Firefly Luciferin, very fast Java Screen Capture software designed 5 | for Glow Worm Luciferin firmware. 6 | 7 | Copyright © 2020 - 2025 Davide Perini (https://github.com/sblantipodi) 8 | 9 | This program is free software: you can redistribute it and/or modify 10 | it under the terms of the GNU General Public License as published by 11 | the Free Software Foundation, either version 3 of the License, or 12 | (at your option) any later version. 13 | 14 | This program is distributed in the hope that it will be useful, 15 | but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | GNU General Public License for more details. 18 | 19 | You should have received a copy of the GNU General Public License 20 | along with this program. If not, see . 21 | */ 22 | package org.dpsoftware; 23 | 24 | import org.dpsoftware.config.Constants; 25 | import org.dpsoftware.config.InstanceConfigurer; 26 | 27 | import java.util.Objects; 28 | 29 | /** 30 | * Where everything begins 31 | * The reason for this is that the Main app extends Application and has a main method. 32 | * If that is the case, the LauncherHelper will check for the javafx.graphics module to be present as a named module. 33 | * If that module is not present, the launch is aborted. 34 | * This error comes from sun.launcher.LauncherHelper in the java.base module. 35 | */ 36 | public class JavaFXStarter { 37 | 38 | static String[] startupArgs = null; 39 | 40 | /** 41 | * Let's play! 42 | * 43 | * @param args args[0] contains the child number [1,2,3] to spawn, args[1] contains the profile to use 44 | */ 45 | public static void main(String... args) { 46 | startupArgs = args; 47 | // Don't log in this class, log is not initialized yet. 48 | System.setProperty(Constants.LUCIFERIN_PLACEHOLDER, InstanceConfigurer.getConfigPath()); 49 | FireflyLuciferin.main(Objects.requireNonNull(args)); 50 | } 51 | 52 | } -------------------------------------------------------------------------------- /src/main/java/org/dpsoftware/audio/AudioSingleton.java: -------------------------------------------------------------------------------- 1 | /* 2 | AudioSingleton.java 3 | 4 | Firefly Luciferin, very fast Java Screen Capture software designed 5 | for Glow Worm Luciferin firmware. 6 | 7 | Copyright © 2020 - 2025 Davide Perini (https://github.com/sblantipodi) 8 | 9 | This program is free software: you can redistribute it and/or modify 10 | it under the terms of the GNU General Public License as published by 11 | the Free Software Foundation, either version 3 of the License, or 12 | (at your option) any later version. 13 | 14 | This program is distributed in the hope that it will be useful, 15 | but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | GNU General Public License for more details. 18 | 19 | You should have received a copy of the GNU General Public License 20 | along with this program. If not, see . 21 | */ 22 | package org.dpsoftware.audio; 23 | 24 | import lombok.Getter; 25 | import lombok.NoArgsConstructor; 26 | import lombok.Setter; 27 | import org.dpsoftware.managers.dto.AudioDevice; 28 | 29 | import java.util.LinkedHashMap; 30 | import java.util.Map; 31 | 32 | /** 33 | * Audio singleton used to share common data 34 | */ 35 | @Getter 36 | @Setter 37 | @NoArgsConstructor 38 | public class AudioSingleton { 39 | 40 | @Getter 41 | private final static AudioSingleton instance; 42 | 43 | static { 44 | instance = new AudioSingleton(); 45 | } 46 | 47 | public volatile boolean RUNNING_AUDIO = false; 48 | public int AUDIO_BRIGHTNESS = 255; 49 | public Map audioDevices = new LinkedHashMap<>(); 50 | 51 | } 52 | 53 | -------------------------------------------------------------------------------- /src/main/java/org/dpsoftware/audio/AudioUtility.java: -------------------------------------------------------------------------------- 1 | /* 2 | AudioUtility.java 3 | 4 | Firefly Luciferin, very fast Java Screen Capture software designed 5 | for Glow Worm Luciferin firmware. 6 | 7 | Copyright © 2020 - 2025 Davide Perini (https://github.com/sblantipodi) 8 | 9 | This program is free software: you can redistribute it and/or modify 10 | it under the terms of the GNU General Public License as published by 11 | the Free Software Foundation, either version 3 of the License, or 12 | (at your option) any later version. 13 | 14 | This program is distributed in the hope that it will be useful, 15 | but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | GNU General Public License for more details. 18 | 19 | You should have received a copy of the GNU General Public License 20 | along with this program. If not, see . 21 | */ 22 | package org.dpsoftware.audio; 23 | 24 | import org.dpsoftware.managers.dto.AudioDevice; 25 | 26 | import java.util.Map; 27 | 28 | /** 29 | * Interface containing audio recording methods 30 | */ 31 | public interface AudioUtility { 32 | 33 | /** 34 | * Start VU Meter effect 35 | */ 36 | void startVolumeLevelMeter(); 37 | 38 | /** 39 | * Stop audio effect 40 | */ 41 | void stopVolumeLevelMeter(); 42 | 43 | /** 44 | * Return the default audio loopback device 45 | * 46 | * @return audio loopback device 47 | */ 48 | Map getLoopbackDevices(); 49 | 50 | } 51 | -------------------------------------------------------------------------------- /src/main/java/org/dpsoftware/config/InstanceConverter.java: -------------------------------------------------------------------------------- 1 | /* 2 | InstanceConverter.java 3 | 4 | Firefly Luciferin, very fast Java Screen Capture software designed 5 | for Glow Worm Luciferin firmware. 6 | 7 | Copyright © 2020 - 2025 Davide Perini (https://github.com/sblantipodi) 8 | 9 | This program is free software: you can redistribute it and/or modify 10 | it under the terms of the GNU General Public License as published by 11 | the Free Software Foundation, either version 3 of the License, or 12 | (at your option) any later version. 13 | 14 | This program is distributed in the hope that it will be useful, 15 | but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | GNU General Public License for more details. 18 | 19 | You should have received a copy of the GNU General Public License 20 | along with this program. If not, see . 21 | */ 22 | package org.dpsoftware.config; 23 | 24 | import ch.qos.logback.classic.pattern.ClassicConverter; 25 | import ch.qos.logback.classic.spi.ILoggingEvent; 26 | import org.dpsoftware.MainSingleton; 27 | 28 | /** 29 | * Simple converter used to log the instance number. 30 | */ 31 | public class InstanceConverter extends ClassicConverter { 32 | 33 | /* 34 | * Pattern converted used to inject instance number into the logger 35 | */ 36 | @Override 37 | public String convert(ILoggingEvent event) { 38 | return "[Instance #" + MainSingleton.getInstance().whoAmI + "]"; 39 | } 40 | 41 | } -------------------------------------------------------------------------------- /src/main/java/org/dpsoftware/config/LocalizedEnum.java: -------------------------------------------------------------------------------- 1 | /* 2 | LocalizedEnum.java 3 | 4 | Firefly Luciferin, very fast Java Screen Capture software designed 5 | for Glow Worm Luciferin firmware. 6 | 7 | Copyright © 2020 - 2025 Davide Perini (https://github.com/sblantipodi) 8 | 9 | This program is free software: you can redistribute it and/or modify 10 | it under the terms of the GNU General Public License as published by 11 | the Free Software Foundation, either version 3 of the License, or 12 | (at your option) any later version. 13 | 14 | This program is distributed in the hope that it will be useful, 15 | but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | GNU General Public License for more details. 18 | 19 | You should have received a copy of the GNU General Public License 20 | along with this program. If not, see . 21 | */ 22 | package org.dpsoftware.config; 23 | 24 | import org.dpsoftware.utilities.CommonUtility; 25 | 26 | import java.util.Arrays; 27 | import java.util.Locale; 28 | 29 | /** 30 | * Interface used for enum localization 31 | */ 32 | public interface LocalizedEnum { 33 | 34 | /** 35 | * Get a generic localized enum starting from the enum value String 36 | * 37 | * @param enumClass generic enum class 38 | * @param enumValueString enum String 39 | * @param baseValue if true check the Locale.English string, if false get the locale in use 40 | * @param enum class type 41 | * @return specific enum 42 | */ 43 | static & LocalizedEnum> E fromStr(Class enumClass, String enumValueString, boolean baseValue) { 44 | return Arrays.stream(enumClass.getEnumConstants()) 45 | .filter(genericEnum -> enumValueString.equalsIgnoreCase(baseValue ? genericEnum.getBaseI18n() : genericEnum.getI18n())) 46 | .findFirst() 47 | .orElse(null); 48 | } 49 | 50 | /** 51 | * Get a generic localized enum starting from the enum value String 52 | * 53 | * @param enumClass generic enum class 54 | * @param enumValueString enum String 55 | * @param enum class type 56 | * @return specific enum 57 | */ 58 | static & LocalizedEnum> E fromBaseStr(Class enumClass, String enumValueString) { 59 | return fromStr(enumClass, enumValueString, true); 60 | } 61 | 62 | /** 63 | * Get a generic localized enum starting from the enum value String 64 | * 65 | * @param enumClass generic enum class 66 | * @param enumValueString enum String 67 | * @param enum class type 68 | * @return specifi enum 69 | */ 70 | static & LocalizedEnum> E fromStr(Class enumClass, String enumValueString) { 71 | return fromStr(enumClass, enumValueString, false); 72 | } 73 | 74 | /** 75 | * Get a generic enum value 76 | * 77 | * @return enum value String 78 | */ 79 | String getValue(); 80 | 81 | /** 82 | * Get a generic localized enum value 83 | * 84 | * @return enum localized String 85 | */ 86 | default String getI18n() { 87 | return CommonUtility.getWord(getValue()); 88 | } 89 | 90 | /** 91 | * Get a generic localized enum value 92 | * 93 | * @return enum localized String using Locale.ENGLISH 94 | */ 95 | default String getBaseI18n() { 96 | return CommonUtility.getWord(getValue(), Locale.ENGLISH); 97 | } 98 | 99 | } 100 | -------------------------------------------------------------------------------- /src/main/java/org/dpsoftware/grabber/DbusScreenCast.java: -------------------------------------------------------------------------------- 1 | /* 2 | DbusScreenCast.java 3 | 4 | Firefly Luciferin, very fast Java Screen Capture software designed 5 | for Glow Worm Luciferin firmware. 6 | 7 | Copyright © 2020 - 2025 Davide Perini (https://github.com/sblantipodi) 8 | 9 | This program is free software: you can redistribute it and/or modify 10 | it under the terms of the GNU General Public License as published by 11 | the Free Software Foundation, either version 3 of the License, or 12 | (at your option) any later version. 13 | 14 | This program is distributed in the hope that it will be useful, 15 | but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | GNU General Public License for more details. 18 | 19 | You should have received a copy of the GNU General Public License 20 | along with this program. If not, see . 21 | */ 22 | package org.dpsoftware.grabber; 23 | 24 | import org.freedesktop.dbus.DBusPath; 25 | import org.freedesktop.dbus.FileDescriptor; 26 | import org.freedesktop.dbus.annotations.DBusInterfaceName; 27 | import org.freedesktop.dbus.annotations.DBusProperty; 28 | import org.freedesktop.dbus.annotations.DBusProperty.Access; 29 | import org.freedesktop.dbus.interfaces.DBusInterface; 30 | import org.freedesktop.dbus.types.UInt32; 31 | import org.freedesktop.dbus.types.Variant; 32 | 33 | import java.util.Map; 34 | 35 | /** 36 | * Auto-generated class. 37 | */ 38 | @DBusProperty(name = "AvailableSourceTypes", type = UInt32.class, access = Access.READ) 39 | @DBusProperty(name = "AvailableCursorModes", type = UInt32.class, access = Access.READ) 40 | @DBusProperty(name = "version", type = UInt32.class, access = Access.READ) 41 | @DBusInterfaceName(value = "org.freedesktop.portal.ScreenCast") 42 | public interface DbusScreenCast extends DBusInterface { 43 | 44 | void CreateSession(Map> options); 45 | 46 | void SelectSources(DBusPath sessionHandle, Map> options); 47 | 48 | DBusPath Start(DBusPath sessionHandle, String parentWindow, Map> options); 49 | 50 | FileDescriptor OpenPipeWireRemote(DBusPath sessionHandle, Map> options); 51 | 52 | } 53 | -------------------------------------------------------------------------------- /src/main/java/org/dpsoftware/grabber/GrabberSingleton.java: -------------------------------------------------------------------------------- 1 | /* 2 | GrabberSingleton.java 3 | 4 | Firefly Luciferin, very fast Java Screen Capture software designed 5 | for Glow Worm Luciferin firmware. 6 | 7 | Copyright © 2020 - 2025 Davide Perini (https://github.com/sblantipodi) 8 | 9 | This program is free software: you can redistribute it and/or modify 10 | it under the terms of the GNU General Public License as published by 11 | the Free Software Foundation, either version 3 of the License, or 12 | (at your option) any later version. 13 | 14 | This program is distributed in the hope that it will be useful, 15 | but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | GNU General Public License for more details. 18 | 19 | You should have received a copy of the GNU General Public License 20 | along with this program. If not, see . 21 | */ 22 | package org.dpsoftware.grabber; 23 | 24 | import lombok.Getter; 25 | import lombok.NoArgsConstructor; 26 | import lombok.Setter; 27 | import lombok.extern.slf4j.Slf4j; 28 | import org.dpsoftware.LEDCoordinate; 29 | import org.dpsoftware.NativeExecutor; 30 | import org.dpsoftware.managers.dto.AudioDevice; 31 | import org.freedesktop.gstreamer.Pipeline; 32 | 33 | import java.awt.*; 34 | import java.awt.image.BufferedImage; 35 | import java.util.ArrayList; 36 | import java.util.LinkedHashMap; 37 | import java.util.List; 38 | import java.util.Map; 39 | import java.util.concurrent.Executors; 40 | import java.util.concurrent.ScheduledExecutorService; 41 | 42 | /** 43 | * Grabber singleton used to share common data 44 | */ 45 | @Getter 46 | @Setter 47 | @NoArgsConstructor 48 | @SuppressWarnings("all") 49 | @Slf4j 50 | public class GrabberSingleton { 51 | 52 | @Getter 53 | private final static GrabberSingleton instance; 54 | 55 | static { 56 | instance = new GrabberSingleton(); 57 | } 58 | 59 | public volatile boolean RUNNING_AUDIO = false; 60 | public int AUDIO_BRIGHTNESS = 255; 61 | public Map audioDevices = new LinkedHashMap<>(); 62 | public float rainbowHue = 0; 63 | public boolean CHECK_ASPECT_RATIO = true; 64 | // Only one instace must be used, Java Garbage Collector will not be fast enough in freeing memory with more instances 65 | public BufferedImage screen; 66 | // LED Matrix Map 67 | public LinkedHashMap ledMatrix; 68 | // Screen capture rectangle 69 | public Rectangle rect; 70 | // GStreamer Rendering pipeline 71 | public Pipeline pipe; 72 | float maxPeak, maxRms = 0; 73 | float maxPeakLeft, maxRmsLeft = 0; 74 | float maxPeakRight, maxRmsRight = 0; 75 | int runNumber = 0; 76 | float lastRmsRun = 0, lastRmsRunLeft = 0, lastRmsRunRight = 0; 77 | float lastPeackRun = 0, lastPeackRunLeft = 0, lastPeackRunRight = 0; 78 | // Custom JNA Class for GDI32Util 79 | CustomGDI32Util customGDI32Util; 80 | List nanoSimd = new ArrayList<>(); 81 | List nanoScalar = new ArrayList<>(); 82 | ScheduledExecutorService nightLightExecutor = Executors.newScheduledThreadPool(1); 83 | boolean nightLightAuto = false; 84 | Runnable nightLightTask = () -> { 85 | GrabberSingleton.getInstance().setNightLightAuto(NativeExecutor.isNightLight()); 86 | log.trace("Night Light Auto: " + GrabberSingleton.getInstance().isNightLightAuto()); 87 | }; 88 | 89 | } 90 | 91 | -------------------------------------------------------------------------------- /src/main/java/org/dpsoftware/gui/GuiSingleton.java: -------------------------------------------------------------------------------- 1 | /* 2 | GuiSingleton.java 3 | 4 | Firefly Luciferin, very fast Java Screen Capture software designed 5 | for Glow Worm Luciferin firmware. 6 | 7 | Copyright © 2020 - 2025 Davide Perini (https://github.com/sblantipodi) 8 | 9 | This program is free software: you can redistribute it and/or modify 10 | it under the terms of the GNU General Public License as published by 11 | the Free Software Foundation, either version 3 of the License, or 12 | (at your option) any later version. 13 | 14 | This program is distributed in the hope that it will be useful, 15 | but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | GNU General Public License for more details. 18 | 19 | You should have received a copy of the GNU General Public License 20 | along with this program. If not, see . 21 | */ 22 | package org.dpsoftware.gui; 23 | 24 | import javafx.collections.FXCollections; 25 | import javafx.collections.ObservableList; 26 | import lombok.Getter; 27 | import lombok.NoArgsConstructor; 28 | import lombok.Setter; 29 | import org.dpsoftware.gui.elements.GlowWormDevice; 30 | import org.dpsoftware.gui.elements.Satellite; 31 | 32 | import javax.swing.*; 33 | import java.awt.*; 34 | 35 | /** 36 | * GUI singleton used to share common data 37 | */ 38 | @Getter 39 | @Setter 40 | @NoArgsConstructor 41 | public class GuiSingleton { 42 | 43 | @Getter 44 | private final static GuiSingleton instance; 45 | 46 | static { 47 | instance = new GuiSingleton(); 48 | } 49 | 50 | public JPopupMenu popupMenu; 51 | public float hueTestImageValue = 0.0F; 52 | public Color selectedChannel = Color.BLACK; 53 | public ObservableList deviceTableData = FXCollections.observableArrayList(); 54 | public ObservableList deviceTableDataTemp = FXCollections.observableArrayList(); 55 | public boolean oldFirmwareDevice = false; 56 | public ObservableList satellitesTableData = FXCollections.observableArrayList(); 57 | public boolean firmTypeFull = false; 58 | public boolean upgrade = false; 59 | 60 | } 61 | 62 | -------------------------------------------------------------------------------- /src/main/java/org/dpsoftware/gui/bindings/CommonBinding.java: -------------------------------------------------------------------------------- 1 | /* 2 | CommonBinding.java 3 | 4 | Firefly Luciferin, very fast Java Screen Capture software designed 5 | for Glow Worm Luciferin firmware. 6 | 7 | Copyright © 2020 - 2025 Davide Perini (https://github.com/sblantipodi) 8 | 9 | This program is free software: you can redistribute it and/or modify 10 | it under the terms of the GNU General Public License as published by 11 | the Free Software Foundation, either version 3 of the License, or 12 | (at your option) any later version. 13 | 14 | This program is distributed in the hope that it will be useful, 15 | but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | GNU General Public License for more details. 18 | 19 | You should have received a copy of the GNU General Public License 20 | along with this program. If not, see . 21 | */ 22 | package org.dpsoftware.gui.bindings; 23 | 24 | import lombok.extern.slf4j.Slf4j; 25 | import org.dpsoftware.NativeExecutor; 26 | import org.dpsoftware.config.Constants; 27 | 28 | import java.io.IOException; 29 | import java.nio.file.Files; 30 | import java.nio.file.Path; 31 | import java.nio.file.Paths; 32 | import java.util.LinkedList; 33 | import java.util.List; 34 | import java.util.Objects; 35 | import java.util.stream.Stream; 36 | 37 | /** 38 | * Common methods for jextracted bindings 39 | */ 40 | @Slf4j 41 | public class CommonBinding { 42 | 43 | private static final String LD_CONFIG = "/etc/ld.so.conf.d/"; 44 | 45 | /** 46 | * Get absolute path of an image, used for native access 47 | * 48 | * @param imgStr relative path 49 | * @return absolute path 50 | */ 51 | public static String getIconPath(String imgStr) { 52 | if (NativeExecutor.isSystemTraySupported()) { 53 | String imgAbsolutePath = Objects.requireNonNull(CommonBinding.class.getResource(imgStr)).getPath() 54 | .replace(Constants.JAVA_PREFIX, "").replace(Constants.FILE_PREFIX, "") 55 | .split(Constants.FAT_JAR_NAME)[0] + Constants.CLASSES + imgStr; 56 | if (Files.exists(Paths.get(imgAbsolutePath))) { 57 | imgStr = imgAbsolutePath; 58 | } else { 59 | imgStr = Objects.requireNonNull(CommonBinding.class.getResource(imgStr)).getPath(); 60 | } 61 | } 62 | return imgStr; 63 | } 64 | 65 | /** 66 | * Scan for ld-config paths 67 | * 68 | * @return ld config paths 69 | */ 70 | public static List getLdConfigPaths() { 71 | List allPath = new LinkedList<>(); 72 | try (Stream paths = Files.list(Path.of(LD_CONFIG))) { 73 | paths.forEach((file) -> { 74 | try (Stream lines = Files.lines(file)) { 75 | List collection = lines.filter(line -> line.startsWith("/")).toList(); 76 | allPath.addAll(collection); 77 | } catch (IOException e) { 78 | log.error("File '{}' could not be loaded", file); 79 | } 80 | }); 81 | } catch (IOException e) { 82 | log.error("Directory '{}' does not exist", LD_CONFIG); 83 | } 84 | return allPath; 85 | } 86 | 87 | } 88 | -------------------------------------------------------------------------------- /src/main/java/org/dpsoftware/gui/bindings/appindicator/GCallback.java: -------------------------------------------------------------------------------- 1 | // Generated by jextract 2 | 3 | package org.dpsoftware.gui.bindings.appindicator; 4 | 5 | import java.lang.invoke.*; 6 | import java.lang.foreign.*; 7 | import java.nio.ByteOrder; 8 | import java.util.*; 9 | import java.util.function.*; 10 | import java.util.stream.*; 11 | 12 | import static java.lang.foreign.ValueLayout.*; 13 | import static java.lang.foreign.MemoryLayout.PathElement.*; 14 | 15 | /** 16 | * {@snippet lang=c : 17 | * typedef void (*GCallback)(void) 18 | * } 19 | */ 20 | public class GCallback { 21 | 22 | GCallback() { 23 | // Should not be called directly 24 | } 25 | 26 | /** 27 | * The function pointer signature, expressed as a functional interface 28 | */ 29 | public interface Function { 30 | void apply(); 31 | } 32 | 33 | private static final FunctionDescriptor $DESC = FunctionDescriptor.ofVoid(); 34 | 35 | /** 36 | * The descriptor of this function pointer 37 | */ 38 | public static FunctionDescriptor descriptor() { 39 | return $DESC; 40 | } 41 | 42 | private static final MethodHandle UP$MH = app_indicator_h.upcallHandle(Function.class, "apply", $DESC); 43 | 44 | /** 45 | * Allocates a new upcall stub, whose implementation is defined by {@code fi}. 46 | * The lifetime of the returned segment is managed by {@code arena} 47 | */ 48 | public static MemorySegment allocate(Function fi, Arena arena) { 49 | return Linker.nativeLinker().upcallStub(UP$MH.bindTo(fi), $DESC, arena); 50 | } 51 | 52 | private static final MethodHandle DOWN$MH = Linker.nativeLinker().downcallHandle($DESC); 53 | 54 | /** 55 | * Invoke the upcall stub {@code funcPtr}, with given parameters 56 | */ 57 | public static void invoke(MemorySegment funcPtr) { 58 | try { 59 | DOWN$MH.invokeExact(funcPtr); 60 | } catch (Throwable ex$) { 61 | throw new AssertionError("should not reach here", ex$); 62 | } 63 | } 64 | } 65 | 66 | -------------------------------------------------------------------------------- /src/main/java/org/dpsoftware/gui/elements/DisplayInfo.java: -------------------------------------------------------------------------------- 1 | /* 2 | DisplayInfo.java 3 | 4 | Firefly Luciferin, very fast Java Screen Capture software designed 5 | for Glow Worm Luciferin firmware. 6 | 7 | Copyright © 2020 - 2025 Davide Perini (https://github.com/sblantipodi) 8 | 9 | This program is free software: you can redistribute it and/or modify 10 | it under the terms of the GNU General Public License as published by 11 | the Free Software Foundation, either version 3 of the License, or 12 | (at your option) any later version. 13 | 14 | This program is distributed in the hope that it will be useful, 15 | but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | GNU General Public License for more details. 18 | 19 | You should have received a copy of the GNU General Public License 20 | along with this program. If not, see . 21 | */ 22 | package org.dpsoftware.gui.elements; 23 | 24 | import lombok.Getter; 25 | import lombok.Setter; 26 | 27 | /** 28 | * A class that map display infos 29 | */ 30 | @Getter 31 | @Setter 32 | public class DisplayInfo { 33 | 34 | public double width, height; 35 | public double scaleX; 36 | public double scaleY; 37 | public double minX, minY; 38 | public double maxX, maxY; 39 | public long nativePeer; // HMONITOR Handle casted to guint64 40 | public String monitorName; 41 | boolean primaryDisplay; 42 | DisplayInfo displayInfoAwt; 43 | 44 | } 45 | -------------------------------------------------------------------------------- /src/main/java/org/dpsoftware/gui/trayicon/TrayIconManager.java: -------------------------------------------------------------------------------- 1 | /* 2 | TrayIconManager.java 3 | 4 | Firefly Luciferin, very fast Java Screen Capture software designed 5 | for Glow Worm Luciferin firmware. 6 | 7 | Copyright © 2020 - 2025 Davide Perini (https://github.com/sblantipodi) 8 | 9 | This program is free software: you can redistribute it and/or modify 10 | it under the terms of the GNU General Public License as published by 11 | the Free Software Foundation, either version 3 of the License, or 12 | (at your option) any later version. 13 | 14 | This program is distributed in the hope that it will be useful, 15 | but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | GNU General Public License for more details. 18 | 19 | You should have received a copy of the GNU General Public License 20 | along with this program. If not, see . 21 | */ 22 | package org.dpsoftware.gui.trayicon; 23 | 24 | import org.dpsoftware.NativeExecutor; 25 | import org.dpsoftware.config.Enums; 26 | 27 | /** 28 | * Tray icon manager interface 29 | */ 30 | public interface TrayIconManager { 31 | 32 | void manageAspectRatioListener(String menuItemText, boolean sendSetCmd); 33 | 34 | void manageProfileListener(String menuItemText); 35 | 36 | void updateTray(); 37 | 38 | void initTray(); 39 | 40 | void populateProfiles(); 41 | 42 | default void resetTray() { 43 | if (NativeExecutor.isSystemTraySupported()) { 44 | setTrayIconImage(Enums.PlayerStatus.STOP); 45 | } 46 | } 47 | 48 | String setTrayIconImage(Enums.PlayerStatus playerStatus); 49 | 50 | } 51 | -------------------------------------------------------------------------------- /src/main/java/org/dpsoftware/managers/CustomGZIPOutputStream.java: -------------------------------------------------------------------------------- 1 | /* 2 | CustomGZIPOutputStream.java 3 | 4 | Firefly Luciferin, very fast Java Screen Capture software designed 5 | for Glow Worm Luciferin firmware. 6 | 7 | Copyright © 2020 - 2025 Davide Perini (https://github.com/sblantipodi) 8 | 9 | This program is free software: you can redistribute it and/or modify 10 | it under the terms of the GNU General Public License as published by 11 | the Free Software Foundation, either version 3 of the License, or 12 | (at your option) any later version. 13 | 14 | This program is distributed in the hope that it will be useful, 15 | but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | GNU General Public License for more details. 18 | 19 | You should have received a copy of the GNU General Public License 20 | along with this program. If not, see . 21 | */ 22 | package org.dpsoftware.managers; 23 | 24 | import lombok.extern.slf4j.Slf4j; 25 | 26 | import java.io.IOException; 27 | import java.io.OutputStream; 28 | import java.util.zip.Deflater; 29 | import java.util.zip.GZIPOutputStream; 30 | 31 | /** 32 | * Utility class for maximum compression using Gzip, 33 | * used to compress firmware before sending to the microcontroller via OTA 34 | */ 35 | @Slf4j 36 | class CustomGZIPOutputStream extends GZIPOutputStream { 37 | 38 | public CustomGZIPOutputStream(OutputStream out) throws IOException { 39 | super(out); 40 | def.setLevel(Deflater.BEST_COMPRESSION); 41 | } 42 | 43 | } -------------------------------------------------------------------------------- /src/main/java/org/dpsoftware/managers/ManagerSingleton.java: -------------------------------------------------------------------------------- 1 | /* 2 | ManagerSingleton.java 3 | 4 | Firefly Luciferin, very fast Java Screen Capture software designed 5 | for Glow Worm Luciferin firmware. 6 | 7 | Copyright © 2020 - 2025 Davide Perini (https://github.com/sblantipodi) 8 | 9 | This program is free software: you can redistribute it and/or modify 10 | it under the terms of the GNU General Public License as published by 11 | the Free Software Foundation, either version 3 of the License, or 12 | (at your option) any later version. 13 | 14 | This program is distributed in the hope that it will be useful, 15 | but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | GNU General Public License for more details. 18 | 19 | You should have received a copy of the GNU General Public License 20 | along with this program. If not, see . 21 | */ 22 | package org.dpsoftware.managers; 23 | 24 | import lombok.Getter; 25 | import lombok.NoArgsConstructor; 26 | import lombok.Setter; 27 | import org.dpsoftware.network.tcpUdp.UdpClient; 28 | import org.eclipse.paho.client.mqttv3.MqttClient; 29 | 30 | import java.util.Map; 31 | 32 | /** 33 | * Manager singleton used to share common data 34 | */ 35 | @Getter 36 | @Setter 37 | @NoArgsConstructor 38 | @SuppressWarnings("all") 39 | public class ManagerSingleton { 40 | 41 | @Getter 42 | private final static ManagerSingleton instance; 43 | 44 | static { 45 | instance = new ManagerSingleton(); 46 | } 47 | 48 | public MqttClient client; 49 | public Map udpClient; 50 | public boolean pipelineStarting = false; 51 | public boolean pipelineStopping = false; 52 | public String lastEffectInUse = ""; 53 | public boolean updateMqttDiscovery = false; 54 | public boolean serialVersionOk = false; 55 | public String deviceNameForSerialDevice = ""; 56 | 57 | } 58 | 59 | -------------------------------------------------------------------------------- /src/main/java/org/dpsoftware/managers/dto/AudioDevice.java: -------------------------------------------------------------------------------- 1 | /* 2 | AudioDevice.java 3 | 4 | Firefly Luciferin, very fast Java Screen Capture software designed 5 | for Glow Worm Luciferin firmware. 6 | 7 | Copyright © 2020 - 2025 Davide Perini (https://github.com/sblantipodi) 8 | 9 | This program is free software: you can redistribute it and/or modify 10 | it under the terms of the GNU General Public License as published by 11 | the Free Software Foundation, either version 3 of the License, or 12 | (at your option) any later version. 13 | 14 | This program is distributed in the hope that it will be useful, 15 | but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | GNU General Public License for more details. 18 | 19 | You should have received a copy of the GNU General Public License 20 | along with this program. If not, see . 21 | */ 22 | package org.dpsoftware.managers.dto; 23 | 24 | import lombok.AllArgsConstructor; 25 | import lombok.Getter; 26 | import lombok.Setter; 27 | 28 | @Setter 29 | @Getter 30 | @AllArgsConstructor 31 | public class AudioDevice { 32 | 33 | private String deviceName; 34 | private int sampleRate; 35 | 36 | } 37 | -------------------------------------------------------------------------------- /src/main/java/org/dpsoftware/managers/dto/AudioVuMeter.java: -------------------------------------------------------------------------------- 1 | /* 2 | AudioVuMeter.java 3 | 4 | Firefly Luciferin, very fast Java Screen Capture software designed 5 | for Glow Worm Luciferin firmware. 6 | 7 | Copyright © 2020 - 2025 Davide Perini (https://github.com/sblantipodi) 8 | 9 | This program is free software: you can redistribute it and/or modify 10 | it under the terms of the GNU General Public License as published by 11 | the Free Software Foundation, either version 3 of the License, or 12 | (at your option) any later version. 13 | 14 | This program is distributed in the hope that it will be useful, 15 | but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | GNU General Public License for more details. 18 | 19 | You should have received a copy of the GNU General Public License 20 | along with this program. If not, see . 21 | */ 22 | package org.dpsoftware.managers.dto; 23 | 24 | import lombok.AllArgsConstructor; 25 | import lombok.Getter; 26 | import lombok.Setter; 27 | 28 | @Setter 29 | @Getter 30 | @AllArgsConstructor 31 | public class AudioVuMeter { 32 | 33 | float rms; 34 | float peak; 35 | float tolerance; 36 | 37 | } 38 | -------------------------------------------------------------------------------- /src/main/java/org/dpsoftware/managers/dto/ColorDto.java: -------------------------------------------------------------------------------- 1 | /* 2 | ColorDto.java 3 | 4 | Firefly Luciferin, very fast Java Screen Capture software designed 5 | for Glow Worm Luciferin firmware. 6 | 7 | Copyright © 2020 - 2025 Davide Perini (https://github.com/sblantipodi) 8 | 9 | This program is free software: you can redistribute it and/or modify 10 | it under the terms of the GNU General Public License as published by 11 | the Free Software Foundation, either version 3 of the License, or 12 | (at your option) any later version. 13 | 14 | This program is distributed in the hope that it will be useful, 15 | but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | GNU General Public License for more details. 18 | 19 | You should have received a copy of the GNU General Public License 20 | along with this program. If not, see . 21 | */ 22 | package org.dpsoftware.managers.dto; 23 | 24 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties; 25 | import com.fasterxml.jackson.annotation.JsonInclude; 26 | import lombok.AllArgsConstructor; 27 | import lombok.Getter; 28 | import lombok.NoArgsConstructor; 29 | import lombok.Setter; 30 | 31 | @AllArgsConstructor 32 | @NoArgsConstructor 33 | @JsonIgnoreProperties(ignoreUnknown = true) 34 | @JsonInclude(JsonInclude.Include.NON_NULL) 35 | @Getter 36 | @Setter 37 | public class ColorDto { 38 | 39 | private int r, g, b; 40 | 41 | } -------------------------------------------------------------------------------- /src/main/java/org/dpsoftware/managers/dto/ColorRGBW.java: -------------------------------------------------------------------------------- 1 | /* 2 | ColorRGBW.java 3 | 4 | Firefly Luciferin, very fast Java Screen Capture software designed 5 | for Glow Worm Luciferin firmware. 6 | 7 | Copyright © 2020 - 2025 Davide Perini (https://github.com/sblantipodi) 8 | 9 | This program is free software: you can redistribute it and/or modify 10 | it under the terms of the GNU General Public License as published by 11 | the Free Software Foundation, either version 3 of the License, or 12 | (at your option) any later version. 13 | 14 | This program is distributed in the hope that it will be useful, 15 | but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | GNU General Public License for more details. 18 | 19 | You should have received a copy of the GNU General Public License 20 | along with this program. If not, see . 21 | */ 22 | package org.dpsoftware.managers.dto; 23 | 24 | import lombok.AllArgsConstructor; 25 | import lombok.Getter; 26 | import lombok.Setter; 27 | 28 | @Getter 29 | @Setter 30 | @AllArgsConstructor 31 | public class ColorRGBW { 32 | 33 | int red, green, blue, white; 34 | 35 | } 36 | -------------------------------------------------------------------------------- /src/main/java/org/dpsoftware/managers/dto/FirmwareConfigDto.java: -------------------------------------------------------------------------------- 1 | /* 2 | FirmwareConfigDto.java 3 | 4 | Firefly Luciferin, very fast Java Screen Capture software designed 5 | for Glow Worm Luciferin firmware. 6 | 7 | Copyright © 2020 - 2025 Davide Perini (https://github.com/sblantipodi) 8 | 9 | This program is free software: you can redistribute it and/or modify 10 | it under the terms of the GNU General Public License as published by 11 | the Free Software Foundation, either version 3 of the License, or 12 | (at your option) any later version. 13 | 14 | This program is distributed in the hope that it will be useful, 15 | but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | GNU General Public License for more details. 18 | 19 | You should have received a copy of the GNU General Public License 20 | along with this program. If not, see . 21 | */ 22 | package org.dpsoftware.managers.dto; 23 | 24 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties; 25 | import com.fasterxml.jackson.annotation.JsonInclude; 26 | import com.fasterxml.jackson.annotation.JsonProperty; 27 | import lombok.Getter; 28 | import lombok.NoArgsConstructor; 29 | import lombok.Setter; 30 | 31 | @NoArgsConstructor 32 | @JsonIgnoreProperties(ignoreUnknown = true) 33 | @JsonInclude(JsonInclude.Include.NON_NULL) 34 | @Getter 35 | @Setter 36 | public class FirmwareConfigDto { 37 | String deviceName; 38 | String microcontrollerIP; 39 | boolean mqttCheckbox; 40 | String ssid; 41 | String wifipwd; 42 | String mqttIP; 43 | String mqttPort; 44 | String mqttTopic; 45 | String mqttuser; 46 | String mqttpass; 47 | Integer gpio; 48 | Integer gpioClock; 49 | String additionalParam; 50 | String colorMode; 51 | String colorOrder; 52 | int br; 53 | String lednum; 54 | @JsonProperty("MAC") 55 | String MAC; 56 | Integer ldrPin; 57 | Integer relayPin; 58 | Integer sbPin; 59 | } -------------------------------------------------------------------------------- /src/main/java/org/dpsoftware/managers/dto/GammaDto.java: -------------------------------------------------------------------------------- 1 | /* 2 | GammaDto.java 3 | 4 | Firefly Luciferin, very fast Java Screen Capture software designed 5 | for Glow Worm Luciferin firmware. 6 | 7 | Copyright © 2020 - 2025 Davide Perini (https://github.com/sblantipodi) 8 | 9 | This program is free software: you can redistribute it and/or modify 10 | it under the terms of the GNU General Public License as published by 11 | the Free Software Foundation, either version 3 of the License, or 12 | (at your option) any later version. 13 | 14 | This program is distributed in the hope that it will be useful, 15 | but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | GNU General Public License for more details. 18 | 19 | You should have received a copy of the GNU General Public License 20 | along with this program. If not, see . 21 | */ 22 | package org.dpsoftware.managers.dto; 23 | 24 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties; 25 | import com.fasterxml.jackson.annotation.JsonInclude; 26 | import lombok.AllArgsConstructor; 27 | import lombok.Getter; 28 | import lombok.NoArgsConstructor; 29 | import lombok.Setter; 30 | 31 | @AllArgsConstructor 32 | @NoArgsConstructor 33 | @JsonIgnoreProperties(ignoreUnknown = true) 34 | @JsonInclude(JsonInclude.Include.NON_NULL) 35 | @Getter 36 | @Setter 37 | public class GammaDto { 38 | 39 | private double gamma; 40 | 41 | } -------------------------------------------------------------------------------- /src/main/java/org/dpsoftware/managers/dto/HSLColor.java: -------------------------------------------------------------------------------- 1 | /* 2 | HSLColor.java 3 | 4 | Firefly Luciferin, very fast Java Screen Capture software designed 5 | for Glow Worm Luciferin firmware. 6 | 7 | Copyright © 2020 - 2025 Davide Perini (https://github.com/sblantipodi) 8 | 9 | This program is free software: you can redistribute it and/or modify 10 | it under the terms of the GNU General Public License as published by 11 | the Free Software Foundation, either version 3 of the License, or 12 | (at your option) any later version. 13 | 14 | This program is distributed in the hope that it will be useful, 15 | but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | GNU General Public License for more details. 18 | 19 | You should have received a copy of the GNU General Public License 20 | along with this program. If not, see . 21 | */ 22 | package org.dpsoftware.managers.dto; 23 | 24 | import lombok.AllArgsConstructor; 25 | import lombok.Getter; 26 | import lombok.NoArgsConstructor; 27 | import lombok.Setter; 28 | 29 | @AllArgsConstructor 30 | @NoArgsConstructor 31 | @Getter 32 | @Setter 33 | public class HSLColor { 34 | 35 | Float hue; 36 | Float saturation; 37 | Float lightness; 38 | 39 | } 40 | -------------------------------------------------------------------------------- /src/main/java/org/dpsoftware/managers/dto/LdrDto.java: -------------------------------------------------------------------------------- 1 | /* 2 | LdrDto.java 3 | 4 | Firefly Luciferin, very fast Java Screen Capture software designed 5 | for Glow Worm Luciferin firmware. 6 | 7 | Copyright © 2020 - 2025 Davide Perini (https://github.com/sblantipodi) 8 | 9 | This program is free software: you can redistribute it and/or modify 10 | it under the terms of the GNU General Public License as published by 11 | the Free Software Foundation, either version 3 of the License, or 12 | (at your option) any later version. 13 | 14 | This program is distributed in the hope that it will be useful, 15 | but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | GNU General Public License for more details. 18 | 19 | You should have received a copy of the GNU General Public License 20 | along with this program. If not, see . 21 | */ 22 | package org.dpsoftware.managers.dto; 23 | 24 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties; 25 | import com.fasterxml.jackson.annotation.JsonInclude; 26 | import lombok.AllArgsConstructor; 27 | import lombok.Getter; 28 | import lombok.NoArgsConstructor; 29 | import lombok.Setter; 30 | 31 | @AllArgsConstructor 32 | @NoArgsConstructor 33 | @JsonIgnoreProperties(ignoreUnknown = true) 34 | @JsonInclude(JsonInclude.Include.NON_NULL) 35 | @Getter 36 | @Setter 37 | public class LdrDto { 38 | 39 | boolean ldrEnabled; 40 | boolean ldrTurnOff; 41 | int ldrInterval; 42 | int ldrMin; 43 | int ldrAction; 44 | Integer relayPin; 45 | Integer sbPin; 46 | Integer ldrPin; 47 | 48 | } 49 | -------------------------------------------------------------------------------- /src/main/java/org/dpsoftware/managers/dto/LedMatrixInfo.java: -------------------------------------------------------------------------------- 1 | /* 2 | LedMatrixInfo.java 3 | 4 | Firefly Luciferin, very fast Java Screen Capture software designed 5 | for Glow Worm Luciferin firmware. 6 | 7 | Copyright © 2020 - 2025 Davide Perini (https://github.com/sblantipodi) 8 | 9 | This program is free software: you can redistribute it and/or modify 10 | it under the terms of the GNU General Public License as published by 11 | the Free Software Foundation, either version 3 of the License, or 12 | (at your option) any later version. 13 | 14 | This program is distributed in the hope that it will be useful, 15 | but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | GNU General Public License for more details. 18 | 19 | You should have received a copy of the GNU General Public License 20 | along with this program. If not, see . 21 | */ 22 | package org.dpsoftware.managers.dto; 23 | 24 | import lombok.Getter; 25 | import lombok.NoArgsConstructor; 26 | import lombok.Setter; 27 | 28 | /** 29 | * Information used to create LED Matrixes 30 | */ 31 | @Getter 32 | @Setter 33 | @NoArgsConstructor 34 | public class LedMatrixInfo implements Cloneable { 35 | 36 | int bottomRightLedOriginal; 37 | int rightLedOriginal; 38 | int topLedOriginal; 39 | int leftLedOriginal; 40 | int bottomLeftLedOriginal; 41 | int bottomRowLedOriginal; 42 | int screenWidth; 43 | int screenHeight; 44 | int bottomRightLed; 45 | int rightLed; 46 | int topLed; 47 | int leftLed; 48 | int bottomLeftLed; 49 | int bottomRowLed; 50 | String splitBottomRow; 51 | String grabberTopBottom; 52 | String grabberSide; 53 | String gapTypeTopBottom; 54 | String gapTypeSide; 55 | int topBottomAreaHeight; 56 | int sideAreaWidth; 57 | int splitBottomMargin; 58 | int cornerGapTopBottom; 59 | int cornerGapSide; 60 | int bottomLedDistance; 61 | int groupBy; 62 | int letterboxBorder; 63 | int pillarboxBorder; 64 | int minimumNumberOfLedsInARow; 65 | int totaleNumOfLeds; 66 | 67 | public LedMatrixInfo(int screenWidth, int screenHeight, int bottomRightLed, int rightLed, int topLed, int leftLed, int bottomLeftLed, 68 | int bottomRowLed, String splitBottomRow, String grabberTopBottom, String grabberSide, 69 | String gapTypeTopBottom, String gapTypeSide, int groupBy) { 70 | this.screenWidth = screenWidth; 71 | this.screenHeight = screenHeight; 72 | this.bottomRightLed = bottomRightLed; 73 | this.rightLed = rightLed; 74 | this.topLed = topLed; 75 | this.leftLed = leftLed; 76 | this.bottomLeftLed = bottomLeftLed; 77 | this.bottomRowLed = bottomRowLed; 78 | this.splitBottomRow = splitBottomRow; 79 | this.grabberTopBottom = grabberTopBottom; 80 | this.grabberSide = grabberSide; 81 | this.gapTypeTopBottom = gapTypeTopBottom; 82 | this.gapTypeSide = gapTypeSide; 83 | this.groupBy = groupBy; 84 | } 85 | 86 | public Object clone() throws CloneNotSupportedException { 87 | return super.clone(); 88 | } 89 | } 90 | -------------------------------------------------------------------------------- /src/main/java/org/dpsoftware/managers/dto/MqttFramerateDto.java: -------------------------------------------------------------------------------- 1 | /* 2 | MqttFramerateDto.java 3 | 4 | Firefly Luciferin, very fast Java Screen Capture software designed 5 | for Glow Worm Luciferin firmware. 6 | 7 | Copyright © 2020 - 2025 Davide Perini (https://github.com/sblantipodi) 8 | 9 | This program is free software: you can redistribute it and/or modify 10 | it under the terms of the GNU General Public License as published by 11 | the Free Software Foundation, either version 3 of the License, or 12 | (at your option) any later version. 13 | 14 | This program is distributed in the hope that it will be useful, 15 | but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | GNU General Public License for more details. 18 | 19 | You should have received a copy of the GNU General Public License 20 | along with this program. If not, see . 21 | */ 22 | package org.dpsoftware.managers.dto; 23 | 24 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties; 25 | import com.fasterxml.jackson.annotation.JsonInclude; 26 | import lombok.AllArgsConstructor; 27 | import lombok.Getter; 28 | import lombok.NoArgsConstructor; 29 | import lombok.Setter; 30 | 31 | @AllArgsConstructor 32 | @NoArgsConstructor 33 | @JsonIgnoreProperties(ignoreUnknown = true) 34 | @JsonInclude(JsonInclude.Include.NON_NULL) 35 | @Getter 36 | @Setter 37 | public class MqttFramerateDto { 38 | 39 | private String producing; 40 | private String consuming; 41 | private String effect; 42 | private String colorMode; 43 | private String aspectRatio; 44 | private String gamma; 45 | private String smoothingLvl; 46 | private String frameGen; 47 | private String profile; 48 | 49 | } -------------------------------------------------------------------------------- /src/main/java/org/dpsoftware/managers/dto/StateDto.java: -------------------------------------------------------------------------------- 1 | /* 2 | StateDto.java 3 | 4 | Firefly Luciferin, very fast Java Screen Capture software designed 5 | for Glow Worm Luciferin firmware. 6 | 7 | Copyright © 2020 - 2025 Davide Perini (https://github.com/sblantipodi) 8 | 9 | This program is free software: you can redistribute it and/or modify 10 | it under the terms of the GNU General Public License as published by 11 | the Free Software Foundation, either version 3 of the License, or 12 | (at your option) any later version. 13 | 14 | This program is distributed in the hope that it will be useful, 15 | but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | GNU General Public License for more details. 18 | 19 | You should have received a copy of the GNU General Public License 20 | along with this program. If not, see . 21 | */ 22 | package org.dpsoftware.managers.dto; 23 | 24 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties; 25 | import com.fasterxml.jackson.annotation.JsonInclude; 26 | import com.fasterxml.jackson.annotation.JsonProperty; 27 | import lombok.AllArgsConstructor; 28 | import lombok.Getter; 29 | import lombok.NoArgsConstructor; 30 | import lombok.Setter; 31 | 32 | @AllArgsConstructor 33 | @NoArgsConstructor 34 | @JsonIgnoreProperties(ignoreUnknown = true) 35 | @JsonInclude(JsonInclude.Include.NON_NULL) 36 | @Getter 37 | @Setter 38 | public class StateDto { 39 | 40 | @JsonProperty("MAC") 41 | String MAC; 42 | private String state; 43 | private String effect; 44 | private String ffeffect; 45 | private ColorDto color; 46 | private Integer brightness; 47 | private Integer whitetemp; 48 | private String startStopInstances; 49 | 50 | } -------------------------------------------------------------------------------- /src/main/java/org/dpsoftware/managers/dto/StateStatusDto.java: -------------------------------------------------------------------------------- 1 | /* 2 | StateStatusDto.java 3 | 4 | Firefly Luciferin, very fast Java Screen Capture software designed 5 | for Glow Worm Luciferin firmware. 6 | 7 | Copyright © 2020 - 2025 Davide Perini (https://github.com/sblantipodi) 8 | 9 | This program is free software: you can redistribute it and/or modify 10 | it under the terms of the GNU General Public License as published by 11 | the Free Software Foundation, either version 3 of the License, or 12 | (at your option) any later version. 13 | 14 | This program is distributed in the hope that it will be useful, 15 | but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | GNU General Public License for more details. 18 | 19 | You should have received a copy of the GNU General Public License 20 | along with this program. If not, see . 21 | */ 22 | package org.dpsoftware.managers.dto; 23 | 24 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties; 25 | import com.fasterxml.jackson.annotation.JsonInclude; 26 | import lombok.AllArgsConstructor; 27 | import lombok.Getter; 28 | import lombok.NoArgsConstructor; 29 | import lombok.Setter; 30 | import org.dpsoftware.gui.elements.GlowWormDevice; 31 | 32 | import java.util.List; 33 | 34 | @AllArgsConstructor 35 | @NoArgsConstructor 36 | @JsonIgnoreProperties(ignoreUnknown = true) 37 | @JsonInclude(JsonInclude.Include.NON_NULL) 38 | @Getter 39 | @Setter 40 | public class StateStatusDto extends StateDto { 41 | 42 | private boolean running; 43 | private List deviceTableData; 44 | private float fpsgwconsumer; 45 | private String action; 46 | private boolean exit = false; 47 | 48 | } -------------------------------------------------------------------------------- /src/main/java/org/dpsoftware/managers/dto/TcpResponse.java: -------------------------------------------------------------------------------- 1 | /* 2 | TcpResponse.java 3 | 4 | Firefly Luciferin, very fast Java Screen Capture software designed 5 | for Glow Worm Luciferin firmware. 6 | 7 | Copyright © 2020 - 2025 Davide Perini (https://github.com/sblantipodi) 8 | 9 | This program is free software: you can redistribute it and/or modify 10 | it under the terms of the GNU General Public License as published by 11 | the Free Software Foundation, either version 3 of the License, or 12 | (at your option) any later version. 13 | 14 | This program is distributed in the hope that it will be useful, 15 | but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | GNU General Public License for more details. 18 | 19 | You should have received a copy of the GNU General Public License 20 | along with this program. If not, see . 21 | */ 22 | package org.dpsoftware.managers.dto; 23 | 24 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties; 25 | import com.fasterxml.jackson.annotation.JsonInclude; 26 | import lombok.AllArgsConstructor; 27 | import lombok.Getter; 28 | import lombok.NoArgsConstructor; 29 | import lombok.Setter; 30 | 31 | @AllArgsConstructor 32 | @NoArgsConstructor 33 | @JsonIgnoreProperties(ignoreUnknown = true) 34 | @JsonInclude(JsonInclude.Include.NON_NULL) 35 | @Getter 36 | @Setter 37 | public class TcpResponse { 38 | 39 | private int errorCode; 40 | private String response; 41 | 42 | } 43 | -------------------------------------------------------------------------------- /src/main/java/org/dpsoftware/managers/dto/UnsubscribeInstanceDto.java: -------------------------------------------------------------------------------- 1 | /* 2 | UnsubscribeInstanceDto.java 3 | 4 | Firefly Luciferin, very fast Java Screen Capture software designed 5 | for Glow Worm Luciferin firmware. 6 | 7 | Copyright © 2020 - 2025 Davide Perini (https://github.com/sblantipodi) 8 | 9 | This program is free software: you can redistribute it and/or modify 10 | it under the terms of the GNU General Public License as published by 11 | the Free Software Foundation, either version 3 of the License, or 12 | (at your option) any later version. 13 | 14 | This program is distributed in the hope that it will be useful, 15 | but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | GNU General Public License for more details. 18 | 19 | You should have received a copy of the GNU General Public License 20 | along with this program. If not, see . 21 | */ 22 | package org.dpsoftware.managers.dto; 23 | 24 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties; 25 | import com.fasterxml.jackson.annotation.JsonInclude; 26 | import lombok.AllArgsConstructor; 27 | import lombok.Getter; 28 | import lombok.NoArgsConstructor; 29 | import lombok.Setter; 30 | 31 | @AllArgsConstructor 32 | @NoArgsConstructor 33 | @JsonIgnoreProperties(ignoreUnknown = true) 34 | @JsonInclude(JsonInclude.Include.NON_NULL) 35 | @Getter 36 | @Setter 37 | public class UnsubscribeInstanceDto { 38 | 39 | private String instance; 40 | private String manager; 41 | 42 | } -------------------------------------------------------------------------------- /src/main/java/org/dpsoftware/managers/dto/WebServerStarterDto.java: -------------------------------------------------------------------------------- 1 | /* 2 | WebServerStarterDto.java 3 | 4 | Firefly Luciferin, very fast Java Screen Capture software designed 5 | for Glow Worm Luciferin firmware. 6 | 7 | Copyright © 2020 - 2025 Davide Perini (https://github.com/sblantipodi) 8 | 9 | This program is free software: you can redistribute it and/or modify 10 | it under the terms of the GNU General Public License as published by 11 | the Free Software Foundation, either version 3 of the License, or 12 | (at your option) any later version. 13 | 14 | This program is distributed in the hope that it will be useful, 15 | but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | GNU General Public License for more details. 18 | 19 | You should have received a copy of the GNU General Public License 20 | along with this program. If not, see . 21 | */ 22 | package org.dpsoftware.managers.dto; 23 | 24 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties; 25 | import com.fasterxml.jackson.annotation.JsonInclude; 26 | import lombok.AllArgsConstructor; 27 | import lombok.Getter; 28 | import lombok.NoArgsConstructor; 29 | import lombok.Setter; 30 | 31 | @AllArgsConstructor 32 | @NoArgsConstructor 33 | @JsonIgnoreProperties(ignoreUnknown = true) 34 | @JsonInclude(JsonInclude.Include.NON_NULL) 35 | @Getter 36 | @Setter 37 | public class WebServerStarterDto { 38 | 39 | private boolean update; 40 | 41 | } -------------------------------------------------------------------------------- /src/main/java/org/dpsoftware/managers/dto/mqttdiscovery/DeviceDiscovery.java: -------------------------------------------------------------------------------- 1 | /* 2 | DeviceDiscovery.java 3 | 4 | Firefly Luciferin, very fast Java Screen Capture software designed 5 | for Glow Worm Luciferin firmware. 6 | 7 | Copyright © 2020 - 2025 Davide Perini (https://github.com/sblantipodi) 8 | 9 | This program is free software: you can redistribute it and/or modify 10 | it under the terms of the GNU General Public License as published by 11 | the Free Software Foundation, either version 3 of the License, or 12 | (at your option) any later version. 13 | 14 | This program is distributed in the hope that it will be useful, 15 | but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | GNU General Public License for more details. 18 | 19 | You should have received a copy of the GNU General Public License 20 | along with this program. If not, see . 21 | */ 22 | package org.dpsoftware.managers.dto.mqttdiscovery; 23 | 24 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties; 25 | import com.fasterxml.jackson.annotation.JsonInclude; 26 | import com.fasterxml.jackson.annotation.JsonProperty; 27 | import lombok.Getter; 28 | import org.dpsoftware.MainSingleton; 29 | import org.dpsoftware.config.Constants; 30 | 31 | @JsonIgnoreProperties(ignoreUnknown = true) 32 | @JsonInclude(JsonInclude.Include.NON_NULL) 33 | @Getter 34 | public class DeviceDiscovery { 35 | 36 | @JsonProperty("unique_id") 37 | String uniqueId; 38 | String name; 39 | @JsonProperty("state_topic") 40 | String stateTopic; 41 | MqttDevice device; 42 | 43 | @SuppressWarnings("all") 44 | public DeviceDiscovery() { 45 | device = new MqttDevice(Constants.SOFTWARE_NAME, 46 | Constants.MANUFACTURER, 47 | Constants.SOFTWARE_NAME, 48 | Constants.SOFTWARE_NAME, 49 | Constants.FIRMWARE_NAME, 50 | "http://" + MainSingleton.getInstance().config.getOutputDevice() + ".local"); 51 | } 52 | 53 | } -------------------------------------------------------------------------------- /src/main/java/org/dpsoftware/managers/dto/mqttdiscovery/LightDiscovery.java: -------------------------------------------------------------------------------- 1 | /* 2 | LightDiscovery.java 3 | 4 | Firefly Luciferin, very fast Java Screen Capture software designed 5 | for Glow Worm Luciferin firmware. 6 | 7 | Copyright © 2020 - 2025 Davide Perini (https://github.com/sblantipodi) 8 | 9 | This program is free software: you can redistribute it and/or modify 10 | it under the terms of the GNU General Public License as published by 11 | the Free Software Foundation, either version 3 of the License, or 12 | (at your option) any later version. 13 | 14 | This program is distributed in the hope that it will be useful, 15 | but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | GNU General Public License for more details. 18 | 19 | You should have received a copy of the GNU General Public License 20 | along with this program. If not, see . 21 | */ 22 | package org.dpsoftware.managers.dto.mqttdiscovery; 23 | 24 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties; 25 | import com.fasterxml.jackson.annotation.JsonInclude; 26 | import com.fasterxml.jackson.annotation.JsonProperty; 27 | import lombok.Getter; 28 | import org.dpsoftware.MainSingleton; 29 | import org.dpsoftware.utilities.CommonUtility; 30 | 31 | @JsonIgnoreProperties(ignoreUnknown = true) 32 | @JsonInclude(JsonInclude.Include.NON_NULL) 33 | @Getter 34 | public class LightDiscovery extends DeviceDiscovery implements DiscoveryObject { 35 | 36 | String schema; 37 | @JsonProperty("command_topic") 38 | String commandTopic; 39 | boolean effect; 40 | boolean brightness; 41 | boolean optimistic; 42 | String icon; 43 | @JsonProperty("effect_list") 44 | String[] effectList; 45 | @JsonProperty("brightness_state_topic") 46 | String brightnessStateTopic; 47 | @JsonProperty("brightness_value_template") 48 | String brightnessValueTemplate; 49 | @JsonProperty("supported_color_modes") 50 | String[] supportedColorModes; 51 | 52 | @Override 53 | public String getDiscoveryTopic() { 54 | return MainSingleton.getInstance().config.getMqttDiscoveryTopic() + "/light/" + getBaseGWDiscoveryTopic() + "/GlowWorm/config"; 55 | } 56 | 57 | @Override 58 | public String getCreateEntityStr() { 59 | this.name = generateUniqueName("Switch"); 60 | this.uniqueId = this.name.replaceAll(" ", "_"); 61 | this.schema = "json"; 62 | this.stateTopic = "lights/" + MainSingleton.getInstance().config.getMqttTopic(); 63 | this.commandTopic = "lights/" + MainSingleton.getInstance().config.getMqttTopic() + "/set"; 64 | this.effect = true; 65 | this.brightness = true; 66 | this.optimistic = true; 67 | this.icon = "mdi:google-circles-communities"; 68 | this.supportedColorModes = new String[]{"rgb"}; 69 | this.effectList = new String[]{ 70 | "GlowWorm", 71 | "GlowWormWifi", 72 | "Bpm", 73 | "Fire", 74 | "Twinkle", 75 | "Rainbow", 76 | "Slow rainbow", 77 | "Chase rainbow", 78 | "Solid rainbow", 79 | "Rainbow colors", 80 | "Meteor", 81 | "Color waterfall", 82 | "Random marquee", 83 | "Rainbow marquee", 84 | "Pulsing rainbow", 85 | "Christmas", 86 | "Solid" 87 | }; 88 | return CommonUtility.toJsonString(this); 89 | } 90 | 91 | @Override 92 | public String getDestroyEntityStr() { 93 | return ""; 94 | } 95 | } -------------------------------------------------------------------------------- /src/main/java/org/dpsoftware/managers/dto/mqttdiscovery/MqttDevice.java: -------------------------------------------------------------------------------- 1 | /* 2 | MqttDevice.java 3 | 4 | Firefly Luciferin, very fast Java Screen Capture software designed 5 | for Glow Worm Luciferin firmware. 6 | 7 | Copyright © 2020 - 2025 Davide Perini (https://github.com/sblantipodi) 8 | 9 | This program is free software: you can redistribute it and/or modify 10 | it under the terms of the GNU General Public License as published by 11 | the Free Software Foundation, either version 3 of the License, or 12 | (at your option) any later version. 13 | 14 | This program is distributed in the hope that it will be useful, 15 | but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | GNU General Public License for more details. 18 | 19 | You should have received a copy of the GNU General Public License 20 | along with this program. If not, see . 21 | */ 22 | package org.dpsoftware.managers.dto.mqttdiscovery; 23 | 24 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties; 25 | import com.fasterxml.jackson.annotation.JsonInclude; 26 | import com.fasterxml.jackson.annotation.JsonProperty; 27 | import lombok.AllArgsConstructor; 28 | import lombok.Getter; 29 | 30 | @JsonIgnoreProperties(ignoreUnknown = true) 31 | @JsonInclude(JsonInclude.Include.NON_NULL) 32 | @Getter 33 | @AllArgsConstructor 34 | class MqttDevice { 35 | 36 | String identifiers; 37 | String manufacturer; 38 | String model; 39 | String name; 40 | @JsonProperty("sw_version") 41 | String swVersion; 42 | @JsonProperty("configuration_url") 43 | String configurationUrl; 44 | 45 | } -------------------------------------------------------------------------------- /src/main/java/org/dpsoftware/managers/dto/mqttdiscovery/NumberWhiteTempDiscovery.java: -------------------------------------------------------------------------------- 1 | /* 2 | NumberWhiteTempDiscovery.java 3 | 4 | Firefly Luciferin, very fast Java Screen Capture software designed 5 | for Glow Worm Luciferin firmware. 6 | 7 | Copyright © 2020 - 2025 Davide Perini (https://github.com/sblantipodi) 8 | 9 | This program is free software: you can redistribute it and/or modify 10 | it under the terms of the GNU General Public License as published by 11 | the Free Software Foundation, either version 3 of the License, or 12 | (at your option) any later version. 13 | 14 | This program is distributed in the hope that it will be useful, 15 | but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | GNU General Public License for more details. 18 | 19 | You should have received a copy of the GNU General Public License 20 | along with this program. If not, see . 21 | */ 22 | package org.dpsoftware.managers.dto.mqttdiscovery; 23 | 24 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties; 25 | import com.fasterxml.jackson.annotation.JsonInclude; 26 | import com.fasterxml.jackson.annotation.JsonProperty; 27 | import lombok.Getter; 28 | import org.dpsoftware.MainSingleton; 29 | import org.dpsoftware.utilities.CommonUtility; 30 | 31 | @JsonIgnoreProperties(ignoreUnknown = true) 32 | @JsonInclude(JsonInclude.Include.NON_NULL) 33 | @Getter 34 | public class NumberWhiteTempDiscovery extends DeviceDiscovery implements DiscoveryObject { 35 | 36 | @JsonProperty("value_template") 37 | String valueTemplate; 38 | @JsonProperty("command_topic") 39 | String commandTopic; 40 | @JsonProperty("command_template") 41 | String commandTemplate; 42 | String icon; 43 | int initial; 44 | int min; 45 | int max; 46 | int step; 47 | 48 | @Override 49 | public String getDiscoveryTopic() { 50 | return MainSingleton.getInstance().config.getMqttDiscoveryTopic() + "/number/" + getBaseGWDiscoveryTopic() + "/whitetemp/config"; 51 | } 52 | 53 | @Override 54 | public String getCreateEntityStr() { 55 | this.name = generateUniqueName("White Temp"); 56 | this.uniqueId = this.name.replaceAll(" ", "_"); 57 | this.stateTopic = "lights/" + MainSingleton.getInstance().config.getMqttTopic() + "/set"; 58 | this.valueTemplate = "{{ value_json.whitetemp * 100 }}"; 59 | this.commandTopic = "lights/" + MainSingleton.getInstance().config.getMqttTopic() + "/set"; 60 | this.commandTemplate = "{\"state\":\"ON\",\"whitetemp\":{{ (value / 100 ) | int }},\"allInstances\":\"1\"}"; 61 | this.icon = "mdi:temperature-kelvin"; 62 | this.initial = 6500; 63 | this.min = 2000; 64 | this.max = 11000; 65 | this.step = 500; 66 | return CommonUtility.toJsonString(this); 67 | } 68 | 69 | @Override 70 | public String getDestroyEntityStr() { 71 | return ""; 72 | } 73 | } -------------------------------------------------------------------------------- /src/main/java/org/dpsoftware/managers/dto/mqttdiscovery/SelectAspectRatioDiscovery.java: -------------------------------------------------------------------------------- 1 | /* 2 | SelectAspectRatioDiscovery.java 3 | 4 | Firefly Luciferin, very fast Java Screen Capture software designed 5 | for Glow Worm Luciferin firmware. 6 | 7 | Copyright © 2020 - 2025 Davide Perini (https://github.com/sblantipodi) 8 | 9 | This program is free software: you can redistribute it and/or modify 10 | it under the terms of the GNU General Public License as published by 11 | the Free Software Foundation, either version 3 of the License, or 12 | (at your option) any later version. 13 | 14 | This program is distributed in the hope that it will be useful, 15 | but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | GNU General Public License for more details. 18 | 19 | You should have received a copy of the GNU General Public License 20 | along with this program. If not, see . 21 | */ 22 | package org.dpsoftware.managers.dto.mqttdiscovery; 23 | 24 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties; 25 | import com.fasterxml.jackson.annotation.JsonInclude; 26 | import com.fasterxml.jackson.annotation.JsonProperty; 27 | import lombok.Getter; 28 | import org.dpsoftware.MainSingleton; 29 | import org.dpsoftware.config.Constants; 30 | import org.dpsoftware.config.Enums; 31 | import org.dpsoftware.utilities.CommonUtility; 32 | 33 | import java.util.ArrayList; 34 | import java.util.List; 35 | import java.util.Locale; 36 | 37 | @JsonIgnoreProperties(ignoreUnknown = true) 38 | @JsonInclude(JsonInclude.Include.NON_NULL) 39 | @Getter 40 | public class SelectAspectRatioDiscovery extends DeviceDiscovery implements DiscoveryObject { 41 | 42 | String mqttDiscoveryTopic; 43 | @JsonProperty("command_template") 44 | String commandTemplate; 45 | @JsonProperty("command_topic") 46 | String commandTopic; 47 | String icon; 48 | List options; 49 | @JsonProperty("value_template") 50 | String valueTemplate; 51 | 52 | @Override 53 | public String getDiscoveryTopic() { 54 | return MainSingleton.getInstance().config.getMqttDiscoveryTopic() + "/select/" + getBaseGWDiscoveryTopic() + "/setaspectratio/config"; 55 | } 56 | 57 | @Override 58 | public String getCreateEntityStr() { 59 | this.name = generateUniqueName("Aspect Ratio"); 60 | this.uniqueId = this.name.replaceAll(" ", "_"); 61 | this.stateTopic = "lights/" + getBaseFireflyDiscoveryTopic() + "/framerate"; 62 | this.valueTemplate = "{{ value_json.aspectRatio }}"; 63 | this.commandTopic = "lights/" + getBaseFireflyDiscoveryTopic() + "/setaspectratio"; 64 | this.icon = "mdi:monitor-screenshot"; 65 | this.options = new ArrayList<>(); 66 | for (Enums.AspectRatio ar : Enums.AspectRatio.values()) { 67 | options.add(ar.getBaseI18n()); 68 | } 69 | this.options.add(CommonUtility.getWord(Constants.AUTO_DETECT_BLACK_BARS, Locale.ENGLISH)); 70 | return CommonUtility.toJsonString(this); 71 | } 72 | 73 | @Override 74 | public String getDestroyEntityStr() { 75 | return ""; 76 | } 77 | } -------------------------------------------------------------------------------- /src/main/java/org/dpsoftware/managers/dto/mqttdiscovery/SelectColorModeDiscovery.java: -------------------------------------------------------------------------------- 1 | /* 2 | SelectColorModeDiscovery.java 3 | 4 | Firefly Luciferin, very fast Java Screen Capture software designed 5 | for Glow Worm Luciferin firmware. 6 | 7 | Copyright © 2020 - 2025 Davide Perini (https://github.com/sblantipodi) 8 | 9 | This program is free software: you can redistribute it and/or modify 10 | it under the terms of the GNU General Public License as published by 11 | the Free Software Foundation, either version 3 of the License, or 12 | (at your option) any later version. 13 | 14 | This program is distributed in the hope that it will be useful, 15 | but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | GNU General Public License for more details. 18 | 19 | You should have received a copy of the GNU General Public License 20 | along with this program. If not, see . 21 | */ 22 | package org.dpsoftware.managers.dto.mqttdiscovery; 23 | 24 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties; 25 | import com.fasterxml.jackson.annotation.JsonInclude; 26 | import com.fasterxml.jackson.annotation.JsonProperty; 27 | import lombok.Getter; 28 | import org.dpsoftware.MainSingleton; 29 | import org.dpsoftware.config.Constants; 30 | import org.dpsoftware.config.Enums; 31 | import org.dpsoftware.utilities.CommonUtility; 32 | 33 | import java.util.ArrayList; 34 | import java.util.List; 35 | 36 | @JsonIgnoreProperties(ignoreUnknown = true) 37 | @JsonInclude(JsonInclude.Include.NON_NULL) 38 | @Getter 39 | public class SelectColorModeDiscovery extends DeviceDiscovery implements DiscoveryObject { 40 | 41 | @JsonProperty("command_template") 42 | String commandTemplate; 43 | @JsonProperty("command_topic") 44 | String commandTopic; 45 | String icon; 46 | List options; 47 | @JsonProperty("value_template") 48 | String valueTemplate; 49 | 50 | @Override 51 | public String getDiscoveryTopic() { 52 | return MainSingleton.getInstance().config.getMqttDiscoveryTopic() + "/select/device" + CommonUtility.getDeviceToUse().getMac().replace(":", "") + "/colormode/config"; 53 | } 54 | 55 | @Override 56 | public String getCreateEntityStr() { 57 | this.name = generateUniqueName("Color Mode" + " " + CommonUtility.getDeviceToUse().getDeviceName()); 58 | this.uniqueId = this.name.replaceAll(" ", "_") + CommonUtility.getDeviceToUse().getMac().replace(":", ""); 59 | this.stateTopic = "lights/" + getBaseFireflyDiscoveryTopic() + "/framerate"; 60 | this.valueTemplate = "{{ value_json.colorMode }}"; 61 | this.options = new ArrayList<>(); 62 | StringBuilder colorModeIndex = new StringBuilder(); 63 | int cntOutput = 0; 64 | for (Enums.ColorMode colorMode : Enums.ColorMode.values()) { 65 | int ordinal = colorMode.ordinal(); 66 | colorModeIndex.append("{% ").append((cntOutput == 0) ? "if" : "elif").append(" value == '").append(colorMode.getBaseI18n()).append("' %}").append(++ordinal); 67 | options.add(colorMode.getBaseI18n()); 68 | cntOutput++; 69 | } 70 | colorModeIndex.append("{% endif %}"); 71 | this.commandTopic = Constants.TOPIC_GLOW_WORM_FIRM_CONFIG; 72 | this.commandTemplate = "{\"colorMode\":\"" + colorModeIndex + "\",\"MAC\":\"" + CommonUtility.getDeviceToUse().getMac() + "\"}"; 73 | this.icon = "mdi:palette"; 74 | return CommonUtility.toJsonString(this); 75 | } 76 | 77 | @Override 78 | public String getDestroyEntityStr() { 79 | return ""; 80 | } 81 | } -------------------------------------------------------------------------------- /src/main/java/org/dpsoftware/managers/dto/mqttdiscovery/SelectEffectDiscovery.java: -------------------------------------------------------------------------------- 1 | /* 2 | SelectEffectDiscovery.java 3 | 4 | Firefly Luciferin, very fast Java Screen Capture software designed 5 | for Glow Worm Luciferin firmware. 6 | 7 | Copyright © 2020 - 2025 Davide Perini (https://github.com/sblantipodi) 8 | 9 | This program is free software: you can redistribute it and/or modify 10 | it under the terms of the GNU General Public License as published by 11 | the Free Software Foundation, either version 3 of the License, or 12 | (at your option) any later version. 13 | 14 | This program is distributed in the hope that it will be useful, 15 | but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | GNU General Public License for more details. 18 | 19 | You should have received a copy of the GNU General Public License 20 | along with this program. If not, see . 21 | */ 22 | package org.dpsoftware.managers.dto.mqttdiscovery; 23 | 24 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties; 25 | import com.fasterxml.jackson.annotation.JsonInclude; 26 | import com.fasterxml.jackson.annotation.JsonProperty; 27 | import lombok.Getter; 28 | import org.dpsoftware.MainSingleton; 29 | import org.dpsoftware.config.Enums; 30 | import org.dpsoftware.utilities.CommonUtility; 31 | 32 | import java.util.ArrayList; 33 | import java.util.List; 34 | 35 | @JsonIgnoreProperties(ignoreUnknown = true) 36 | @JsonInclude(JsonInclude.Include.NON_NULL) 37 | @Getter 38 | public class SelectEffectDiscovery extends DeviceDiscovery implements DiscoveryObject { 39 | 40 | @JsonProperty("command_template") 41 | String commandTemplate; 42 | @JsonProperty("command_topic") 43 | String commandTopic; 44 | String icon; 45 | List options; 46 | @JsonProperty("value_template") 47 | String valueTemplate; 48 | 49 | @Override 50 | public String getDiscoveryTopic() { 51 | return MainSingleton.getInstance().config.getMqttDiscoveryTopic() + "/select/" + getBaseFireflyDiscoveryTopic() + "/effect/config"; 52 | } 53 | 54 | @Override 55 | public String getCreateEntityStr() { 56 | this.name = generateUniqueName("Effect Selector"); 57 | this.uniqueId = this.name.replaceAll(" ", "_"); 58 | this.stateTopic = "lights/" + getBaseFireflyDiscoveryTopic() + "/framerate"; 59 | this.valueTemplate = "{{ value_json.effect }}"; 60 | this.commandTopic = "lights/" + MainSingleton.getInstance().config.getMqttTopic() + "/effectToGw"; 61 | this.commandTemplate = "{\"state\":\"ON\",\"effect\":\"{{value}}\"}"; 62 | this.options = new ArrayList<>(); 63 | for (Enums.Effect effect : Enums.Effect.values()) { 64 | options.add(effect.getBaseI18n()); 65 | } 66 | this.icon = "mdi:format-list-bulleted-type"; 67 | return CommonUtility.toJsonString(this); 68 | } 69 | 70 | @Override 71 | public String getDestroyEntityStr() { 72 | return ""; 73 | } 74 | } -------------------------------------------------------------------------------- /src/main/java/org/dpsoftware/managers/dto/mqttdiscovery/SelectEmaDiscovery.java: -------------------------------------------------------------------------------- 1 | /* 2 | SelectEmaDiscovery.java 3 | 4 | Firefly Luciferin, very fast Java Screen Capture software designed 5 | for Glow Worm Luciferin firmware. 6 | 7 | Copyright © 2020 - 2025 Davide Perini (https://github.com/sblantipodi) 8 | 9 | This program is free software: you can redistribute it and/or modify 10 | it under the terms of the GNU General Public License as published by 11 | the Free Software Foundation, either version 3 of the License, or 12 | (at your option) any later version. 13 | 14 | This program is distributed in the hope that it will be useful, 15 | but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | GNU General Public License for more details. 18 | 19 | You should have received a copy of the GNU General Public License 20 | along with this program. If not, see . 21 | */ 22 | package org.dpsoftware.managers.dto.mqttdiscovery; 23 | 24 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties; 25 | import com.fasterxml.jackson.annotation.JsonInclude; 26 | import com.fasterxml.jackson.annotation.JsonProperty; 27 | import lombok.Getter; 28 | import org.dpsoftware.MainSingleton; 29 | import org.dpsoftware.config.Enums; 30 | import org.dpsoftware.utilities.CommonUtility; 31 | 32 | import java.util.ArrayList; 33 | import java.util.List; 34 | 35 | @JsonIgnoreProperties(ignoreUnknown = true) 36 | @JsonInclude(JsonInclude.Include.NON_NULL) 37 | @Getter 38 | public class SelectEmaDiscovery extends DeviceDiscovery implements DiscoveryObject { 39 | 40 | String mqttDiscoveryTopic; 41 | @JsonProperty("command_template") 42 | String commandTemplate; 43 | @JsonProperty("command_topic") 44 | String commandTopic; 45 | String icon; 46 | List options; 47 | @JsonProperty("value_template") 48 | String valueTemplate; 49 | 50 | @Override 51 | public String getDiscoveryTopic() { 52 | return MainSingleton.getInstance().config.getMqttDiscoveryTopic() + "/select/" + getBaseGWDiscoveryTopic() + "/setsmoothing/config"; 53 | } 54 | 55 | @Override 56 | public String getCreateEntityStr() { 57 | this.name = generateUniqueName("Smoothing (EMA)"); 58 | this.uniqueId = this.name.replaceAll(" ", "_"); 59 | this.stateTopic = "lights/" + getBaseFireflyDiscoveryTopic() + "/framerate"; 60 | this.valueTemplate = "{{ value_json.smoothingLvl }}"; 61 | this.commandTopic = "lights/" + getBaseFireflyDiscoveryTopic() + "/smoothing/set"; 62 | this.icon = "mdi:iron-outline"; 63 | this.options = new ArrayList<>(); 64 | for (Enums.Ema ema : Enums.Ema.values()) { 65 | options.add(ema.getBaseI18n()); 66 | } 67 | return CommonUtility.toJsonString(this); 68 | } 69 | 70 | @Override 71 | public String getDestroyEntityStr() { 72 | return ""; 73 | } 74 | } -------------------------------------------------------------------------------- /src/main/java/org/dpsoftware/managers/dto/mqttdiscovery/SelectFrameGenDiscovery.java: -------------------------------------------------------------------------------- 1 | /* 2 | SelectFrameGenDiscovery.java 3 | 4 | Firefly Luciferin, very fast Java Screen Capture software designed 5 | for Glow Worm Luciferin firmware. 6 | 7 | Copyright © 2020 - 2025 Davide Perini (https://github.com/sblantipodi) 8 | 9 | This program is free software: you can redistribute it and/or modify 10 | it under the terms of the GNU General Public License as published by 11 | the Free Software Foundation, either version 3 of the License, or 12 | (at your option) any later version. 13 | 14 | This program is distributed in the hope that it will be useful, 15 | but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | GNU General Public License for more details. 18 | 19 | You should have received a copy of the GNU General Public License 20 | along with this program. If not, see . 21 | */ 22 | package org.dpsoftware.managers.dto.mqttdiscovery; 23 | 24 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties; 25 | import com.fasterxml.jackson.annotation.JsonInclude; 26 | import com.fasterxml.jackson.annotation.JsonProperty; 27 | import lombok.Getter; 28 | import org.dpsoftware.MainSingleton; 29 | import org.dpsoftware.config.Enums; 30 | import org.dpsoftware.utilities.CommonUtility; 31 | 32 | import java.util.ArrayList; 33 | import java.util.List; 34 | 35 | @JsonIgnoreProperties(ignoreUnknown = true) 36 | @JsonInclude(JsonInclude.Include.NON_NULL) 37 | @Getter 38 | public class SelectFrameGenDiscovery extends DeviceDiscovery implements DiscoveryObject { 39 | 40 | String mqttDiscoveryTopic; 41 | @JsonProperty("command_template") 42 | String commandTemplate; 43 | @JsonProperty("command_topic") 44 | String commandTopic; 45 | String icon; 46 | List options; 47 | @JsonProperty("value_template") 48 | String valueTemplate; 49 | 50 | @Override 51 | public String getDiscoveryTopic() { 52 | return MainSingleton.getInstance().config.getMqttDiscoveryTopic() + "/select/" + getBaseGWDiscoveryTopic() + "/framgen/config"; 53 | } 54 | 55 | @Override 56 | public String getCreateEntityStr() { 57 | this.name = generateUniqueName("Frame Generation"); 58 | this.uniqueId = this.name.replaceAll(" ", "_"); 59 | this.stateTopic = "lights/" + getBaseFireflyDiscoveryTopic() + "/framerate"; 60 | this.valueTemplate = "{{ value_json.frameGen }}"; 61 | this.commandTopic = "lights/" + getBaseFireflyDiscoveryTopic() + "/framgen/set"; 62 | this.icon = "mdi:palette-swatch-variant"; 63 | this.options = new ArrayList<>(); 64 | for (Enums.FrameGeneration fi : Enums.FrameGeneration.values()) { 65 | options.add(fi.getBaseI18n()); 66 | } 67 | return CommonUtility.toJsonString(this); 68 | } 69 | 70 | @Override 71 | public String getDestroyEntityStr() { 72 | return ""; 73 | } 74 | } -------------------------------------------------------------------------------- /src/main/java/org/dpsoftware/managers/dto/mqttdiscovery/SelectGammaDiscovery.java: -------------------------------------------------------------------------------- 1 | /* 2 | SelectGammaDiscovery.java 3 | 4 | Firefly Luciferin, very fast Java Screen Capture software designed 5 | for Glow Worm Luciferin firmware. 6 | 7 | Copyright © 2020 - 2025 Davide Perini (https://github.com/sblantipodi) 8 | 9 | This program is free software: you can redistribute it and/or modify 10 | it under the terms of the GNU General Public License as published by 11 | the Free Software Foundation, either version 3 of the License, or 12 | (at your option) any later version. 13 | 14 | This program is distributed in the hope that it will be useful, 15 | but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | GNU General Public License for more details. 18 | 19 | You should have received a copy of the GNU General Public License 20 | along with this program. If not, see . 21 | */ 22 | package org.dpsoftware.managers.dto.mqttdiscovery; 23 | 24 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties; 25 | import com.fasterxml.jackson.annotation.JsonInclude; 26 | import com.fasterxml.jackson.annotation.JsonProperty; 27 | import lombok.Getter; 28 | import org.dpsoftware.MainSingleton; 29 | import org.dpsoftware.config.Enums; 30 | import org.dpsoftware.utilities.CommonUtility; 31 | 32 | import java.util.ArrayList; 33 | import java.util.List; 34 | 35 | @JsonIgnoreProperties(ignoreUnknown = true) 36 | @JsonInclude(JsonInclude.Include.NON_NULL) 37 | @Getter 38 | public class SelectGammaDiscovery extends DeviceDiscovery implements DiscoveryObject { 39 | 40 | String mqttDiscoveryTopic; 41 | @JsonProperty("command_template") 42 | String commandTemplate; 43 | @JsonProperty("command_topic") 44 | String commandTopic; 45 | String icon; 46 | List options; 47 | @JsonProperty("value_template") 48 | String valueTemplate; 49 | 50 | @Override 51 | public String getDiscoveryTopic() { 52 | return MainSingleton.getInstance().config.getMqttDiscoveryTopic() + "/select/" + getBaseGWDiscoveryTopic() + "/gamma/config"; 53 | } 54 | 55 | @Override 56 | public String getCreateEntityStr() { 57 | this.name = generateUniqueName("Gamma"); 58 | this.uniqueId = this.name.replaceAll(" ", "_"); 59 | this.stateTopic = "lights/" + getBaseFireflyDiscoveryTopic() + "/framerate"; 60 | this.commandTemplate = "{\"gamma\":\"{{value}}\"}"; 61 | this.commandTopic = "lights/" + getBaseFireflyDiscoveryTopic() + "/gamma"; 62 | this.icon = "mdi:gamma"; 63 | this.options = new ArrayList<>(); 64 | for (Enums.Gamma gamma : Enums.Gamma.values()) { 65 | options.add(gamma.getGamma()); 66 | } 67 | this.valueTemplate = "{{ value_json.gamma }}"; 68 | return CommonUtility.toJsonString(this); 69 | } 70 | 71 | @Override 72 | public String getDestroyEntityStr() { 73 | return ""; 74 | } 75 | } -------------------------------------------------------------------------------- /src/main/java/org/dpsoftware/managers/dto/mqttdiscovery/SelectProfileDiscovery.java: -------------------------------------------------------------------------------- 1 | /* 2 | SelectProfileDiscovery.java 3 | 4 | Firefly Luciferin, very fast Java Screen Capture software designed 5 | for Glow Worm Luciferin firmware. 6 | 7 | Copyright © 2020 - 2025 Davide Perini (https://github.com/sblantipodi) 8 | 9 | This program is free software: you can redistribute it and/or modify 10 | it under the terms of the GNU General Public License as published by 11 | the Free Software Foundation, either version 3 of the License, or 12 | (at your option) any later version. 13 | 14 | This program is distributed in the hope that it will be useful, 15 | but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | GNU General Public License for more details. 18 | 19 | You should have received a copy of the GNU General Public License 20 | along with this program. If not, see . 21 | */ 22 | package org.dpsoftware.managers.dto.mqttdiscovery; 23 | 24 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties; 25 | import com.fasterxml.jackson.annotation.JsonInclude; 26 | import com.fasterxml.jackson.annotation.JsonProperty; 27 | import lombok.Getter; 28 | import org.dpsoftware.MainSingleton; 29 | import org.dpsoftware.config.Constants; 30 | import org.dpsoftware.managers.StorageManager; 31 | import org.dpsoftware.utilities.CommonUtility; 32 | 33 | import java.util.ArrayList; 34 | import java.util.List; 35 | 36 | @JsonIgnoreProperties(ignoreUnknown = true) 37 | @JsonInclude(JsonInclude.Include.NON_NULL) 38 | @Getter 39 | public class SelectProfileDiscovery extends DeviceDiscovery implements DiscoveryObject { 40 | 41 | @JsonProperty("value_template") 42 | String valueTemplate; 43 | @JsonProperty("command_topic") 44 | String commandTopic; 45 | @JsonProperty("force_update") 46 | boolean forceUpdate; 47 | String icon; 48 | List options; 49 | 50 | @Override 51 | public String getDiscoveryTopic() { 52 | return MainSingleton.getInstance().config.getMqttDiscoveryTopic() + "/select/" + getBaseFireflyDiscoveryTopic() + "/profile/config"; 53 | } 54 | 55 | @Override 56 | public String getCreateEntityStr() { 57 | this.name = generateUniqueName("Profiles"); 58 | this.uniqueId = this.name.replaceAll(" ", "_"); 59 | this.commandTopic = "lights/" + getBaseFireflyDiscoveryTopic() + "/profile/set"; 60 | this.stateTopic = "lights/" + getBaseFireflyDiscoveryTopic() + "/framerate"; 61 | this.valueTemplate = "{{ value_json.profile }}"; 62 | this.forceUpdate = true; 63 | this.icon = "mdi:folder-arrow-left-right"; 64 | this.options = new ArrayList<>(); 65 | StorageManager sm = new StorageManager(); 66 | this.options.addAll(sm.listProfilesForThisInstance()); 67 | this.options.add(CommonUtility.getWord(Constants.DEFAULT)); 68 | return CommonUtility.toJsonString(this); 69 | } 70 | 71 | @Override 72 | public String getDestroyEntityStr() { 73 | return ""; 74 | } 75 | } -------------------------------------------------------------------------------- /src/main/java/org/dpsoftware/managers/dto/mqttdiscovery/SensorAspectRatioDiscovery.java: -------------------------------------------------------------------------------- 1 | /* 2 | SensorAspectRatioDiscovery.java 3 | 4 | Firefly Luciferin, very fast Java Screen Capture software designed 5 | for Glow Worm Luciferin firmware. 6 | 7 | Copyright © 2020 - 2025 Davide Perini (https://github.com/sblantipodi) 8 | 9 | This program is free software: you can redistribute it and/or modify 10 | it under the terms of the GNU General Public License as published by 11 | the Free Software Foundation, either version 3 of the License, or 12 | (at your option) any later version. 13 | 14 | This program is distributed in the hope that it will be useful, 15 | but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | GNU General Public License for more details. 18 | 19 | You should have received a copy of the GNU General Public License 20 | along with this program. If not, see . 21 | */ 22 | package org.dpsoftware.managers.dto.mqttdiscovery; 23 | 24 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties; 25 | import com.fasterxml.jackson.annotation.JsonInclude; 26 | import com.fasterxml.jackson.annotation.JsonProperty; 27 | import lombok.Getter; 28 | import org.dpsoftware.MainSingleton; 29 | import org.dpsoftware.utilities.CommonUtility; 30 | 31 | @JsonIgnoreProperties(ignoreUnknown = true) 32 | @JsonInclude(JsonInclude.Include.NON_NULL) 33 | @Getter 34 | public class SensorAspectRatioDiscovery extends DeviceDiscovery implements DiscoveryObject { 35 | 36 | @JsonProperty("force_update") 37 | boolean forceUpdate; 38 | String icon; 39 | 40 | @Override 41 | public String getDiscoveryTopic() { 42 | return MainSingleton.getInstance().config.getMqttDiscoveryTopic() + "/sensor/" + getBaseGWDiscoveryTopic() + "/aspectratio/config"; 43 | } 44 | 45 | @Override 46 | public String getCreateEntityStr() { 47 | this.name = generateUniqueName("Aspect Ratio Sensor"); 48 | this.uniqueId = this.name.replaceAll(" ", "_"); 49 | this.stateTopic = "lights/" + getBaseFireflyDiscoveryTopic() + "/aspectratio"; 50 | this.forceUpdate = true; 51 | this.icon = "mdi:aspect-ratio"; 52 | return CommonUtility.toJsonString(this); 53 | } 54 | 55 | @Override 56 | public String getDestroyEntityStr() { 57 | return ""; 58 | } 59 | } -------------------------------------------------------------------------------- /src/main/java/org/dpsoftware/managers/dto/mqttdiscovery/SensorConsumingDiscovery.java: -------------------------------------------------------------------------------- 1 | /* 2 | SensorConsumingDiscovery.java 3 | 4 | Firefly Luciferin, very fast Java Screen Capture software designed 5 | for Glow Worm Luciferin firmware. 6 | 7 | Copyright © 2020 - 2025 Davide Perini (https://github.com/sblantipodi) 8 | 9 | This program is free software: you can redistribute it and/or modify 10 | it under the terms of the GNU General Public License as published by 11 | the Free Software Foundation, either version 3 of the License, or 12 | (at your option) any later version. 13 | 14 | This program is distributed in the hope that it will be useful, 15 | but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | GNU General Public License for more details. 18 | 19 | You should have received a copy of the GNU General Public License 20 | along with this program. If not, see . 21 | */ 22 | package org.dpsoftware.managers.dto.mqttdiscovery; 23 | 24 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties; 25 | import com.fasterxml.jackson.annotation.JsonInclude; 26 | import com.fasterxml.jackson.annotation.JsonProperty; 27 | import lombok.Getter; 28 | import org.dpsoftware.MainSingleton; 29 | import org.dpsoftware.utilities.CommonUtility; 30 | 31 | @JsonIgnoreProperties(ignoreUnknown = true) 32 | @JsonInclude(JsonInclude.Include.NON_NULL) 33 | @Getter 34 | public class SensorConsumingDiscovery extends DeviceDiscovery implements DiscoveryObject { 35 | 36 | @JsonProperty("value_template") 37 | String valueTemplate; 38 | @JsonProperty("unit_of_measurement") 39 | String unitOfMeasurement; 40 | String icon; 41 | 42 | @Override 43 | public String getDiscoveryTopic() { 44 | return MainSingleton.getInstance().config.getMqttDiscoveryTopic() + "/sensor/" + getBaseGWDiscoveryTopic() + "/Firefly_Luciferin_Consuming/config"; 45 | } 46 | 47 | @Override 48 | public String getCreateEntityStr() { 49 | this.name = generateUniqueName("(Firefly Consuming)"); 50 | this.uniqueId = this.name.replaceAll(" ", "_"); 51 | this.stateTopic = "lights/" + getBaseFireflyDiscoveryTopic() + "/framerate"; 52 | this.valueTemplate = "{{ value_json.consuming }}"; 53 | this.unitOfMeasurement = "FPS"; 54 | this.icon = "mdi:speedometer"; 55 | return CommonUtility.toJsonString(this); 56 | } 57 | 58 | @Override 59 | public String getDestroyEntityStr() { 60 | return ""; 61 | } 62 | } -------------------------------------------------------------------------------- /src/main/java/org/dpsoftware/managers/dto/mqttdiscovery/SensorGWConsumingDiscovery.java: -------------------------------------------------------------------------------- 1 | /* 2 | SensorGWConsumingDiscovery.java 3 | 4 | Firefly Luciferin, very fast Java Screen Capture software designed 5 | for Glow Worm Luciferin firmware. 6 | 7 | Copyright © 2020 - 2025 Davide Perini (https://github.com/sblantipodi) 8 | 9 | This program is free software: you can redistribute it and/or modify 10 | it under the terms of the GNU General Public License as published by 11 | the Free Software Foundation, either version 3 of the License, or 12 | (at your option) any later version. 13 | 14 | This program is distributed in the hope that it will be useful, 15 | but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | GNU General Public License for more details. 18 | 19 | You should have received a copy of the GNU General Public License 20 | along with this program. If not, see . 21 | */ 22 | package org.dpsoftware.managers.dto.mqttdiscovery; 23 | 24 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties; 25 | import com.fasterxml.jackson.annotation.JsonInclude; 26 | import com.fasterxml.jackson.annotation.JsonProperty; 27 | import lombok.Getter; 28 | import org.dpsoftware.MainSingleton; 29 | import org.dpsoftware.utilities.CommonUtility; 30 | 31 | @JsonIgnoreProperties(ignoreUnknown = true) 32 | @JsonInclude(JsonInclude.Include.NON_NULL) 33 | @Getter 34 | public class SensorGWConsumingDiscovery extends DeviceDiscovery implements DiscoveryObject { 35 | 36 | @JsonProperty("value_template") 37 | String valueTemplate; 38 | @JsonProperty("unit_of_measurement") 39 | String unitOfMeasurement; 40 | @JsonProperty("force_update") 41 | boolean forceUpdate; 42 | String icon; 43 | 44 | @Override 45 | public String getDiscoveryTopic() { 46 | return MainSingleton.getInstance().config.getMqttDiscoveryTopic() + "/sensor/" + getBaseGWDiscoveryTopic() + "/Glow_Worm_Luciferin_FPS_running/config"; 47 | } 48 | 49 | @Override 50 | public String getCreateEntityStr() { 51 | this.name = generateUniqueName("(Glow Worm Consuming)"); 52 | this.uniqueId = this.name.replaceAll(" ", "_"); 53 | this.stateTopic = "lights/" + MainSingleton.getInstance().config.getMqttTopic(); 54 | this.valueTemplate = "{{ value_json.framerate }}"; 55 | this.unitOfMeasurement = "FPS"; 56 | this.forceUpdate = true; 57 | this.icon = "mdi:speedometer"; 58 | return CommonUtility.toJsonString(this); 59 | } 60 | 61 | @Override 62 | public String getDestroyEntityStr() { 63 | return ""; 64 | } 65 | } -------------------------------------------------------------------------------- /src/main/java/org/dpsoftware/managers/dto/mqttdiscovery/SensorGpioDiscovery.java: -------------------------------------------------------------------------------- 1 | /* 2 | SensorGpioDiscovery.java 3 | 4 | Firefly Luciferin, very fast Java Screen Capture software designed 5 | for Glow Worm Luciferin firmware. 6 | 7 | Copyright © 2020 - 2025 Davide Perini (https://github.com/sblantipodi) 8 | 9 | This program is free software: you can redistribute it and/or modify 10 | it under the terms of the GNU General Public License as published by 11 | the Free Software Foundation, either version 3 of the License, or 12 | (at your option) any later version. 13 | 14 | This program is distributed in the hope that it will be useful, 15 | but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | GNU General Public License for more details. 18 | 19 | You should have received a copy of the GNU General Public License 20 | along with this program. If not, see . 21 | */ 22 | package org.dpsoftware.managers.dto.mqttdiscovery; 23 | 24 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties; 25 | import com.fasterxml.jackson.annotation.JsonInclude; 26 | import com.fasterxml.jackson.annotation.JsonProperty; 27 | import lombok.Getter; 28 | import org.dpsoftware.MainSingleton; 29 | import org.dpsoftware.utilities.CommonUtility; 30 | 31 | @JsonIgnoreProperties(ignoreUnknown = true) 32 | @JsonInclude(JsonInclude.Include.NON_NULL) 33 | @Getter 34 | public class SensorGpioDiscovery extends DeviceDiscovery implements DiscoveryObject { 35 | 36 | @JsonProperty("value_template") 37 | String valueTemplate; 38 | @JsonProperty("unit_of_measurement") 39 | String unitOfMeasurement; 40 | String icon; 41 | 42 | @Override 43 | public String getDiscoveryTopic() { 44 | return MainSingleton.getInstance().config.getMqttDiscoveryTopic() + "/sensor/" + getBaseGWDiscoveryTopic() + "/gpio/config"; 45 | } 46 | 47 | @Override 48 | public String getCreateEntityStr() { 49 | this.name = generateUniqueName("GPIO"); 50 | this.uniqueId = this.name.replaceAll(" ", "_"); 51 | this.stateTopic = "lights/" + MainSingleton.getInstance().config.getMqttTopic(); 52 | this.valueTemplate = "{{ value_json.gpio if value_json.gpio > 0 else states('sensor." + this.uniqueId.toLowerCase() + "') }}"; 53 | this.unitOfMeasurement = ""; 54 | this.icon = "mdi:chip"; 55 | return CommonUtility.toJsonString(this); 56 | } 57 | 58 | @Override 59 | public String getDestroyEntityStr() { 60 | return ""; 61 | } 62 | } -------------------------------------------------------------------------------- /src/main/java/org/dpsoftware/managers/dto/mqttdiscovery/SensorLastUpdateDiscovery.java: -------------------------------------------------------------------------------- 1 | /* 2 | SensorLastUpdateDiscovery.java 3 | 4 | Firefly Luciferin, very fast Java Screen Capture software designed 5 | for Glow Worm Luciferin firmware. 6 | 7 | Copyright © 2020 - 2025 Davide Perini (https://github.com/sblantipodi) 8 | 9 | This program is free software: you can redistribute it and/or modify 10 | it under the terms of the GNU General Public License as published by 11 | the Free Software Foundation, either version 3 of the License, or 12 | (at your option) any later version. 13 | 14 | This program is distributed in the hope that it will be useful, 15 | but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | GNU General Public License for more details. 18 | 19 | You should have received a copy of the GNU General Public License 20 | along with this program. If not, see . 21 | */ 22 | package org.dpsoftware.managers.dto.mqttdiscovery; 23 | 24 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties; 25 | import com.fasterxml.jackson.annotation.JsonInclude; 26 | import com.fasterxml.jackson.annotation.JsonProperty; 27 | import lombok.Getter; 28 | import org.dpsoftware.MainSingleton; 29 | import org.dpsoftware.utilities.CommonUtility; 30 | 31 | @JsonIgnoreProperties(ignoreUnknown = true) 32 | @JsonInclude(JsonInclude.Include.NON_NULL) 33 | @Getter 34 | public class SensorLastUpdateDiscovery extends DeviceDiscovery implements DiscoveryObject { 35 | 36 | @JsonProperty("value_template") 37 | String valueTemplate; 38 | String icon; 39 | 40 | @Override 41 | public String getDiscoveryTopic() { 42 | return MainSingleton.getInstance().config.getMqttDiscoveryTopic() + "/sensor/" + getBaseGWDiscoveryTopic() + "/Last_Update_GlowWorm/config"; 43 | } 44 | 45 | @Override 46 | public String getCreateEntityStr() { 47 | this.name = generateUniqueName("Last Update (Glow Worm)"); 48 | this.uniqueId = this.name.replaceAll(" ", "_"); 49 | this.stateTopic = "lights/" + MainSingleton.getInstance().config.getMqttTopic(); 50 | this.valueTemplate = "{{ as_timestamp(now()) | timestamp_custom(\"%Y-%m-%d ~ %H:%M:%S\") }}"; 51 | this.icon = "mdi:update"; 52 | return CommonUtility.toJsonString(this); 53 | } 54 | 55 | @Override 56 | public String getDestroyEntityStr() { 57 | return ""; 58 | } 59 | } -------------------------------------------------------------------------------- /src/main/java/org/dpsoftware/managers/dto/mqttdiscovery/SensorLastUpdateFFDiscovery.java: -------------------------------------------------------------------------------- 1 | /* 2 | SensorLastUpdateFFDiscovery.java 3 | 4 | Firefly Luciferin, very fast Java Screen Capture software designed 5 | for Glow Worm Luciferin firmware. 6 | 7 | Copyright © 2020 - 2025 Davide Perini (https://github.com/sblantipodi) 8 | 9 | This program is free software: you can redistribute it and/or modify 10 | it under the terms of the GNU General Public License as published by 11 | the Free Software Foundation, either version 3 of the License, or 12 | (at your option) any later version. 13 | 14 | This program is distributed in the hope that it will be useful, 15 | but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | GNU General Public License for more details. 18 | 19 | You should have received a copy of the GNU General Public License 20 | along with this program. If not, see . 21 | */ 22 | package org.dpsoftware.managers.dto.mqttdiscovery; 23 | 24 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties; 25 | import com.fasterxml.jackson.annotation.JsonInclude; 26 | import com.fasterxml.jackson.annotation.JsonProperty; 27 | import lombok.Getter; 28 | import org.dpsoftware.MainSingleton; 29 | import org.dpsoftware.utilities.CommonUtility; 30 | 31 | @JsonIgnoreProperties(ignoreUnknown = true) 32 | @JsonInclude(JsonInclude.Include.NON_NULL) 33 | @Getter 34 | public class SensorLastUpdateFFDiscovery extends DeviceDiscovery implements DiscoveryObject { 35 | 36 | @JsonProperty("value_template") 37 | String valueTemplate; 38 | String icon; 39 | 40 | @Override 41 | public String getDiscoveryTopic() { 42 | return MainSingleton.getInstance().config.getMqttDiscoveryTopic() + "/sensor/" + getBaseFireflyDiscoveryTopic() + "/Last_Update_FF/config"; 43 | } 44 | 45 | @Override 46 | public String getCreateEntityStr() { 47 | this.name = generateUniqueName("Last Update (Firefly)"); 48 | this.uniqueId = this.name.replaceAll(" ", "_"); 49 | this.stateTopic = "lights/" + getBaseFireflyDiscoveryTopic() + "/framerate"; 50 | this.valueTemplate = "{{ as_timestamp(now()) | timestamp_custom(\"%Y-%m-%d ~ %H:%M:%S\") }}"; 51 | this.icon = "mdi:update"; 52 | return CommonUtility.toJsonString(this); 53 | } 54 | 55 | @Override 56 | public String getDestroyEntityStr() { 57 | return ""; 58 | } 59 | } -------------------------------------------------------------------------------- /src/main/java/org/dpsoftware/managers/dto/mqttdiscovery/SensorLdrDiscovery.java: -------------------------------------------------------------------------------- 1 | /* 2 | SensorLdrDiscovery.java 3 | 4 | Firefly Luciferin, very fast Java Screen Capture software designed 5 | for Glow Worm Luciferin firmware. 6 | 7 | Copyright © 2020 - 2025 Davide Perini (https://github.com/sblantipodi) 8 | 9 | This program is free software: you can redistribute it and/or modify 10 | it under the terms of the GNU General Public License as published by 11 | the Free Software Foundation, either version 3 of the License, or 12 | (at your option) any later version. 13 | 14 | This program is distributed in the hope that it will be useful, 15 | but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | GNU General Public License for more details. 18 | 19 | You should have received a copy of the GNU General Public License 20 | along with this program. If not, see . 21 | */ 22 | package org.dpsoftware.managers.dto.mqttdiscovery; 23 | 24 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties; 25 | import com.fasterxml.jackson.annotation.JsonInclude; 26 | import com.fasterxml.jackson.annotation.JsonProperty; 27 | import lombok.Getter; 28 | import org.dpsoftware.MainSingleton; 29 | import org.dpsoftware.utilities.CommonUtility; 30 | 31 | @JsonIgnoreProperties(ignoreUnknown = true) 32 | @JsonInclude(JsonInclude.Include.NON_NULL) 33 | @Getter 34 | public class SensorLdrDiscovery extends DeviceDiscovery implements DiscoveryObject { 35 | 36 | @JsonProperty("value_template") 37 | String valueTemplate; 38 | @JsonProperty("unit_of_measurement") 39 | String unitOfMeasurement; 40 | String icon; 41 | 42 | @Override 43 | public String getDiscoveryTopic() { 44 | return MainSingleton.getInstance().config.getMqttDiscoveryTopic() + "/sensor/" + getBaseGWDiscoveryTopic() + "/ldr/config"; 45 | } 46 | 47 | @Override 48 | public String getCreateEntityStr() { 49 | this.name = generateUniqueName("LDR"); 50 | this.uniqueId = this.name.replaceAll(" ", "_"); 51 | this.stateTopic = "lights/" + MainSingleton.getInstance().config.getMqttTopic(); 52 | this.valueTemplate = "{{ value_json.ldr if value_json.ldr is defined else '0' }}"; 53 | this.unitOfMeasurement = "%"; 54 | this.icon = "mdi:theme-light-dark"; 55 | return CommonUtility.toJsonString(this); 56 | } 57 | 58 | @Override 59 | public String getDestroyEntityStr() { 60 | return ""; 61 | } 62 | } -------------------------------------------------------------------------------- /src/main/java/org/dpsoftware/managers/dto/mqttdiscovery/SensorLedsDiscovery.java: -------------------------------------------------------------------------------- 1 | /* 2 | SensorLedsDiscovery.java 3 | 4 | Firefly Luciferin, very fast Java Screen Capture software designed 5 | for Glow Worm Luciferin firmware. 6 | 7 | Copyright © 2020 - 2025 Davide Perini (https://github.com/sblantipodi) 8 | 9 | This program is free software: you can redistribute it and/or modify 10 | it under the terms of the GNU General Public License as published by 11 | the Free Software Foundation, either version 3 of the License, or 12 | (at your option) any later version. 13 | 14 | This program is distributed in the hope that it will be useful, 15 | but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | GNU General Public License for more details. 18 | 19 | You should have received a copy of the GNU General Public License 20 | along with this program. If not, see . 21 | */ 22 | package org.dpsoftware.managers.dto.mqttdiscovery; 23 | 24 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties; 25 | import com.fasterxml.jackson.annotation.JsonInclude; 26 | import com.fasterxml.jackson.annotation.JsonProperty; 27 | import lombok.Getter; 28 | import org.dpsoftware.MainSingleton; 29 | import org.dpsoftware.utilities.CommonUtility; 30 | 31 | @JsonIgnoreProperties(ignoreUnknown = true) 32 | @JsonInclude(JsonInclude.Include.NON_NULL) 33 | @Getter 34 | public class SensorLedsDiscovery extends DeviceDiscovery implements DiscoveryObject { 35 | 36 | @JsonProperty("value_template") 37 | String valueTemplate; 38 | @JsonProperty("unit_of_measurement") 39 | String unitOfMeasurement; 40 | String icon; 41 | 42 | @Override 43 | public String getDiscoveryTopic() { 44 | return MainSingleton.getInstance().config.getMqttDiscoveryTopic() + "/sensor/" + getBaseGWDiscoveryTopic() + "/number_of_leds/config"; 45 | } 46 | 47 | @Override 48 | public String getCreateEntityStr() { 49 | this.name = generateUniqueName("number of leds"); 50 | this.uniqueId = this.name.replaceAll(" ", "_"); 51 | this.stateTopic = "lights/" + MainSingleton.getInstance().config.getMqttTopic(); 52 | this.valueTemplate = "{{ value_json.lednum }}"; 53 | this.unitOfMeasurement = ""; 54 | this.icon = "mdi:led-strip-variant"; 55 | return CommonUtility.toJsonString(this); 56 | } 57 | 58 | @Override 59 | public String getDestroyEntityStr() { 60 | return ""; 61 | } 62 | } -------------------------------------------------------------------------------- /src/main/java/org/dpsoftware/managers/dto/mqttdiscovery/SensorProducingDiscovery.java: -------------------------------------------------------------------------------- 1 | /* 2 | SensorProducingDiscovery.java 3 | 4 | Firefly Luciferin, very fast Java Screen Capture software designed 5 | for Glow Worm Luciferin firmware. 6 | 7 | Copyright © 2020 - 2025 Davide Perini (https://github.com/sblantipodi) 8 | 9 | This program is free software: you can redistribute it and/or modify 10 | it under the terms of the GNU General Public License as published by 11 | the Free Software Foundation, either version 3 of the License, or 12 | (at your option) any later version. 13 | 14 | This program is distributed in the hope that it will be useful, 15 | but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | GNU General Public License for more details. 18 | 19 | You should have received a copy of the GNU General Public License 20 | along with this program. If not, see . 21 | */ 22 | package org.dpsoftware.managers.dto.mqttdiscovery; 23 | 24 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties; 25 | import com.fasterxml.jackson.annotation.JsonInclude; 26 | import com.fasterxml.jackson.annotation.JsonProperty; 27 | import lombok.Getter; 28 | import org.dpsoftware.MainSingleton; 29 | import org.dpsoftware.config.Constants; 30 | import org.dpsoftware.managers.NetworkManager; 31 | import org.dpsoftware.utilities.CommonUtility; 32 | 33 | @JsonIgnoreProperties(ignoreUnknown = true) 34 | @JsonInclude(JsonInclude.Include.NON_NULL) 35 | @Getter 36 | public class SensorProducingDiscovery extends DeviceDiscovery implements DiscoveryObject { 37 | 38 | @JsonProperty("value_template") 39 | String valueTemplate; 40 | @JsonProperty("unit_of_measurement") 41 | String unitOfMeasurement; 42 | String icon; 43 | 44 | @Override 45 | public String getDiscoveryTopic() { 46 | return MainSingleton.getInstance().config.getMqttDiscoveryTopic() + "/sensor/" + getBaseGWDiscoveryTopic() + "/Firefly_Luciferin_Producing/config"; 47 | } 48 | 49 | @Override 50 | public String getCreateEntityStr() { 51 | this.name = generateUniqueName("(Firefly Producing)"); 52 | this.uniqueId = this.name.replaceAll(" ", "_"); 53 | this.stateTopic = "lights/" + getBaseFireflyDiscoveryTopic() + "/framerate"; 54 | this.valueTemplate = "{{ value_json.producing }}"; 55 | this.unitOfMeasurement = "FPS"; 56 | this.icon = "mdi:speedometer"; 57 | return CommonUtility.toJsonString(this); 58 | } 59 | 60 | @Override 61 | public String getDestroyEntityStr() { 62 | return ""; 63 | } 64 | 65 | public void setZeroValue() { 66 | NetworkManager.publishToTopic("lights/" + getBaseFireflyDiscoveryTopic() + "/framerate", Constants.MQTT_FIREFLY_0_FPS); 67 | } 68 | } -------------------------------------------------------------------------------- /src/main/java/org/dpsoftware/managers/dto/mqttdiscovery/SensorVersionDiscovery.java: -------------------------------------------------------------------------------- 1 | /* 2 | SensorVersionDiscovery.java 3 | 4 | Firefly Luciferin, very fast Java Screen Capture software designed 5 | for Glow Worm Luciferin firmware. 6 | 7 | Copyright © 2020 - 2025 Davide Perini (https://github.com/sblantipodi) 8 | 9 | This program is free software: you can redistribute it and/or modify 10 | it under the terms of the GNU General Public License as published by 11 | the Free Software Foundation, either version 3 of the License, or 12 | (at your option) any later version. 13 | 14 | This program is distributed in the hope that it will be useful, 15 | but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | GNU General Public License for more details. 18 | 19 | You should have received a copy of the GNU General Public License 20 | along with this program. If not, see . 21 | */ 22 | package org.dpsoftware.managers.dto.mqttdiscovery; 23 | 24 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties; 25 | import com.fasterxml.jackson.annotation.JsonInclude; 26 | import com.fasterxml.jackson.annotation.JsonProperty; 27 | import lombok.Getter; 28 | import org.dpsoftware.MainSingleton; 29 | import org.dpsoftware.utilities.CommonUtility; 30 | 31 | @JsonIgnoreProperties(ignoreUnknown = true) 32 | @JsonInclude(JsonInclude.Include.NON_NULL) 33 | @Getter 34 | public class SensorVersionDiscovery extends DeviceDiscovery implements DiscoveryObject { 35 | 36 | @JsonProperty("value_template") 37 | String valueTemplate; 38 | @JsonProperty("unit_of_measurement") 39 | String unitOfMeasurement; 40 | @JsonProperty("force_update") 41 | boolean forceUpdate; 42 | String icon; 43 | 44 | @Override 45 | public String getDiscoveryTopic() { 46 | return MainSingleton.getInstance().config.getMqttDiscoveryTopic() + "/sensor/" + getBaseGWDiscoveryTopic() + "/GlowWorm_Version/config"; 47 | } 48 | 49 | @Override 50 | public String getCreateEntityStr() { 51 | this.name = generateUniqueName("Glow Worm Version"); 52 | this.uniqueId = this.name.replaceAll(" ", "_"); 53 | this.stateTopic = "lights/" + MainSingleton.getInstance().config.getMqttTopic(); 54 | this.valueTemplate = "{{ value_json.ver if value_json.ver is defined else this.state }}"; 55 | this.forceUpdate = true; 56 | this.icon = "mdi:numeric"; 57 | return CommonUtility.toJsonString(this); 58 | } 59 | 60 | @Override 61 | public String getDestroyEntityStr() { 62 | return ""; 63 | } 64 | } -------------------------------------------------------------------------------- /src/main/java/org/dpsoftware/managers/dto/mqttdiscovery/SensorWiFiDiscovery.java: -------------------------------------------------------------------------------- 1 | /* 2 | SensorWiFiDiscovery.java 3 | 4 | Firefly Luciferin, very fast Java Screen Capture software designed 5 | for Glow Worm Luciferin firmware. 6 | 7 | Copyright © 2020 - 2025 Davide Perini (https://github.com/sblantipodi) 8 | 9 | This program is free software: you can redistribute it and/or modify 10 | it under the terms of the GNU General Public License as published by 11 | the Free Software Foundation, either version 3 of the License, or 12 | (at your option) any later version. 13 | 14 | This program is distributed in the hope that it will be useful, 15 | but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | GNU General Public License for more details. 18 | 19 | You should have received a copy of the GNU General Public License 20 | along with this program. If not, see . 21 | */ 22 | package org.dpsoftware.managers.dto.mqttdiscovery; 23 | 24 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties; 25 | import com.fasterxml.jackson.annotation.JsonInclude; 26 | import com.fasterxml.jackson.annotation.JsonProperty; 27 | import lombok.Getter; 28 | import org.dpsoftware.MainSingleton; 29 | import org.dpsoftware.utilities.CommonUtility; 30 | 31 | @JsonIgnoreProperties(ignoreUnknown = true) 32 | @JsonInclude(JsonInclude.Include.NON_NULL) 33 | @Getter 34 | public class SensorWiFiDiscovery extends DeviceDiscovery implements DiscoveryObject { 35 | 36 | @JsonProperty("value_template") 37 | String valueTemplate; 38 | @JsonProperty("unit_of_measurement") 39 | String unitOfMeasurement; 40 | String icon; 41 | 42 | @Override 43 | public String getDiscoveryTopic() { 44 | return MainSingleton.getInstance().config.getMqttDiscoveryTopic() + "/sensor/" + getBaseGWDiscoveryTopic() + "/wifi/config"; 45 | } 46 | 47 | @Override 48 | public String getCreateEntityStr() { 49 | this.name = generateUniqueName("WiFi"); 50 | this.uniqueId = this.name.replaceAll(" ", "_"); 51 | this.stateTopic = "lights/" + MainSingleton.getInstance().config.getMqttTopic(); 52 | this.valueTemplate = "{{ value_json.wifi }}"; 53 | this.unitOfMeasurement = "%"; 54 | this.icon = "mdi:wifi"; 55 | return CommonUtility.toJsonString(this); 56 | } 57 | 58 | @Override 59 | public String getDestroyEntityStr() { 60 | return ""; 61 | } 62 | } -------------------------------------------------------------------------------- /src/main/java/org/dpsoftware/managers/dto/mqttdiscovery/SwitchBiasLightDiscovery.java: -------------------------------------------------------------------------------- 1 | /* 2 | SwitchBiasLightDiscovery.java 3 | 4 | Firefly Luciferin, very fast Java Screen Capture software designed 5 | for Glow Worm Luciferin firmware. 6 | 7 | Copyright © 2020 - 2025 Davide Perini (https://github.com/sblantipodi) 8 | 9 | This program is free software: you can redistribute it and/or modify 10 | it under the terms of the GNU General Public License as published by 11 | the Free Software Foundation, either version 3 of the License, or 12 | (at your option) any later version. 13 | 14 | This program is distributed in the hope that it will be useful, 15 | but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | GNU General Public License for more details. 18 | 19 | You should have received a copy of the GNU General Public License 20 | along with this program. If not, see . 21 | */ 22 | package org.dpsoftware.managers.dto.mqttdiscovery; 23 | 24 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties; 25 | import com.fasterxml.jackson.annotation.JsonInclude; 26 | import com.fasterxml.jackson.annotation.JsonProperty; 27 | import lombok.Getter; 28 | import org.dpsoftware.MainSingleton; 29 | import org.dpsoftware.utilities.CommonUtility; 30 | 31 | @JsonIgnoreProperties(ignoreUnknown = true) 32 | @JsonInclude(JsonInclude.Include.NON_NULL) 33 | @Getter 34 | public class SwitchBiasLightDiscovery extends DeviceDiscovery implements DiscoveryObject { 35 | 36 | @JsonProperty("command_topic") 37 | String commandTopic; 38 | @JsonProperty("payload_on") 39 | String payloadOn; 40 | @JsonProperty("payload_off") 41 | String payloadOff; 42 | @JsonProperty("value_template") 43 | String valueTemplate; 44 | @JsonProperty("state_off") 45 | boolean stateOff; 46 | @JsonProperty("state_on") 47 | boolean stateOn; 48 | String icon; 49 | 50 | @Override 51 | public String getDiscoveryTopic() { 52 | return MainSingleton.getInstance().config.getMqttDiscoveryTopic() + "/switch/" + getBaseGWDiscoveryTopic() + "/biaslight/config"; 53 | } 54 | 55 | @Override 56 | public String getCreateEntityStr() { 57 | this.name = generateUniqueName("Bias Light"); 58 | this.uniqueId = this.name.replaceAll(" ", "_"); 59 | this.stateTopic = "lights/" + getBaseFireflyDiscoveryTopic() + "/framerate"; 60 | this.commandTopic = "lights/" + MainSingleton.getInstance().config.getMqttTopic(); 61 | this.payloadOn = "{\"state\":\"ON\",\"startStopInstances\":\"PLAY\"}"; 62 | this.payloadOff = "{\"state\":\"ON\",\"startStopInstances\":\"STOP\"}"; 63 | this.valueTemplate = "{{ value_json.producing | int > 0 }}"; 64 | this.icon = "mdi:television-ambient-light"; 65 | this.stateOn = true; 66 | this.stateOff = false; 67 | return CommonUtility.toJsonString(this); 68 | } 69 | 70 | @Override 71 | public String getDestroyEntityStr() { 72 | return ""; 73 | } 74 | } -------------------------------------------------------------------------------- /src/main/java/org/dpsoftware/managers/dto/mqttdiscovery/SwitchRebootDiscovery.java: -------------------------------------------------------------------------------- 1 | /* 2 | SwitchRebootDiscovery.java 3 | 4 | Firefly Luciferin, very fast Java Screen Capture software designed 5 | for Glow Worm Luciferin firmware. 6 | 7 | Copyright © 2020 - 2025 Davide Perini (https://github.com/sblantipodi) 8 | 9 | This program is free software: you can redistribute it and/or modify 10 | it under the terms of the GNU General Public License as published by 11 | the Free Software Foundation, either version 3 of the License, or 12 | (at your option) any later version. 13 | 14 | This program is distributed in the hope that it will be useful, 15 | but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | GNU General Public License for more details. 18 | 19 | You should have received a copy of the GNU General Public License 20 | along with this program. If not, see . 21 | */ 22 | package org.dpsoftware.managers.dto.mqttdiscovery; 23 | 24 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties; 25 | import com.fasterxml.jackson.annotation.JsonInclude; 26 | import com.fasterxml.jackson.annotation.JsonProperty; 27 | import lombok.Getter; 28 | import org.dpsoftware.MainSingleton; 29 | import org.dpsoftware.utilities.CommonUtility; 30 | 31 | @JsonIgnoreProperties(ignoreUnknown = true) 32 | @JsonInclude(JsonInclude.Include.NON_NULL) 33 | @Getter 34 | public class SwitchRebootDiscovery extends DeviceDiscovery implements DiscoveryObject { 35 | 36 | String stateTopic; 37 | @JsonProperty("command_topic") 38 | String commandTopic; 39 | int qos; 40 | boolean retain; 41 | @JsonProperty("payload_press") 42 | String payloadPress; 43 | String icon; 44 | 45 | @Override 46 | public String getDiscoveryTopic() { 47 | return MainSingleton.getInstance().config.getMqttDiscoveryTopic() + "/button/" + getBaseGWDiscoveryTopic() + "/rebootglowworm/config"; 48 | } 49 | 50 | @Override 51 | public String getCreateEntityStr() { 52 | this.name = generateUniqueName("Reboot Glow Worm"); 53 | this.uniqueId = this.name.replaceAll(" ", "_"); 54 | this.stateTopic = "stat/" + MainSingleton.getInstance().config.getMqttTopic() + "/reboot"; 55 | this.commandTopic = "cmnd/" + MainSingleton.getInstance().config.getMqttTopic() + "/reboot"; 56 | this.qos = 1; 57 | this.retain = false; 58 | this.payloadPress = "OFF"; 59 | this.icon = "mdi:restart"; 60 | return CommonUtility.toJsonString(this); 61 | } 62 | 63 | @Override 64 | public String getDestroyEntityStr() { 65 | return ""; 66 | } 67 | } -------------------------------------------------------------------------------- /src/main/java/org/dpsoftware/network/NetworkSingleton.java: -------------------------------------------------------------------------------- 1 | /* 2 | NetworkSingleton.java 3 | 4 | Firefly Luciferin, very fast Java Screen Capture software designed 5 | for Glow Worm Luciferin firmware. 6 | 7 | Copyright © 2020 - 2025 Davide Perini (https://github.com/sblantipodi) 8 | 9 | This program is free software: you can redistribute it and/or modify 10 | it under the terms of the GNU General Public License as published by 11 | the Free Software Foundation, either version 3 of the License, or 12 | (at your option) any later version. 13 | 14 | This program is distributed in the hope that it will be useful, 15 | but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | GNU General Public License for more details. 18 | 19 | You should have received a copy of the GNU General Public License 20 | along with this program. If not, see . 21 | */ 22 | package org.dpsoftware.network; 23 | 24 | import lombok.Getter; 25 | import lombok.NoArgsConstructor; 26 | import lombok.Setter; 27 | import org.dpsoftware.MainSingleton; 28 | 29 | /** 30 | * Network singleton used to share common data 31 | */ 32 | @Getter 33 | @Setter 34 | @NoArgsConstructor 35 | public class NetworkSingleton { 36 | 37 | @Getter 38 | private final static NetworkSingleton instance; 39 | 40 | static { 41 | instance = new NetworkSingleton(); 42 | } 43 | 44 | public boolean udpBroadcastReceiverRunning = false; 45 | public MessageClient msgClient; 46 | public boolean closeServer = false; 47 | public int totalLedNum = MainSingleton.getInstance().ledNumber; 48 | public MessageServer messageServer; 49 | 50 | } 51 | 52 | -------------------------------------------------------------------------------- /src/main/java/org/dpsoftware/utilities/PropertiesLoader.java: -------------------------------------------------------------------------------- 1 | /* 2 | PropertiesLoader.java 3 | 4 | Firefly Luciferin, very fast Java Screen Capture software designed 5 | for Glow Worm Luciferin firmware. 6 | 7 | Copyright © 2020 - 2025 Davide Perini (https://github.com/sblantipodi) 8 | 9 | This program is free software: you can redistribute it and/or modify 10 | it under the terms of the GNU General Public License as published by 11 | the Free Software Foundation, either version 3 of the License, or 12 | (at your option) any later version. 13 | 14 | This program is distributed in the hope that it will be useful, 15 | but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | GNU General Public License for more details. 18 | 19 | You should have received a copy of the GNU General Public License 20 | along with this program. If not, see . 21 | */ 22 | package org.dpsoftware.utilities; 23 | 24 | import lombok.NoArgsConstructor; 25 | import lombok.extern.slf4j.Slf4j; 26 | import org.dpsoftware.config.Constants; 27 | 28 | import java.io.IOException; 29 | import java.io.InputStream; 30 | import java.util.Properties; 31 | 32 | /** 33 | * GUI Manager for tray icon menu and framerate counter dialog 34 | */ 35 | @Slf4j 36 | @NoArgsConstructor 37 | public class PropertiesLoader { 38 | 39 | /** 40 | * Extract project version computed from Continuous Integration 41 | * 42 | * @return properties value 43 | */ 44 | public String retrieveProperties(String prop) { 45 | final Properties properties = new Properties(); 46 | try (final InputStream fis = this.getClass().getClassLoader().getResourceAsStream(Constants.PROPERTIES_FILENAME)) { 47 | properties.load(fis); 48 | return properties.getProperty(prop); 49 | } catch (IOException e) { 50 | log.error(e.getMessage()); 51 | } 52 | return prop; 53 | } 54 | 55 | } 56 | -------------------------------------------------------------------------------- /src/main/resources/build_assets/org.dpsoftware.FireflyLuciferin.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Name=Firefly Luciferin 3 | Comment=Ambient lighting software 4 | Exec=FireflyLuciferin 5 | Icon=org.dpsoftware.FireflyLuciferin 6 | Terminal=false 7 | Type=Application 8 | Categories=AudioVideo;Audio;Video;Game 9 | -------------------------------------------------------------------------------- /src/main/resources/build_assets/org.dpsoftware.FireflyLuciferin.snap.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Name=Firefly Luciferin 3 | Comment=Ambient lighting software 4 | Exec=${SNAP}/bin/FireflyLuciferin 5 | Icon=${SNAP}/meta/gui/fireflyluciferin.png 6 | Terminal=false 7 | Type=Application 8 | Categories=AudioVideo;Audio;Video;Game 9 | -------------------------------------------------------------------------------- /src/main/resources/build_assets/org.dpsoftware.FireflyLuciferin.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 10 | 11 | 12 | 13 | 16 | 17 | 18 | 19 | 20 | 21 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /src/main/resources/logback.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 9 | 10 | %instanceNumber %d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n 11 | 12 | 13 | 14 | 15 | 16 | ${luciferin.folder}/logs/FireflyLuciferin.log 17 | 18 | 19 | logs/archived/app.%d{yyyy-MM-dd}.%i.log 20 | 21 | 2MB 22 | 23 | 10MB 24 | 25 | 15 26 | 27 | 28 | 29 | %instanceNumber %d %p %c{1} [%t] %m%n 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /src/main/resources/messagebundle.properties: -------------------------------------------------------------------------------- 1 | enum.language.de=Deutsch 2 | enum.language.en=English 3 | enum.language.es=Español 4 | enum.language.fr=Français 5 | enum.language.hu=Magyar 6 | enum.language.it=Italiano 7 | enum.language.ru=Pусский 8 | enum.language.pl=Polski 9 | -------------------------------------------------------------------------------- /src/main/resources/org/dpsoftware/gui/css/linux.css: -------------------------------------------------------------------------------- 1 | /* 2 | Firefly Luciferin, very fast Java Screen Capture software designed 3 | for Glow Worm Luciferin firmware. 4 | Copyright © 2020 - 2025 Davide Perini (https://github.com/sblantipodi) 5 | */ 6 | 7 | .combo-box .arrow-button { 8 | -fx-padding: 0 6 0 6; 9 | } 10 | 11 | .combo-box { 12 | -fx-pref-height: 25px; 13 | } 14 | 15 | .button { 16 | -fx-pref-height: 25px; 17 | } 18 | 19 | .text-field { 20 | -fx-pref-height: 25px; 21 | } 22 | 23 | .text { 24 | -fx-font-family: "DejaVu Sans Condensed"; 25 | -fx-font-size: 13px; 26 | } -------------------------------------------------------------------------------- /src/main/resources/org/dpsoftware/gui/css/theme-dark-blue.css: -------------------------------------------------------------------------------- 1 | /* 2 | Firefly Luciferin, very fast Java Screen Capture software designed 3 | for Glow Worm Luciferin firmware. 4 | Copyright © 2020 - 2025 Davide Perini (https://github.com/sblantipodi) 5 | */ 6 | 7 | .root { 8 | -fx-accent: #1da8ff; 9 | -fx-focus-color: -fx-accent; 10 | -fx-base: #1c2940; 11 | -fx-control-inner-background: derive(-fx-base, 35%); 12 | -fx-control-inner-background-alt: -fx-control-inner-background; 13 | } 14 | 15 | .label { 16 | -fx-text-fill: white; 17 | } 18 | 19 | .text-field { 20 | -fx-prompt-text-fill: white; 21 | } 22 | 23 | .button:hover { 24 | -fx-text-fill: white; 25 | } 26 | 27 | #hyper { 28 | -fx-text-fill: white; 29 | } 30 | 31 | .roundedBordersDialog { 32 | -fx-border-color: #172236 !important; 33 | } 34 | 35 | #rootPane { 36 | -fx-background-color: #283b5c; 37 | } 38 | 39 | .windowCloseBtn { 40 | -fx-background-color: #283b5c; 41 | } 42 | 43 | .windowMinimizeBtn { 44 | -fx-background-color: #283b5c; 45 | } 46 | 47 | .windowMinimizeBtn:hover { 48 | -fx-background-color: #385180; 49 | } -------------------------------------------------------------------------------- /src/main/resources/org/dpsoftware/gui/css/theme-dark-cyan.css: -------------------------------------------------------------------------------- 1 | /* 2 | Firefly Luciferin, very fast Java Screen Capture software designed 3 | for Glow Worm Luciferin firmware. 4 | Copyright © 2020 - 2025 Davide Perini (https://github.com/sblantipodi) 5 | */ 6 | 7 | .root { 8 | -fx-accent: #0099ff; 9 | -fx-focus-color: -fx-accent; 10 | -fx-base: #40494f; 11 | -fx-control-inner-background: derive(-fx-base, 35%); 12 | -fx-control-inner-background-alt: -fx-control-inner-background; 13 | } 14 | 15 | .roundedBordersDialog { 16 | -fx-border-color: #32393d !important; 17 | } 18 | 19 | #rootPane { 20 | -fx-background-color: #555c61; 21 | } 22 | 23 | .windowCloseBtn { 24 | -fx-background-color: #555c61; 25 | } 26 | 27 | .windowMinimizeBtn { 28 | -fx-background-color: #555c61; 29 | } 30 | 31 | .windowMinimizeBtn:hover { 32 | -fx-background-color: #878e93; 33 | } -------------------------------------------------------------------------------- /src/main/resources/org/dpsoftware/gui/css/theme-dark-orange.css: -------------------------------------------------------------------------------- 1 | /* 2 | Firefly Luciferin, very fast Java Screen Capture software designed 3 | for Glow Worm Luciferin firmware. 4 | Copyright © 2020 - 2025 Davide Perini (https://github.com/sblantipodi) 5 | */ 6 | 7 | .root { 8 | -fx-accent: orange; 9 | -fx-focus-color: -fx-accent; 10 | -fx-base: #484848; 11 | -fx-control-inner-background: derive(-fx-base, 35%); 12 | -fx-control-inner-background-alt: -fx-control-inner-background; 13 | } 14 | 15 | .roundedBordersDialog { 16 | -fx-border-color: #424242 !important; 17 | } 18 | 19 | #rootPane { 20 | -fx-background-color: #646464; 21 | } 22 | 23 | .windowCloseBtn { 24 | -fx-background-color: #646464; 25 | } 26 | 27 | .windowMinimizeBtn { 28 | -fx-background-color: #646464; 29 | } 30 | 31 | .windowMinimizeBtn:hover { 32 | -fx-background-color: #969696; 33 | } -------------------------------------------------------------------------------- /src/main/resources/org/dpsoftware/gui/css/theme-dark-purple.css: -------------------------------------------------------------------------------- 1 | /* 2 | Firefly Luciferin, very fast Java Screen Capture software designed 3 | for Glow Worm Luciferin firmware. 4 | Copyright © 2020 - 2025 Davide Perini (https://github.com/sblantipodi) 5 | */ 6 | 7 | .root { 8 | -fx-accent: #cb7eff; 9 | -fx-focus-color: -fx-accent; 10 | -fx-base: #4e4e66; 11 | -fx-control-inner-background: derive(-fx-base, 35%); 12 | -fx-control-inner-background-alt: -fx-control-inner-background; 13 | } 14 | 15 | .text-input { 16 | -fx-text-fill: white; 17 | } 18 | 19 | .check-box:selected .mark { 20 | -fx-background-color: white; 21 | } 22 | 23 | .roundedBordersDialog { 24 | -fx-border-color: #47475d !important; 25 | } 26 | 27 | #rootPane { 28 | -fx-background-color: #5d5d79; 29 | } 30 | 31 | .windowCloseBtn { 32 | -fx-background-color: #5d5d79; 33 | } 34 | 35 | .windowMinimizeBtn { 36 | -fx-background-color: #5d5d79; 37 | } 38 | 39 | .windowMinimizeBtn:hover { 40 | -fx-background-color: #385180; 41 | } -------------------------------------------------------------------------------- /src/main/resources/org/dpsoftware/gui/css/theme-dark.css: -------------------------------------------------------------------------------- 1 | /* 2 | Firefly Luciferin, very fast Java Screen Capture software designed 3 | for Glow Worm Luciferin firmware. 4 | Copyright © 2020 - 2025 Davide Perini (https://github.com/sblantipodi) 5 | */ 6 | 7 | .label { 8 | -fx-text-fill: lightgray; 9 | } 10 | 11 | .text-field { 12 | -fx-prompt-text-fill: grey; 13 | } 14 | 15 | .titulo { 16 | -fx-font-weight: bold; 17 | -fx-font-size: 18px; 18 | } 19 | 20 | .button { 21 | -fx-focus-traversable: false; 22 | } 23 | 24 | .button:hover { 25 | -fx-text-fill: lightgray; 26 | } 27 | 28 | .separator *.line { 29 | -fx-background-color: #3C3C3C; 30 | -fx-border-style: solid; 31 | -fx-border-width: 1px; 32 | } 33 | 34 | .scroll-bar { 35 | -fx-background-color: derive(-fx-base, 45%) 36 | } 37 | 38 | .button:default { 39 | -fx-base: -fx-accent; 40 | } 41 | 42 | .dialoglabel { 43 | -fx-text-fill: lightgray !important; 44 | -fx-font-weight: bold; 45 | } 46 | 47 | .table-view { 48 | /*-fx-background-color: derive(-fx-base, 10%);*/ 49 | -fx-selection-bar-non-focused: derive(-fx-base, 50%); 50 | } 51 | 52 | .table-view .column-header .label { 53 | -fx-alignment: CENTER_LEFT; 54 | -fx-font-weight: none; 55 | } 56 | 57 | .list-cell:even, 58 | .list-cell:odd, 59 | .table-row-cell:even { 60 | -fx-control-inner-background: derive(-fx-base, 15%); 61 | } 62 | 63 | .table-row-cell:odd { 64 | -fx-control-inner-background: derive(-fx-base, 35%); 65 | } 66 | 67 | #hyper { 68 | -fx-text-fill: lightgray; 69 | } 70 | 71 | .hyperlink { 72 | -fx-text-fill: lightgray !important; 73 | } -------------------------------------------------------------------------------- /src/main/resources/org/dpsoftware/gui/css/webview.css: -------------------------------------------------------------------------------- 1 | body { 2 | font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", 3 | Roboto, Ubuntu, sans-serif; 4 | padding: 0; 5 | margin: 0; 6 | line-height: 1.4; 7 | background-color: #f8f8f8 !important; 8 | color: #212529 !important; 9 | } 10 | 11 | .footer { 12 | display: none; 13 | } 14 | 15 | .px-3 { 16 | padding-right: 30px !important; 17 | padding-left: 10px !important; 18 | } 19 | 20 | .my-5 { 21 | margin-top: 10px !important; 22 | margin-bottom: 10px !important; 23 | } 24 | 25 | strong { 26 | font-weight: bold; 27 | } 28 | 29 | a { 30 | color: #e19a00; 31 | } 32 | 33 | .highlighter-rouge { 34 | background-color: #ececec; 35 | padding: 0 5px 0 5px; 36 | border-radius: 5px; 37 | font-weight: bold; 38 | font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, Ubuntu, sans-serif; 39 | } -------------------------------------------------------------------------------- /src/main/resources/org/dpsoftware/gui/img/luciferin_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/src/main/resources/org/dpsoftware/gui/img/luciferin_logo.png -------------------------------------------------------------------------------- /src/main/resources/org/dpsoftware/gui/img/luciferin_logo_center.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/src/main/resources/org/dpsoftware/gui/img/luciferin_logo_center.png -------------------------------------------------------------------------------- /src/main/resources/org/dpsoftware/gui/img/luciferin_logo_center_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/src/main/resources/org/dpsoftware/gui/img/luciferin_logo_center_off.png -------------------------------------------------------------------------------- /src/main/resources/org/dpsoftware/gui/img/luciferin_logo_grey.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/src/main/resources/org/dpsoftware/gui/img/luciferin_logo_grey.png -------------------------------------------------------------------------------- /src/main/resources/org/dpsoftware/gui/img/luciferin_logo_grey_center.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/src/main/resources/org/dpsoftware/gui/img/luciferin_logo_grey_center.png -------------------------------------------------------------------------------- /src/main/resources/org/dpsoftware/gui/img/luciferin_logo_grey_left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/src/main/resources/org/dpsoftware/gui/img/luciferin_logo_grey_left.png -------------------------------------------------------------------------------- /src/main/resources/org/dpsoftware/gui/img/luciferin_logo_grey_right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/src/main/resources/org/dpsoftware/gui/img/luciferin_logo_grey_right.png -------------------------------------------------------------------------------- /src/main/resources/org/dpsoftware/gui/img/luciferin_logo_grey_right_gold.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/src/main/resources/org/dpsoftware/gui/img/luciferin_logo_grey_right_gold.png -------------------------------------------------------------------------------- /src/main/resources/org/dpsoftware/gui/img/luciferin_logo_left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/src/main/resources/org/dpsoftware/gui/img/luciferin_logo_left.png -------------------------------------------------------------------------------- /src/main/resources/org/dpsoftware/gui/img/luciferin_logo_left_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/src/main/resources/org/dpsoftware/gui/img/luciferin_logo_left_off.png -------------------------------------------------------------------------------- /src/main/resources/org/dpsoftware/gui/img/luciferin_logo_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/src/main/resources/org/dpsoftware/gui/img/luciferin_logo_off.png -------------------------------------------------------------------------------- /src/main/resources/org/dpsoftware/gui/img/luciferin_logo_play.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/src/main/resources/org/dpsoftware/gui/img/luciferin_logo_play.png -------------------------------------------------------------------------------- /src/main/resources/org/dpsoftware/gui/img/luciferin_logo_play_center.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/src/main/resources/org/dpsoftware/gui/img/luciferin_logo_play_center.png -------------------------------------------------------------------------------- /src/main/resources/org/dpsoftware/gui/img/luciferin_logo_play_left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/src/main/resources/org/dpsoftware/gui/img/luciferin_logo_play_left.png -------------------------------------------------------------------------------- /src/main/resources/org/dpsoftware/gui/img/luciferin_logo_play_right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/src/main/resources/org/dpsoftware/gui/img/luciferin_logo_play_right.png -------------------------------------------------------------------------------- /src/main/resources/org/dpsoftware/gui/img/luciferin_logo_play_right_gold.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/src/main/resources/org/dpsoftware/gui/img/luciferin_logo_play_right_gold.png -------------------------------------------------------------------------------- /src/main/resources/org/dpsoftware/gui/img/luciferin_logo_play_waiting.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/src/main/resources/org/dpsoftware/gui/img/luciferin_logo_play_waiting.png -------------------------------------------------------------------------------- /src/main/resources/org/dpsoftware/gui/img/luciferin_logo_play_waiting_center.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/src/main/resources/org/dpsoftware/gui/img/luciferin_logo_play_waiting_center.png -------------------------------------------------------------------------------- /src/main/resources/org/dpsoftware/gui/img/luciferin_logo_play_waiting_left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/src/main/resources/org/dpsoftware/gui/img/luciferin_logo_play_waiting_left.png -------------------------------------------------------------------------------- /src/main/resources/org/dpsoftware/gui/img/luciferin_logo_play_waiting_right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/src/main/resources/org/dpsoftware/gui/img/luciferin_logo_play_waiting_right.png -------------------------------------------------------------------------------- /src/main/resources/org/dpsoftware/gui/img/luciferin_logo_play_waiting_right_gold.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/src/main/resources/org/dpsoftware/gui/img/luciferin_logo_play_waiting_right_gold.png -------------------------------------------------------------------------------- /src/main/resources/org/dpsoftware/gui/img/luciferin_logo_right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/src/main/resources/org/dpsoftware/gui/img/luciferin_logo_right.png -------------------------------------------------------------------------------- /src/main/resources/org/dpsoftware/gui/img/luciferin_logo_right_gold.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/src/main/resources/org/dpsoftware/gui/img/luciferin_logo_right_gold.png -------------------------------------------------------------------------------- /src/main/resources/org/dpsoftware/gui/img/luciferin_logo_right_gold_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/src/main/resources/org/dpsoftware/gui/img/luciferin_logo_right_gold_off.png -------------------------------------------------------------------------------- /src/main/resources/org/dpsoftware/gui/img/luciferin_logo_right_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/src/main/resources/org/dpsoftware/gui/img/luciferin_logo_right_off.png -------------------------------------------------------------------------------- /src/main/resources/org/dpsoftware/gui/img/update/luciferin_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/src/main/resources/org/dpsoftware/gui/img/update/luciferin_logo.png -------------------------------------------------------------------------------- /src/main/resources/org/dpsoftware/gui/img/update/luciferin_logo_center.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/src/main/resources/org/dpsoftware/gui/img/update/luciferin_logo_center.png -------------------------------------------------------------------------------- /src/main/resources/org/dpsoftware/gui/img/update/luciferin_logo_center_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/src/main/resources/org/dpsoftware/gui/img/update/luciferin_logo_center_off.png -------------------------------------------------------------------------------- /src/main/resources/org/dpsoftware/gui/img/update/luciferin_logo_grey.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/src/main/resources/org/dpsoftware/gui/img/update/luciferin_logo_grey.png -------------------------------------------------------------------------------- /src/main/resources/org/dpsoftware/gui/img/update/luciferin_logo_grey_center.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/src/main/resources/org/dpsoftware/gui/img/update/luciferin_logo_grey_center.png -------------------------------------------------------------------------------- /src/main/resources/org/dpsoftware/gui/img/update/luciferin_logo_grey_left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/src/main/resources/org/dpsoftware/gui/img/update/luciferin_logo_grey_left.png -------------------------------------------------------------------------------- /src/main/resources/org/dpsoftware/gui/img/update/luciferin_logo_grey_right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/src/main/resources/org/dpsoftware/gui/img/update/luciferin_logo_grey_right.png -------------------------------------------------------------------------------- /src/main/resources/org/dpsoftware/gui/img/update/luciferin_logo_grey_right_gold.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/src/main/resources/org/dpsoftware/gui/img/update/luciferin_logo_grey_right_gold.png -------------------------------------------------------------------------------- /src/main/resources/org/dpsoftware/gui/img/update/luciferin_logo_left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/src/main/resources/org/dpsoftware/gui/img/update/luciferin_logo_left.png -------------------------------------------------------------------------------- /src/main/resources/org/dpsoftware/gui/img/update/luciferin_logo_left_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/src/main/resources/org/dpsoftware/gui/img/update/luciferin_logo_left_off.png -------------------------------------------------------------------------------- /src/main/resources/org/dpsoftware/gui/img/update/luciferin_logo_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/src/main/resources/org/dpsoftware/gui/img/update/luciferin_logo_off.png -------------------------------------------------------------------------------- /src/main/resources/org/dpsoftware/gui/img/update/luciferin_logo_play.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/src/main/resources/org/dpsoftware/gui/img/update/luciferin_logo_play.png -------------------------------------------------------------------------------- /src/main/resources/org/dpsoftware/gui/img/update/luciferin_logo_play_center.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/src/main/resources/org/dpsoftware/gui/img/update/luciferin_logo_play_center.png -------------------------------------------------------------------------------- /src/main/resources/org/dpsoftware/gui/img/update/luciferin_logo_play_left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/src/main/resources/org/dpsoftware/gui/img/update/luciferin_logo_play_left.png -------------------------------------------------------------------------------- /src/main/resources/org/dpsoftware/gui/img/update/luciferin_logo_play_right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/src/main/resources/org/dpsoftware/gui/img/update/luciferin_logo_play_right.png -------------------------------------------------------------------------------- /src/main/resources/org/dpsoftware/gui/img/update/luciferin_logo_play_right_gold.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/src/main/resources/org/dpsoftware/gui/img/update/luciferin_logo_play_right_gold.png -------------------------------------------------------------------------------- /src/main/resources/org/dpsoftware/gui/img/update/luciferin_logo_play_waiting.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/src/main/resources/org/dpsoftware/gui/img/update/luciferin_logo_play_waiting.png -------------------------------------------------------------------------------- /src/main/resources/org/dpsoftware/gui/img/update/luciferin_logo_play_waiting_center.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/src/main/resources/org/dpsoftware/gui/img/update/luciferin_logo_play_waiting_center.png -------------------------------------------------------------------------------- /src/main/resources/org/dpsoftware/gui/img/update/luciferin_logo_play_waiting_left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/src/main/resources/org/dpsoftware/gui/img/update/luciferin_logo_play_waiting_left.png -------------------------------------------------------------------------------- /src/main/resources/org/dpsoftware/gui/img/update/luciferin_logo_play_waiting_right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/src/main/resources/org/dpsoftware/gui/img/update/luciferin_logo_play_waiting_right.png -------------------------------------------------------------------------------- /src/main/resources/org/dpsoftware/gui/img/update/luciferin_logo_play_waiting_right_gold.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/src/main/resources/org/dpsoftware/gui/img/update/luciferin_logo_play_waiting_right_gold.png -------------------------------------------------------------------------------- /src/main/resources/org/dpsoftware/gui/img/update/luciferin_logo_right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/src/main/resources/org/dpsoftware/gui/img/update/luciferin_logo_right.png -------------------------------------------------------------------------------- /src/main/resources/org/dpsoftware/gui/img/update/luciferin_logo_right_gold.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/src/main/resources/org/dpsoftware/gui/img/update/luciferin_logo_right_gold.png -------------------------------------------------------------------------------- /src/main/resources/org/dpsoftware/gui/img/update/luciferin_logo_right_gold_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/src/main/resources/org/dpsoftware/gui/img/update/luciferin_logo_right_gold_off.png -------------------------------------------------------------------------------- /src/main/resources/org/dpsoftware/gui/img/update/luciferin_logo_right_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sblantipodi/firefly_luciferin/d7f0b26709f5a74e8a59af37462b5fd1ae8b2346/src/main/resources/org/dpsoftware/gui/img/update/luciferin_logo_right_off.png -------------------------------------------------------------------------------- /src/main/resources/org/dpsoftware/gui/info.fxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 15 | 17 | 18 | 19 | 20 | 21 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 35 | 40 | 41 | 42 | 43 | 44 | 45 | 50 | 55 | 60 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | -------------------------------------------------------------------------------- /src/main/resources/org/dpsoftware/gui/settings.fxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 10 | 11 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /src/main/resources/org/dpsoftware/gui/smoothingDialog.fxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 9 | 10 | 11 | 12 | 13 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 55 | 56 | -------------------------------------------------------------------------------- /src/main/resources/project.properties: -------------------------------------------------------------------------------- 1 | version=${project.version} 2 | minimum.firmware.version=5.21.3 3 | # This feature is not exposed to end users. Used for testing purpose only. Set false before the release. 4 | gw.alpha.download=false 5 | --------------------------------------------------------------------------------