refactored video streaming module

This commit is contained in:
Valmo Trindade
2025-05-22 03:24:10 -03:00
parent 3f028b48c8
commit 7b5510698e
3 changed files with 80 additions and 76 deletions

View File

@@ -1,5 +1,6 @@
class CfgVehicles {
class Logic;
class Logic;
class Module_F : Logic
{
class AttributesBase
@@ -18,84 +19,54 @@ class CfgVehicles {
class AnyBrain;
};
};
class armatak_module_core;
class armatak_module_video_stream_core: armatak_module_core {
class EGVAR(server,moduleBase);
class GVAR(videoModule): EGVAR(server,moduleBase) {
scope = 2;
displayname = "ARMATAK MediaMTX Video Feed Parser";
icon = "\a3\Modules_F_Curator\Data\iconcuratorsetcamera_ca.paa";
category = "armatak_module_category";
function = "armatak_fnc_video_init";
scopeCurator = 0;
displayname = "Video Streaming Handler";
icon = "\a3\Modules_F_Curator\Data\iconRadio_ca.paa";
category = QEGVAR(main,moduleCategory);
function = QFUNC(videoParser);
functionPriority = 1;
isGlobal = 0;
isTriggerActivated = 0;
isTriggerActivated = 1;
isDisposable = 1;
is3den = 0;
curatorCanAttach = 0;
curatorInfoType = "RscDisplayAttributeModuleNuke";
canSetArea = 0;
canSetAreaShape = 0;
canSetAreaHeight = 0;
class AttributesValues {
size3[] = { 1, 1, -1 };
isRectangle = 0;
};
class Attributes: AttributesBase {
class armatak_module_mediamtx_video_stream_instance_address: Edit {
property = "armatak_module_mediamtx_video_stream_instance_address";
class GVAR(instanceAddress): Edit {
property = QGVAR(instanceAddress);
displayname = "MediaMTX Provider Address";
tooltip = "MediaMTX Provider Instance Address";
typeName = "STRING";
defaultValue = "localhost";
};
class armatak_module_mediamtx_video_stream_instance_port: Edit {
class GVAR(instancePort): Edit {
property = "armatak_module_mediamtx_video_stream_instance_port";
displayname = "MediaMTX Provider Port";
tooltip = "MediaMTX Provider Port for handling video streams";
typeName = "STRING";
defaultValue = "8554";
};
class armatak_module_mediamtx_video_stream_instance_auth_user: Edit {
property = "armatak_module_mediamtx_video_stream_instance_auth_user";
class GVAR(instanceAuthUser): Edit {
property = QGVAR(instanceAuthUser);
displayname = "MediaMTX Provider Username";
tooltip = "MediaMTX Provider Instance Username";
typeName = "STRING";
defaultValue = "administrator";
};
class armatak_module_mediamtx_video_stream_instance_auth_pass: Edit {
property = "armatak_module_mediamtx_video_stream_instance_auth_pass";
class GVAR(instanceAuthPassword): Edit {
property = QGVAR(instanceAuthPassword);
displayname = "MediaMTX Provider Password";
tooltip = "MediaMTX Provider Instance Password";
typeName = "STRING";
defaultValue = "password";
};
class ModuleDescription: ModuleDescription {};
};
class ModuleDescription: ModuleDescription {
description = "Generate the initial ARMATAK configuration, syncronizing all players to the TAK server instance";
sync[] = {"LocationArea_F"};
class LocationArea_F {
description[] = {
"First line",
"Second line"
};
position = 1;
direction = 1;
optional = 1;
duplicate = 1;
synced[] = { "BluforUnit", "AnyBrain" };
};
class BluforUnit
{
description = "Short description";
displayName = "Any BLUFOR unit";
icon = "iconMan";
side = 1;
};
};
};
};

View File

@@ -7,15 +7,15 @@ params [
];
if (isServer) exitWith {
private _instance_address = GETVAR(_logic,instance_address,false);
private _instance_port = GETVAR(_logic,instance_port,false);
private _instance_auth_user = GETVAR(_logic,instance_auth_user,false);
private _instance_auth_pass = GETVAR(_logic,instance_auth_pass,false);
private _instance_address = GETVAR(_logic,GVAR(instanceAddress),false);
private _instance_port = GETVAR(_logic,GVAR(instancePort),false);
private _instance_auth_user = GETVAR(_logic,GVAR(instanceAuthUser),false);
private _instance_auth_pass = GETVAR(_logic,GVAR(instanceAuthPassword),false);
SETMVAR(GVAR(instance_address),_instance_address);
SETMVAR(GVAR(instance_port),_instance_port);
SETMVAR(GVAR(instance_auth_user),_instance_auth_user);
SETMVAR(GVAR(instance_auth_pass),_instance_auth_pass);
SETMVAR(GVAR(instanceAddress),_instance_address);
SETMVAR(GVAR(instancePort),_instance_port);
SETMVAR(GVAR(instanceAuthUser),_instance_auth_user);
SETMVAR(GVAR(instanceAuthPassword),_instance_auth_pass);
_startAction = [
QGVAR(startStream),