From 5f17cc2464767cc771faf0e49567cfcbdc6e0864 Mon Sep 17 00:00:00 2001 From: Conor Begley Date: Mon, 12 Apr 2021 17:12:12 +0100 Subject: [PATCH] Added amd64 deb package --- Examples/PosturePerfection/CMakeLists.txt | 6 +- .../PosturePerfectionLocalReceiver | Bin 0 -> 29848 bytes ...PosturePerfection_receiver_deb_version.cpp | 31 ++++++ .../PosturePerfectionReceiver_1.0_amd64.deb | Bin 0 -> 18964 bytes .../DEBIAN/control | 5 + .../usr/local/include/RemoteNotifyReceive.h | 96 ++++++++++++++++++ .../posture-logo-no-text.png | Bin 0 -> 8623 bytes 7 files changed, 136 insertions(+), 2 deletions(-) create mode 100755 Examples/PosturePerfection/PosturePerfectionLocalReceiver create mode 100644 Examples/PosturePerfection/PosturePerfection_receiver_deb_version.cpp create mode 100644 Examples/PosturePerfection/debPackage/PosturePerfectionReceiver_1.0_amd64.deb create mode 100644 Examples/PosturePerfection/debPackage/PosturePerfectionReceiver_1.0_amd64/DEBIAN/control create mode 100644 Examples/PosturePerfection/debPackage/PosturePerfectionReceiver_1.0_amd64/usr/local/include/RemoteNotifyReceive.h create mode 100644 Examples/PosturePerfection/debPackage/PosturePerfectionReceiver_1.0_amd64/usr/local/share/PosturePerfection/posture-logo-no-text.png diff --git a/Examples/PosturePerfection/CMakeLists.txt b/Examples/PosturePerfection/CMakeLists.txt index 586de9f..e9dea1d 100644 --- a/Examples/PosturePerfection/CMakeLists.txt +++ b/Examples/PosturePerfection/CMakeLists.txt @@ -3,11 +3,13 @@ cmake_minimum_required(VERSION 3.10) project(Posture{erfectionNotification) # add the executable -add_executable(PosturePerfectionReceiver PosturePerfection_receiver.cpp) +add_executable(PosturePerfectionLocalReceiver PosturePerfection_receiver.cpp) add_executable(PosturePerfectionTestBroadcast PosturePerfection_test_broadcast.cpp) +add_executable(PosturePerfectionReceiver PosturePerfection_receiver_deb_version.cpp) -target_link_libraries(PosturePerfectionReceiver RemoteNotifyReceive) +target_link_libraries(PosturePerfectionLocalReceiver RemoteNotifyReceive) target_link_libraries(PosturePerfectionTestBroadcast RemoteNotifyBroadcast) +target_link_libraries(PosturePerfectionReceiver RemoteNotifyReceive) set(CMAKE_CXX_STANDARD 11) install(TARGETS PosturePerfectionReceiver diff --git a/Examples/PosturePerfection/PosturePerfectionLocalReceiver b/Examples/PosturePerfection/PosturePerfectionLocalReceiver new file mode 100755 index 0000000000000000000000000000000000000000..7704dfb7a664d466dc65642dcdd7dd4e9a007a0d GIT binary patch literal 29848 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 literal 0 HcmV?d00001 diff --git a/Examples/PosturePerfection/PosturePerfection_receiver_deb_version.cpp b/Examples/PosturePerfection/PosturePerfection_receiver_deb_version.cpp new file mode 100644 index 0000000..a5e7a46 --- /dev/null +++ b/Examples/PosturePerfection/PosturePerfection_receiver_deb_version.cpp @@ -0,0 +1,31 @@ +/** + * @file PosturePerfection_receiver.cpp + * @brief Program for running a notification receiver + * + * @copyright Copyright (C) 2021 Conor Begley + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ +#include +int main(int argc, char *argv[]) { + char current_d[1024]; + getcwd(current_d, sizeof(current_d)); + std::string image = "/usr/local/share/PosturePerfection/posture-logo-no-text.png" ; + RemoteNotify::Receive receiver(121121, true, "Posture Perfection", image); + while (1) { + receiver.run(); + } + return 1; +} diff --git a/Examples/PosturePerfection/debPackage/PosturePerfectionReceiver_1.0_amd64.deb b/Examples/PosturePerfection/debPackage/PosturePerfectionReceiver_1.0_amd64.deb new file mode 100644 index 0000000000000000000000000000000000000000..dc307b946c00181a4e31eac1cfa4e2289e5b2057 GIT binary patch literal 18964 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. + * + */ + +#ifndef REMOTENOTIFYRECEIVE_H_ +#define REMOTENOTIFYRECEIVE_H_ + +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +namespace RemoteNotify { +/** + * @brief Error handler for socket connections + * + * @param num The result of socket function + * @param msg Message to be printed also default error message + */ +int err_msg(int num, std::string msg); + +/** + * @brief Return result from system command as a string + * @param cmd The system command + */ +std::string GetStringFromCommand(std::string cmd); + +/** + * @brief A `RemoteNotify::Receive` for listening and receiving notifications + * from `RemoteNotify::Broadcast` + * + */ +class Receive { + private: + int receive_fd; ///< Receive socket file descriptor + struct sockaddr_in address, ///< Receive address + Broadcast_address; ///< Specific address details for received messages + int addr_len = sizeof(address); ///< Length of address structure + int Broadcast_len = + sizeof(Broadcast_address); ///< Length of Broadcast address structure + std::string command = "notify-send -t 0"; ///< Notify-send command + ///< and flags + std::string title; ///< Title of Notify Send message + std::string image; ///< Absolute path of image + std::string middle = "--icon"; + char quote = '"'; + char space = ' '; + + public: + char buffer[1024]; ///< Returned result from broadcasted message + /** + * @brief Constructor for `RemoteNotify::Receive` + * + * @param port Port number to listen on (default is 121121) + * @param ignore Boolean to ignore location where Notify::NotifyReceive is + * running + * @param check_env If `true` will check current desktop environment and + * change notify-send command if needed + */ + Receive(int port = 121121, bool check_env = true, + std::string title = "Remote Notify Send Receive", + std::string image = ""); + ~Receive(); + + /** + * @brief Sets the `Notify::NotifyReceive` to start listening + */ + void run(); +}; +} // namespace RemoteNotify +#endif // SRC_NOTIFICATIONS_Receive_H_ diff --git a/Examples/PosturePerfection/debPackage/PosturePerfectionReceiver_1.0_amd64/usr/local/share/PosturePerfection/posture-logo-no-text.png b/Examples/PosturePerfection/debPackage/PosturePerfectionReceiver_1.0_amd64/usr/local/share/PosturePerfection/posture-logo-no-text.png new file mode 100644 index 0000000000000000000000000000000000000000..8157c104a6c463d7b2d916c81197354061d77217 GIT binary patch literal 8623 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 MCr_0t6)nR556PcC?*IS* literal 0 HcmV?d00001