Windows gui frontend for hacktv

steeviebops

Member
Joined
Nov 19, 2019
Messages
105
Reaction score
74
Points
28
My Satellite Setup
A basic 28.2 Freesat config, but have had a long history of satellite TV dating back to the analogue 19.2 days. Using a HP ZBook 15 G5 laptop (Core i7-8850H, 32GB RAM, Quadro video card)
My Location
Drogheda, Ireland
Last November I decided to give a go at writing a frontend for hacktv. But I hadn't ever written anything serious and any experience I did have was in Visual Basic 6. Nonetheless, I carried on with the initial intent that it would be for my personal use, but since there has been some interest I thought I'd release my efforts to the public.

I built this with Wine in mind, which is one of the reasons why I chose VB6 over VB.NET. I do have a 64-bit native VB.NET build that I developed side-by-side but found that running it in Wine using Mono is very unstable whereas VB6 is flawless, provided that you install the VB6 runtimes from Microsoft (these aren't required on any modern version of Windows by the way). So if you run the GUI in Wine on Linux it will run the native version of hacktv. I've tested it on Fedora and Mint with GNOME and Cinnamon respectively.

When you run it you'll be presented with pretty much any of the supported options in hacktv on a HackRF. I haven't implemented fl2k or SoapySDR as I don't have access to them so can't test. I've also added a couple of nice features such as the ability to download a teletext service with a couple of clicks; I've added Teefax and even TVARK's SPARK service after finding it on Github. When you run hacktv it will also show the generated syntax in the status bar at the bottom of the window. If you need help with getting something working, sharing these parameters is definitely the best way.

The link below includes the GUI, VB6 source (if anyone is interested, but it does need to be tidied up) and also Windows versions of the latest builds of hacktv. The easiest way to get it working is to download the GUI and one of the two hacktv builds, then place all files in the same directory. But you can change the hacktv location in the settings menu. The GUI will detect what build you choose, and enable or disable the options supported by it.


I do apologise for not writing this in a better language, such as C, but coding isn't my strong point (I work in an IT MSP by trade) so I worked with what I had! For the same reasons I'm also not very confident that it's up to standard but I've tried to make it as stable as possible so it shouldn't do anything untoward.

If any new commands are added to hacktv in future, I will do my best to add them.
 

Attachments

  • hacktv-gui.png
    hacktv-gui.png
    28 KB · Views: 72

Captain Jack

Burnt out human
Joined
Oct 21, 2006
Messages
11,797
Reaction score
7,980
Points
113
My Satellite Setup
See signature
My Location
North Somerset
Thank you! One feature I wanted to add to HackTV is profiles. Basically a set of options included in a profile/config file, so you don't have to pick them every time. Might a good candidate for this.
 

settopboxing

New Member
Joined
Mar 11, 2020
Messages
2
Reaction score
1
Points
3
My Satellite Setup
No current active setup, but keen interest in old systems and a considerable pile of old receivers.
My Location
UK
Hey, been following hacktv stuff here as a lurker, but now seemed as good a time as any to chime in.

If you're interested in more teletext services to add to the list, here are a few extras.

Appreciate the work everyone's putting into the project, hacktv is really quite something.
 

fsphil

Member
Joined
Apr 27, 2017
Messages
112
Reaction score
52
Points
28
My Satellite Setup
Still playing with analogue. Also running a Humax FOXSAT-HDR and a Thomson THS804.
My Location
UK
This looks great. Is there anything that could be added to hacktv to make interfacing with the UI simpler / better?
 

settopboxing

New Member
Joined
Mar 11, 2020
Messages
2
Reaction score
1
Points
3
My Satellite Setup
No current active setup, but keen interest in old systems and a considerable pile of old receivers.
My Location
UK
This looks great. Is there anything that could be added to hacktv to make interfacing with the UI simpler / better?

I don't know how tricky it'd be to implement, but perhaps some external way of retrieving the input and output video feeds going in and out of ffmpeg for displaying in a more broadcast-console-like application? stdout is pretty easy to get hold of, which would be useful for some feedback, but I think for a more interactive easy to use front-end (especially for less technical people) it'd be nice to have feedback in terms of video in, video out, HackRF buffer state, etc.

Edit: When I start to think of it that way, it might be nice to be able to use hacktv as a library, so that applications could be built with it as an output sink. It's all extra work, I realise, but just a thought - might inspire some interesting uses of it.
 

steeviebops

Member
Joined
Nov 19, 2019
Messages
105
Reaction score
74
Points
28
My Satellite Setup
A basic 28.2 Freesat config, but have had a long history of satellite TV dating back to the analogue 19.2 days. Using a HP ZBook 15 G5 laptop (Core i7-8850H, 32GB RAM, Quadro video card)
My Location
Drogheda, Ireland
Thank you! One feature I wanted to add to HackTV is profiles. Basically a set of options included in a profile/config file, so you don't have to pick them every time. Might a good candidate for this.
I actually thought about implementing this at one stage but wasn't sure how to do it. Might be an idea to save the settings to a config file and add a function to reload them. I'll definitely look into it.
This looks great. Is there anything that could be added to hacktv to make interfacing with the UI simpler / better?
When I initially planned this, I wanted to fully wrap the console output into the application. I got it working to some extent but for some reason I'd only see the output when hacktv had closed - it didn't show anything while it was running. I could never work out why but if I hooked the same code into ping.exe it would update in real time.
 

steeviebops

Member
Joined
Nov 19, 2019
Messages
105
Reaction score
74
Points
28
My Satellite Setup
A basic 28.2 Freesat config, but have had a long history of satellite TV dating back to the analogue 19.2 days. Using a HP ZBook 15 G5 laptop (Core i7-8850H, 32GB RAM, Quadro video card)
My Location
Drogheda, Ireland
I successfully implemented a save/load feature over the weekend. I'll need to give it some testing but it looks to do exactly what it should do.
 

Captain Jack

Burnt out human
Joined
Oct 21, 2006
Messages
11,797
Reaction score
7,980
Points
113
My Satellite Setup
See signature
My Location
North Somerset
There's another 'feature' (useful or not, I dunno) in my fork that allows you to specify starting position of the video, the -p flag.

Also, hoping to release subtitling capability soon.
 

steeviebops

Member
Joined
Nov 19, 2019
Messages
105
Reaction score
74
Points
28
My Satellite Setup
A basic 28.2 Freesat config, but have had a long history of satellite TV dating back to the analogue 19.2 days. Using a HP ZBook 15 G5 laptop (Core i7-8850H, 32GB RAM, Quadro video card)
My Location
Drogheda, Ireland
There's another 'feature' (useful or not, I dunno) in my fork that allows you to specify starting position of the video, the -p flag.
Already there in the source options in the top left. :)
 

