├── .gitignore ├── LICENSE ├── README.md ├── dicaffeine-theme ├── DEBIAN │ ├── control │ ├── md5sums │ ├── postinst │ ├── postrm │ └── prerm └── usr │ └── share │ └── plymouth │ └── themes │ └── dicaffeine │ ├── background.png │ ├── dicaffeine.plymouth │ ├── dicaffeine.script │ └── logo.png └── packages └── dicaffeine-theme-0.0.1.deb /.gitignore: -------------------------------------------------------------------------------- 1 | # Prerequisites 2 | *.d 3 | 4 | # Compiled Object files 5 | *.slo 6 | *.lo 7 | *.o 8 | *.obj 9 | 10 | # Precompiled Headers 11 | *.gch 12 | *.pch 13 | 14 | # Compiled Dynamic libraries 15 | *.so 16 | *.dylib 17 | *.dll 18 | 19 | # Fortran module files 20 | *.mod 21 | *.smod 22 | 23 | # Compiled Static libraries 24 | *.lai 25 | *.la 26 | *.a 27 | *.lib 28 | 29 | # Executables 30 | *.exe 31 | *.out 32 | *.app 33 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2021 Jiri Melnikov 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Dicaffeine 2 | 3 | ## Official pages: 4 | https://dicaffeine.com 5 | 6 | Please use this repository for reporting any issues. 7 | 8 | ## Opensource parts: 9 | 10 | - libyuri fork 11 | - already includes NDI/RTMP/pulse audio support 12 | - latest updates in the dicaffeine branch 13 | - enough to run fully working NDI player/streamer 14 | - [https://github.com/melnijir/libyuri](https://github.com/melnijir/libyuri/tree/dicaffeine) 15 | 16 | ## Closedsource parts: 17 | 18 | - Dicaffeine 19 | - HTTP server for GUI 20 | - service for automatically starting/stopping the streams, generating the yuri2 configuration files, etc. 21 | 22 | ## Guide: 23 | 24 | Some basic commands can be found on [Dicaffeine Guide](https://dicaffeine.com/guide) page. 25 | -------------------------------------------------------------------------------- /dicaffeine-theme/DEBIAN/control: -------------------------------------------------------------------------------- 1 | Package: dicaffeine-theme 2 | Version: 0.0.1 3 | Architecture: amd64 4 | Maintainer: Jiri Melnikov 5 | Depends: plymouth, libc6, libplymouth5 6 | Section: misc 7 | Priority: optional 8 | Homepage: https://dicaffeine.com 9 | Description: Boot theme for Dicaffeine player 10 | -------------------------------------------------------------------------------- /dicaffeine-theme/DEBIAN/md5sums: -------------------------------------------------------------------------------- 1 | 278a26e272cfcc30aa39cdea7432f5ff usr/share/plymouth/themes/dicaffeine/background.png 2 | 3bbee8c76c1c95d259a37635fa7275b1 usr/share/plymouth/themes/dicaffeine/dicaffeine.script 3 | ce066a83f2cd7ff30b060f699034eb87 usr/share/plymouth/themes/dicaffeine/dicaffeine.plymouth 4 | 2fb3d53d8969caac91048c4f38349d3d usr/share/plymouth/themes/dicaffeine/logo.png 5 | -------------------------------------------------------------------------------- /dicaffeine-theme/DEBIAN/postinst: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | set -e 4 | 5 | case "${1}" in 6 | configure) 7 | # Add default alternatives so that if we don't have any ubuntu themes install, we still show up one 8 | update-alternatives \ 9 | --install /usr/share/plymouth/themes/default.plymouth default.plymouth \ 10 | /usr/share/plymouth/themes/dicaffeine/dicaffeine.plymouth 70 11 | update-alternatives \ 12 | --config default.plymouth 13 | 14 | if which update-initramfs >/dev/null 2>&1; then 15 | update-initramfs -u 16 | fi 17 | ;; 18 | 19 | abort-upgrade|abort-remove|abort-deconfigure) 20 | 21 | ;; 22 | 23 | *) 24 | echo "postinst called with unknown argument \`${1}'" >&2 25 | exit 1 26 | ;; 27 | esac 28 | 29 | 30 | 31 | exit 0 32 | -------------------------------------------------------------------------------- /dicaffeine-theme/DEBIAN/postrm: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | set -e 4 | 5 | case "${1}" in 6 | remove) 7 | if which update-initramfs >/dev/null 2>&1; then 8 | update-initramfs -u 9 | fi 10 | ;; 11 | 12 | purge|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear) 13 | 14 | ;; 15 | 16 | *) 17 | echo "postrm called with unknown argument \`${1}'" >&2 18 | exit 1 19 | ;; 20 | esac 21 | 22 | 23 | 24 | exit 0 25 | -------------------------------------------------------------------------------- /dicaffeine-theme/DEBIAN/prerm: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | set -e 4 | 5 | if [ "x$1" = xremove ]; then 6 | update-alternatives \ 7 | --remove default.plymouth /usr/share/plymouth/themes/dicaffeine/dicaffeine.plymouth 8 | fi 9 | 10 | 11 | -------------------------------------------------------------------------------- /dicaffeine-theme/usr/share/plymouth/themes/dicaffeine/background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/melnijir/Dicaffeine/f0dacb50acf98892d62bb9110ef8841fa7fe4ec8/dicaffeine-theme/usr/share/plymouth/themes/dicaffeine/background.png -------------------------------------------------------------------------------- /dicaffeine-theme/usr/share/plymouth/themes/dicaffeine/dicaffeine.plymouth: -------------------------------------------------------------------------------- 1 | [Plymouth Theme] 2 | Name=Dicaffeine 3 | Description=A theme for the Dicaffeine player 4 | ModuleName=script 5 | 6 | [script] 7 | ImageDir=/usr/share/plymouth/themes/dicaffeine 8 | ScriptFile=/usr/share/plymouth/themes/dicaffeine/dicaffeine.script 9 | -------------------------------------------------------------------------------- /dicaffeine-theme/usr/share/plymouth/themes/dicaffeine/dicaffeine.script: -------------------------------------------------------------------------------- 1 | /************************************************************************** 2 | * 3 | * Dicaffeine logo theme 4 | * 5 | * Written by: Jiri Melnikov 6 | * 7 | **************************************************************************/ 8 | 9 | screen_width = Window.GetWidth(); 10 | screen_height = Window.GetHeight(); 11 | screen_x = Window.GetX(); 12 | screen_y = Window.GetY(); 13 | 14 | background_image = Image("background.png"); 15 | logo_image = Image("logo.png"); 16 | 17 | 18 | /* Background sprite */ 19 | 20 | screen_ratio = screen_height / screen_width; 21 | background_ratio = background_image.GetHeight() / background_image.GetWidth(); 22 | factor = 0; 23 | if (screen_ratio > background_ratio) { 24 | factor = screen_height / background_image.GetHeight(); 25 | } else { 26 | factor = screen_width / background_image.GetWidth(); 27 | } 28 | scaled = background_image.Scale(background_image.GetWidth() * factor, background_image.GetHeight() * factor); 29 | background_sprite = Sprite(scaled); 30 | background_sprite.SetX(screen_x + screen_width / 2 - scaled.GetWidth() / 2); 31 | background_sprite.SetY(screen_y + screen_height / 2 - scaled.GetHeight() / 2); 32 | 33 | 34 | /* Logo sprite */ 35 | 36 | pos_x = screen_width/2 - logo_image.GetWidth()/2; 37 | pos_y = screen_height/2 - logo_image.GetHeight()/2; 38 | 39 | logo_sprite = Sprite(logo_image); 40 | logo_sprite.SetX(pos_x); 41 | logo_sprite.SetY(pos_y); 42 | 43 | /* Set visibilty */ 44 | background_sprite.SetOpacity(1); 45 | background_sprite.SetZ(10); 46 | logo_sprite.SetOpacity(1); 47 | logo_sprite.SetZ(20); 48 | 49 | fun refresh_callback () { 50 | /* Nothing to see here */ 51 | } 52 | 53 | Plymouth.SetRefreshFunction(refresh_callback); 54 | -------------------------------------------------------------------------------- /dicaffeine-theme/usr/share/plymouth/themes/dicaffeine/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/melnijir/Dicaffeine/f0dacb50acf98892d62bb9110ef8841fa7fe4ec8/dicaffeine-theme/usr/share/plymouth/themes/dicaffeine/logo.png -------------------------------------------------------------------------------- /packages/dicaffeine-theme-0.0.1.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/melnijir/Dicaffeine/f0dacb50acf98892d62bb9110ef8841fa7fe4ec8/packages/dicaffeine-theme-0.0.1.deb --------------------------------------------------------------------------------