handruin / spdif-ka Goto Github PK
View Code? Open in Web Editor NEWSPDIF Keep Alive utility
License: MIT License
SPDIF Keep Alive utility
License: MIT License
There seems to be a problem with F-Secure (branded by my ISP). The DeepGuard detection marks the executable as suspected. Probably because its appearance on the web is very limited now.
Here's a screenshot (in Dutch):
The same happens with Windows SmartScreen.
I trusted the app, since I cannot find any problems in its source. :) And I think that this problem with fade away when more people start using the app. Or when Microsoft and F-Secure have scanned the executable themselves.
Every time I start my machine, I'm getting the following two errors in Windows Events, always together (after one another):
Event 1026
Application: SPDIFKA.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: System.Xml.XmlException
at System.Xml.XmlTextReaderImpl.Throw(System.Exception)
at System.Xml.XmlTextReaderImpl.ParseDocumentContent()
at System.Configuration.XmlUtil..ctor(System.IO.Stream, System.String, Boolean, System.Configuration.ConfigurationSchemaErrors)
at System.Configuration.BaseConfigurationRecord.InitConfigFromFile()
Exception Info: System.Configuration.ConfigurationErrorsException
at System.Configuration.ConfigurationSchemaErrors.ThrowIfErrors(Boolean)
at System.Configuration.BaseConfigurationRecord.ThrowIfParseErrors(System.Configuration.ConfigurationSchemaErrors)
at System.Configuration.ClientConfigurationSystem.OnConfigRemoved(System.Object, System.Configuration.Internal.InternalConfigEventArgs)
Exception Info: System.Configuration.ConfigurationErrorsException
at System.Configuration.ConfigurationManager.PrepareConfigSystem()
at System.Configuration.ConfigurationManager.get_AppSettings()
at System.Windows.Forms.DpiHelper.Initialize()
Exception Info: System.TypeInitializationException
at SPDIFKA.SPDIFKAGUI..ctor()
at SPDIFKA.SPDIFKA.Main()
and Event 1000 (100)
Faulting application name: SPDIFKA.exe, version: 1.4.0.0, time stamp: 0x58ca0a39
Faulting module name: KERNELBASE.dll, version: 6.1.7601.24150, time stamp: 0x5b0cbc65
Exception code: 0xe0434352
Fault offset: 0x000000000001a06d
Faulting process id: 0x1214
Faulting application start time: 0x01d417136f03ace5
Faulting application path: C:\Program Files (x86)\SPDIFKA\SPDIFKA.exe
Faulting module path: C:\Windows\system32\KERNELBASE.dll
Report Id: ad787c5c-8306-11e8-a49f-c8600017ee38
The SPDIF-KA seems to be running though after that, but I wonder why this is happening and if I should be concerned about it. Of course, it's not nice that it's filling my Events log, but ... I can live with that if it doesn't indicate some malfunction. Please advise.
Feature idea: remember the window position between sessions.
Every time this utility is minimized it shows the help bubble. This is only useful the first time and should not show it every time the utility is minimized. Add ability to track the first time the utility is minimized into the task bar and only show popup help the first time and no time after.
The notification area icon in v1.4.0 is still initialized with the old icon and this is visible when starting the application in a "stopped" state.
It seems the media playing does not resume when the computer wakes up from sleep (even if it shows "running"). Can you reproduce?
Creative X4 by default have a 3 full seconds of silence before it starts playing any sound source.
Wanted to trash the goddamn thing.
This utility is a life saver!
Separating this item to track based on feedback from @Eldaw in issue #9.
It might be nice to have 2 new options: 'Minimize to notification area' (which is already built-in and active by default) and 'Minimize to notification area on Close'.
Just to further clarify point C:
[ ] Minimize to notification area:
If it is checked, when the application window is minimized it will only be visible as an icon in the notification area. There will be nothing visible on the taskbar.
If it is unchecked, when the application window is minimized it will be visible on the taskbar just like other minimized windows, as well as visible as an icon in the notification area.
[ ] Minimize to notification area on Close:
If it is checked, then when you hit the 'X' close button, the application remains running, and is visible as an icon in the notification area. There will be nothing visible on the taskbar. To exit the application, you have to use the context menu of the notification area icon. This is an option I like to enable on applications I want running in the background all the time, as it prevents me exiting the application by mistake.
If it is unchecked, then when you hit the 'X' close button the application quits.
New enhancement request identified by @mayerwin regarding a feature that will allow the user to have this application start at Windows Logon. This idea and feature was discussed in the later part of issue #14. Tentative solution is to add a new checkbox under the settings that will create a shortcut under the StartUp folder on a user's system.
Windows seems to realize that SPDIF-KA isn't actually outputting any audio and removes it from the list of applications that are outputting audio after a few minutes (either that, or something is closing the audio stream and SPDIF-KA doesn't realize it). If I stop-and-start SPDIF-KA it shows up again, but until then it doesn't do anything to prevent my soundbar from going to sleep.
I'm using it with the HDMI out on my Nvidia GPU in case that's relevant. I get the same result regardless of whether SPDIF-KA is set to "Inaudible sound" or "Silence".
Separating this item to track based on feedback from @Eldaw in issue #9.
You may wish to add this.Activate() at the end of the restore() method. This will provide 2 benefits: (1) when the application window is restored from the notification area, it will reliably be given focus and brought to the front, and (2) when the application window is already open but in the background somewhere, if the user clicks the notification area icon the application window will reliably be given focus and brought to the front.
Feature idea: If the application is already running when mistakenly trying to launch a second instance, restore and activate the window of the first instance.
I found your excellent utility while searching for an alternative of the also excellent https://blog.rhysgoodwin.com/htpc/spdif-keepalive/
(I initially thought you had forked it considering the similar name!)
It works well (with the "silence" mode) and solves the issue I was having with audio on my external monitor LG 27UD88 via USB-C/DisplayPort being cut for the first second.
Now, it would make sense for me to be able to select the sound device on which the media should be played. If I disconnect my monitor (and therefore the sound device) then no media needs to be played.
Have you already looked into that? I may be able to write a PR otherwise (but I am not very familiar with the Windows APIs to list and select the sound card for playback).
Hi handruin,
Your app does exactly what I need on my Win10 box.
I have two XP machines where I need the same functionality, but the binary won't run - It just generates an error: SPDIFKA.exe is not a valid Win32 application.
I guess the problem is that SPDIFKA is compiled for Win64. Would it be possible to talk you into compiling a Win32 binary?
Open spdif-ka and click on settings.
Select both check boxes.
Close spdif-ka
Launch spdif-ka. It should now be running and minimized.
Using keyboard, press alt + tab
Notice it shows in the task switching UI when it should not. If you restore the state of the GUI and then minimize it, this issue resolve itself.
When the app is started in a "stopped" state, the text on the StartStop button is "Start". This changes to lowercase after using the button to toggle the state.
This discussion should shed some light on the idea of preventing the application from appearing in the windows task switcher (Alt+Tab). The application is hiding in the system tray, so why would it still appear in the task switcher?
Hello, thank you all kindly who are working on this program. I couldn't do without it any more.
Would you consider adding the option to choose the audio device for people who have multiple in their PCs and the standard device is not the one where spdif-ka is needed? That would be fantastic!
Hey,
I just tested the utility but cannot get it to work. I started it with the "inaudible sound" setting while the speakers were active. Then I waited a bit and the speakers turned off, even tho it was definitely running. While the speakers were still on standby I tried the "silence" setting but it didn't wake the speakers back up.
I tried stopping/restarting several times which doesn't work aswell. I thought that it's maybe sending to the wrong output device as I have built-in display speakers too but as there are no output settings I have no idea how to check which speaker the signal gets sent to.
Thanks in advance
Hi @handruin,
thank you for this tiny, though great, application! I may have a nice idea to improve it.
Since I want to start the app during system boot, I create a task in Windows Task Scheduler.
Unfortunately it then shows the main window, from there I have to start and minimize it manually.
Maybe these steps could be skipped using a command line argument like:
-s
, --start
-h
, --hide
or -b
, --background
or -t
, --tray
(Where the hyphens may be substituted by a slash /
.)
Let me know what you think. I have no experience with C#, so I cannot make a coding suggestion and create a pull request...
Separating this item to track based on feedback from @Eldaw in issue #9.
The red icon that is initially displayed when the program starts in a "stopped" state -- can that be included with the source code? Maybe it already is and I just don't know how to find it. I can't see it in the 'Resources' or in the included files.
Thanks for creating this useful application, which I'm actually using to keep an HDMI audio connection open, not SPDIF. There's just one thing it's lacking compared to another (very similarly named) program.
The other program is SPDIFKeepAlive:
https://blog.rhysgoodwin.com/htpc/spdif-keepalive/
That program hasn't been updated in years, and is not quite as lightweight and attractive as spdif-ka, however it provides some options concerning how the audio channel should be kept open.
If you look at its screenshot, you'll see that in addition to being able to generate an 'Inaudible Tone', it also has another option called 'Silence'. I'm not sure exactly how that 'Silence' option is being implemented, but it actually works better for me than the other options.
Let me explain:
I use a program called TrayStatus Pro from Binary Fortress Software to show an indicator on my taskbar which tells me when audio is being played. This is useful over a remote session, for example, as I can see whether any audio is currently playing on the remote machine. When I activate spdif-ka, the TrayStatus Pro icon constantly indicates that audio is playing, i.e. I lose the ability to tell whether any actual audible sound is being generated. In contrast, with the 'Silence' option in the other program, SPDIFKeepAlive, the HDMI audio connection is still kept alive successfully, but according to TrayStatus Pro there is no audio playing while that option is active. In other words, it allows me to still be able to tell whether any real sound is being played by the system.
Is there any chance that spdif-ka could include an option that works in a similar manner to the way the 'Silence' option works in SPDIFKeepAlive?
spdif-ka has a much better tray icon, which changes according to whether it's enabled or not, so I would prefer to use spdif-ka if possible.
When my PC goes into sleep and wakes up the tool doesn't work anymore, but it still says 'running'. I have top stop and start it manually to get it working again.
Not convenient on a HTPC.
Maybe a command line add on to restart the tool?
When running v1.3.0 for the first time, Microsoft SmartScreen in Windows 10 tried to prevent me from doing so. Normally this doesn't happen with signed executables (but I may be wrong).
When I view the properties for the spdif-ka executable in File Explorer, there is no 'Digital Signatures' tab.
Has the release executable been signed?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.