steeviebops

Member
Joined
Nov 19, 2019
Messages
105
Reaction score
74
Points
28
My Satellite Setup
A basic 28.2 Freesat config, but have had a long history of satellite TV dating back to the analogue 19.2 days. Using a HP ZBook 15 G5 laptop (Core i7-8850H, 32GB RAM, Quadro video card)
My Location
Drogheda, Ireland
I've uploaded the new version with the save/load feature now. You can save your settings into a .htv file and load it back whenever you like. There is one caveat though, you can't use the same file with both forks.

I've also included a help file (hopefully it's of use to someone) and gave the application its own icon.

Another feature I'm considering is to add the ability to use youtube-dl to download and play a video file if a YouTube URL is specified as the source - thanks to @BSBSquarial for planting the seed with that one. Should be easy enough to add but I'm insanely busy in work with the coronavirus and the amount of work-from-home requests we're getting (we peaked at 87 today!) so time isn't really on my side for the moment.
 

steeviebops

Member
Joined
Nov 19, 2019
Messages
105
Reaction score
74
Points
28
My Satellite Setup
A basic 28.2 Freesat config, but have had a long history of satellite TV dating back to the analogue 19.2 days. Using a HP ZBook 15 G5 laptop (Core i7-8850H, 32GB RAM, Quadro video card)
My Location
Drogheda, Ireland
@fsphil - there isn't really a separate thread for this so thought I'd just mention it here.

