diff --git a/CMakeLists.txt b/CMakeLists.txt index c4e8199..04d1f68 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -6,11 +6,14 @@ set(CXX_STANDARD 17) find_package(PkgConfig REQUIRED) pkg_check_modules(PIPEWIRE REQUIRED libpipewire-0.3) +if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) + set(CMAKE_INSTALL_PREFIX "/usr" CACHE PATH "..." FORCE) +endif() + add_executable(${PROJECT_NAME} main.cpp log.cpp Socket.cpp) add_dependencies(${PROJECT_NAME} ${PROJECT_NAME}) target_link_libraries(${PROJECT_NAME} ${PIPEWIRE_LIBRARIES}) target_include_directories(${PROJECT_NAME} PUBLIC ${PIPEWIRE_INCLUDE_DIRS}) set_target_properties(${PROJECT_NAME} PROPERTIES COMPILE_FLAGS "-Wall -O2 -march=x86-64-v2 -g" LINK_FLAGS "-flto") install(TARGETS ${PROJECT_NAME} DESTINATION bin) - - +install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/pipewireaudiowatcher@.service DESTINATION /lib/systemd/user) diff --git a/main.cpp b/main.cpp index 1a2a0b5..70f49f7 100644 --- a/main.cpp +++ b/main.cpp @@ -199,7 +199,7 @@ static void node_event_info(void* data, const struct pw_node_info *info) static const struct pw_stream_events stream_events = { - PW_VERSION_STREAM_EVENTS, + .version = PW_VERSION_STREAM_EVENTS, .param_changed = on_stream_param_changed, .process = on_process, }; diff --git a/pipewireaudiowatcher@.service b/pipewireaudiowatcher@.service new file mode 100644 index 0000000..ee7b61c --- /dev/null +++ b/pipewireaudiowatcher@.service @@ -0,0 +1,13 @@ +[Unit] +After=network.target sound.target + +[Service] +Type=simple +ExecStart=/usr/bin/stdbuf -oL /usr/bin/pipewirestreamwatcher -n %i +ExitType=main +StandardOutput=journal +StandardError=journal +Restart=always + +[Install] +WantedBy=default.target