If your HTPC has a receiver and not just a blaster, you might be able to find a program that can access it. Most of the recommendations I'm seeing are to grab an Arduino and use that, but I'm betting that setup is non-trivial also. I'd think that if you had an IR-receiver and an oscilloscope, you could get the raw I/O stream, which is easy to convert using any of a number of websites out there.
FYI, Topping service did provide the attached C files, which I assume are the sections of CPLD code that control the IR inputs. I could not distinguish the protocol from these, but perhaps one of the more experienced members of the forum could. I did make a half-hearted attempt to translate the Chinese characters in the IR.c file header lines.
This is code to look for/read IR codes...
I am a C programmer lol this is very simple stuff. But in the .h file....
#define RC_1X_IR_HEADPHONE 0X04
#define RC_1X_IR_LINEOUT 0X40
#define RC_1X_IR_INPUT_L 0X47
#define RC_1X_IR_INPUT_R 0X15
#define RC_1X_IR_VOL_INC 0X46
#define RC_1X_IR_VOL_DEC 0X16
#define RC_1X_IR_MUTE 0X06
#define RC_1X_IR_POWER 0X18
#define RC_1X_IR_HEADPHONE_LINEOUT 0X55
#define RC_1X_IR_A 0X10
#define RC_1X_IR_DIS 0X14
#define RC_1X_IR_FIR 0X54
#define RC_1X_IR_IIR 0X50
#define TP32EX_YKQ_IR_USB 0X10
#define TP32EX_YKQ_IR_COAX 0X11
#define TP32EX_YKQ_IR_OPT 0X12
#define TP32EX_YKQ_IR_AES 0X0E
#define TP32EX_YKQ_IR_VOL_INC 0X15
#define TP32EX_YKQ_IR_VOL_DEC 0X0D
#define TP32EX_YKQ_IR_MUTE 0X14
#define TP32EX_YKQ_IR_POWER 0X00
#define TP32EX_YKQ_IR_DAC 0X04
#define TP32EX_YKQ_IR_DAC_EAR 0X05
#define TP32EX_YKQ_IR_EAR 0X16
These are bytevalues, so those may be the codes?