I have a video recorder which seems to be rather forgiving of the video format it can take (provided it's connected to the TV via SCART). I knew it could handle broadcast NTSC-M on its internal tuner without a problem but I tried the new untested PAL-M and it works fine, audio and colour both appear normal. So a positive test result it seems.
 

fsphil

Member
Joined
Apr 27, 2017
Messages
112
Reaction score
52
Points
28
My Satellite Setup
Still playing with analogue. Also running a Humax FOXSAT-HDR and a Thomson THS804.
My Location
UK
Thanks for testing! It's a bit hacky so I was worried some devices wouldn't like it.
 

steeviebops

Member
Joined
Nov 19, 2019
Messages
105
Reaction score
74
Points
28
My Satellite Setup
A basic 28.2 Freesat config, but have had a long history of satellite TV dating back to the analogue 19.2 days. Using a HP ZBook 15 G5 laptop (Core i7-8850H, 32GB RAM, Quadro video card)
My Location
Drogheda, Ireland
This past week in lockdown has given me plenty of time to do work on this project. I've fixed some bugs and added a couple of features. I'll include a full changelog when it is released, which should be in the next few days.

One thing to note is that if you have saved any configuration files from the older version, you'll get a warning when you load them into the new one. It's a check I added in case a change I made would cause the file to behave differently on a different version, but in this case I haven't changed anything to prevent the file from working. If you load the file and save it again, you won't see the warning again.
 

Captain Jack

Burnt out human
Joined
Oct 21, 2006
Messages
11,797
Reaction score
7,980
Points
113
My Satellite Setup
See signature
My Location
North Somerset
Would you be able to put the code up on Github or similar?

I'd still like to get a Java version of this going - for that universal compatibility.

One other thing I will do is selectable audio/subtitle streams if there are several.
 

steeviebops

Member
Joined
Nov 19, 2019
Messages
105
Reaction score
74
Points
28
My Satellite Setup
A basic 28.2 Freesat config, but have had a long history of satellite TV dating back to the analogue 19.2 days. Using a HP ZBook 15 G5 laptop (Core i7-8850H, 32GB RAM, Quadro video card)
My Location
Drogheda, Ireland
Hi all,

I've uploaded the new version to the same URL above. Change log is at the bottom of this post.

@Captain Jack - I'm not very familiar with it but I've given it a shot.

Original VB6 version: steeviebops/hacktv-gui
VB.NET version: steeviebops/hacktv-gui.NET

The VB6 version is the one I've been sharing here but I'm conscious that it's an archaic runtime (but I am more familiar with it). The VB.NET version is one I maintained side-by-side and works the same way, should in fact run better on Windows as it's 64-bit native. But I could only get it working on Wine with the real MS .NET Framework and not Mono.

Change log

New features:
Added a handler for Extended M3U files
Changed file open behaviour on command line, you can now open anything from the command line:
- If the file is a .htv file, it will open as normal
- If the file is not a .htv file, the file source box with be populated with it
Added mouse cursor activity indicators
Added the groundwork for future EuroCrypt support (but not enabled as of yet)
Added a check for YouTube URLs, advising to download the video first

Bug fixes:
Completely rewrote and simplified save/load code from the previous version - I wasn't happy with the original
Corrected the arguments textbox to show Unix-style paths on Wine systems
Corrected Wine support to allow the use of prefixes other than the default ~/.wine
Corrected 819-line bandplan
Corrected a bug which caused the channel dropdown to show as blank in some modes when switching from a custom frequency
Removed the 405-line bandplan from the 30-line and 240-line mechanical modes as it's not relevant to them
Also removed the NTSC VHF bandplan from the Apollo modes for the same reason
Prevented non-numeric values from being entered in all text boxes that shouldn't have them
 

steeviebops

Member
Joined
Nov 19, 2019
Messages
105
Reaction score
74
Points
28
My Satellite Setup
A basic 28.2 Freesat config, but have had a long history of satellite TV dating back to the analogue 19.2 days. Using a HP ZBook 15 G5 laptop (Core i7-8850H, 32GB RAM, Quadro video card)
My Location
Drogheda, Ireland
New update today to include the EuroCrypt syntax.
 

Szycha881

New Member
Joined
Jun 20, 2018
Messages
9
Reaction score
4
Points
3
Age
33
My Satellite Setup
HotBird 13E, nc+ receiver
My Location
Poland
GUI looks great :D
@steeviebops I have one suggestion: are you able to add support for .t42 teletext streams?
Syntax looks like this:
Code:
--teletext raw:/path/to/the/file.t42
 

steeviebops

Member
Joined
Nov 19, 2019
Messages
105
Reaction score
74
Points
28
My Satellite Setup
A basic 28.2 Freesat config, but have had a long history of satellite TV dating back to the analogue 19.2 days. Using a HP ZBook 15 G5 laptop (Core i7-8850H, 32GB RAM, Quadro video card)
My Location
Drogheda, Ireland
Hi @Szycha881 - I assume hacktv already supports this? If so, should I add a button to browse for a .t42 file?
 
Top