1.0.0 • Published 6 months ago

windows-audio-volume-scheduler v1.0.0

Weekly downloads
-
License
Apache-2.0
Repository
github
Last release
6 months ago

windows-audio-volume-scheduler

Apache 2.0 License node.js 16+ Latest Release

Automatically adjust Windows system audio level based on a configurable schedule.

Run these steps first (end user):

  1. One of the packages, "ffi-napi", uses native modules and relies on "node-gyp" to build the project if needed, depending on whether a prebuilt binary exists or not. As a result, there may be some prerequisites that are needed to be installed/configured. The recommendation is to try to install this package first, and if it ends up building the native binary on the fly and node-gyp complains about something, then refer to node-gyp's instructions to have those prerequisites installed.

  2. Edit src/settings.json.

    • service defines service parameters when installed as Windows service:
      • name is the service name to be used.
      • account info is optional. If provided, the service will be running as the specified account. These properties can be provided:
        • name is account's name
        • password is account's password
        • domain is optional, and should be provided if the account is a domain account
     "service": {
         "name": "Audio Volume Scheduler",
         "account": {
             "name": "{account name}",
             "password": "{account password}",
             "domain": "{account domain}"
         }
     },
    • schedule lists trigger time and desired audio value level (between 0 and 100). Currently schedule runs daily.
    • showNotification allows showing Windows notification when it succeeds or fails to adjust audio volume.

      Note, this only works when running in standalone mode instead of as a Windows service.

  3. Run "npm install". Accept UAC prompts if any (there could be up to 4). "npm link" can be used as well, which will create a command "showip" that can be used as a shortcut to "src/show-interfaces.js".

    Note, this step installs the script as a Windows service. If it's not desired, run "npm run uninstall" afterwards.

For developers:

The native DLL and optionally the test executable can be built by one of the following methods:

  • To build the project in Visual Studio 2022, just open the solution file in VS2022 and build.
  • For those who use Visual Studio Code, a .vscode folder is provided at top level, with tasks defined and the default build task uses MSBuild to generate the Release|x64 output. Note, you need to download and install Build Tools for Visual Studio 2022 from this page. Make sure to include Desktop development with C++ workload during installation.

    Launch VSCode from Developer Command Prompt for VS 2022 by running "code ." from src directory, so that environment needed by MSBuild is set up properly.

  • The third option is cmake. A CMakeLists.txt file is provided in src directory. It is recommended to use a separate build directory at top level. For example, "cmake -B build" creates a build directory at top level and prepares the build environment, then, "cmake --build build --config Release" builds the project in release mode.

To run the script manually:

Run "npm start" or "node src/app.js".

To install and run the script as a Windows service:

Run "npm run install" or "node src/install-service.js". Accept UAC prompts if any (there could be up to 4).

Note, if settings.json is updated when service is running, restart it in Windows Services control panel.

To uninstall the Windows service:

Run "npm run uninstall" or "node src/uninstall-service.js". Accept UAC prompts if any (there could be up to 4).