├── .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 |
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 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
38 |
39 |
40 |
46 |
47 |
48 |
49 |
50 |
51 |
53 |
54 |
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 |
--------------------------------------------------------------------------------