Added a log into Lumenarium
This commit is contained in:
parent
40f3a9f817
commit
f7aa8722a6
|
@ -1562,9 +1562,10 @@ ui_BeginList(ui_interface* Interface, gs_string Text, u32 ViewportRows, u32 Elem
|
||||||
s32 ScrollableElements = Max(0, ElementCount - ViewportRows);
|
s32 ScrollableElements = Max(0, ElementCount - ViewportRows);
|
||||||
ui_widget_retained_state* ViewportState = ui_GetOrCreateRetainedState(Interface, ViewportLayout);
|
ui_widget_retained_state* ViewportState = ui_GetOrCreateRetainedState(Interface, ViewportLayout);
|
||||||
ViewportState->ChildrenDrawOffset.x = 0;
|
ViewportState->ChildrenDrawOffset.x = 0;
|
||||||
r32 BaseOffset = Rect2Height(ViewportLayout->Bounds) - ViewportLayout->RowHeight;
|
r32 BaseOffset = 0;
|
||||||
r32 ScrollPct = 1.0 - State->InitialValueR32;
|
r32 ScrollPct = 1.0 - State->InitialValueR32;
|
||||||
r32 ScrollOffset = ScrollPct * ViewportLayout->RowHeight * ScrollableElements;
|
r32 RowsOffset = ScrollPct * ScrollableElements;
|
||||||
|
r32 ScrollOffset = (ViewportLayout->RowHeight - (Interface->Style.Margin.y)) * RowsOffset;
|
||||||
ViewportState->ChildrenDrawOffset.y = BaseOffset + ScrollOffset;
|
ViewportState->ChildrenDrawOffset.y = BaseOffset + ScrollOffset;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -30,7 +30,7 @@ PANEL_MODAL_OVERRIDE_CALLBACK(LoadAssemblyCallback)
|
||||||
file_view_state* FileViewState = Panel_GetStateStruct(ReturningFrom, file_view_state);
|
file_view_state* FileViewState = Panel_GetStateStruct(ReturningFrom, file_view_state);
|
||||||
gs_file_info FileInfo = FileViewState->SelectedFile;
|
gs_file_info FileInfo = FileViewState->SelectedFile;
|
||||||
|
|
||||||
LoadAssembly(&State->Assemblies, &State->LedSystem, State->Transient, Context, FileInfo.Path, State->GlobalLog);
|
LoadAssembly(&State->Assemblies, &State->LedSystem, State->Transient, Context, FileInfo.Path, &State->GlobalLog);
|
||||||
}
|
}
|
||||||
|
|
||||||
GSMetaTag(panel_render);
|
GSMetaTag(panel_render);
|
||||||
|
|
|
@ -0,0 +1,46 @@
|
||||||
|
/* date = April 12th 2021 4:47 pm */
|
||||||
|
|
||||||
|
#ifndef FOLDHAUS_PANEL_MESSAGE_LOG_H
|
||||||
|
#define FOLDHAUS_PANEL_MESSAGE_LOG_H
|
||||||
|
|
||||||
|
GSMetaTag(panel_init);
|
||||||
|
GSMetaTag(panel_type_file_view);
|
||||||
|
internal void
|
||||||
|
MessageLog_Init(panel* Panel, app_state* State, context Context)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
GSMetaTag(panel_cleanup);
|
||||||
|
GSMetaTag(panel_type_file_view);
|
||||||
|
internal void
|
||||||
|
MessageLog_Cleanup(panel* Panel, app_state* State)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
GSMetaTag(panel_render);
|
||||||
|
GSMetaTag(panel_type_file_view);
|
||||||
|
internal void
|
||||||
|
MessageLog_Render(panel* Panel, rect2 PanelBounds, render_command_buffer* RenderBuffer, app_state* State, context Context)
|
||||||
|
{
|
||||||
|
ui_interface* Interface = &State->Interface;
|
||||||
|
ui_widget* Layout = ui_PushLayout(Interface, PanelBounds, LayoutDirection_TopDown, MakeString("Message Log Layout"));
|
||||||
|
|
||||||
|
ui_BeginList(Interface, MakeString("Message Log List"), 10, State->GlobalLog.EntriesCount);
|
||||||
|
|
||||||
|
log_buffer_iter Iter = Log_GetIter(&State->GlobalLog);
|
||||||
|
while (true)
|
||||||
|
{
|
||||||
|
log_entry* At = Iter.At;
|
||||||
|
ui_Label(Interface, At->String);
|
||||||
|
if (!LogIter_CanAdvance(Iter))
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
LogIter_Advance(&Iter);
|
||||||
|
}
|
||||||
|
ui_EndList(Interface);
|
||||||
|
|
||||||
|
ui_PopLayout(Interface, MakeString("Message Log Layout"));
|
||||||
|
}
|
||||||
|
#endif //FOLDHAUS_PANEL_MESSAGE_LOG_H
|
|
@ -4,7 +4,7 @@
|
||||||
// Creation Date: 2020-10-17
|
// Creation Date: 2020-10-17
|
||||||
//
|
//
|
||||||
#ifndef FOLDHAUS_PANEL_TYPES_CPP
|
#ifndef FOLDHAUS_PANEL_TYPES_CPP
|
||||||
global s32 GlobalPanelDefsCount = 7;
|
global s32 GlobalPanelDefsCount = 8;
|
||||||
global panel_definition GlobalPanelDefs[] = {
|
global panel_definition GlobalPanelDefs[] = {
|
||||||
{ "File View", 9, FileView_Init, FileView_Cleanup, FileView_Render, FileView_Commands, FileView_CommandsCount },
|
{ "File View", 9, FileView_Init, FileView_Cleanup, FileView_Render, FileView_Commands, FileView_CommandsCount },
|
||||||
{ "Sculpture View", 14, SculptureView_Init, SculptureView_Cleanup, SculptureView_Render, SculptureView_Commands, SculptureView_CommandsCount },
|
{ "Sculpture View", 14, SculptureView_Init, SculptureView_Cleanup, SculptureView_Render, SculptureView_Commands, SculptureView_CommandsCount },
|
||||||
|
@ -13,6 +13,7 @@ global panel_definition GlobalPanelDefs[] = {
|
||||||
{ "Hierarchy", 9, HierarchyView_Init, HierarchyView_Cleanup, HierarchyView_Render, HierarchyView_Commands, HierarchyView_CommandsCount },
|
{ "Hierarchy", 9, HierarchyView_Init, HierarchyView_Cleanup, HierarchyView_Render, HierarchyView_Commands, HierarchyView_CommandsCount },
|
||||||
{ "Profiler", 8, ProfilerView_Init, ProfilerView_Cleanup, ProfilerView_Render, ProfilerView_Commands, ProfilerView_CommandsCount },
|
{ "Profiler", 8, ProfilerView_Init, ProfilerView_Cleanup, ProfilerView_Render, ProfilerView_Commands, ProfilerView_CommandsCount },
|
||||||
{ "Assembly Debug", 14, AssemblyDebug_Init, AssemblyDebug_Cleanup, AssemblyDebug_Render, 0, 0 },
|
{ "Assembly Debug", 14, AssemblyDebug_Init, AssemblyDebug_Cleanup, AssemblyDebug_Render, 0, 0 },
|
||||||
|
{ "Message Log", 11, MessageLog_Init, MessageLog_Cleanup, MessageLog_Render, 0, 0 },
|
||||||
};
|
};
|
||||||
#define FOLDHAUS_PANEL_TYPES_CPP
|
#define FOLDHAUS_PANEL_TYPES_CPP
|
||||||
#endif // FOLDHAUS_PANEL_TYPES_CPP
|
#endif // FOLDHAUS_PANEL_TYPES_CPP
|
|
@ -12,6 +12,7 @@ enum panel_type {
|
||||||
PanelType_HierarchyView,
|
PanelType_HierarchyView,
|
||||||
PanelType_ProfilerView,
|
PanelType_ProfilerView,
|
||||||
PanelType_AssemblyDebug,
|
PanelType_AssemblyDebug,
|
||||||
|
PanelType_MessageLog
|
||||||
};
|
};
|
||||||
#define FOLDHAUS_PANEL_TYPES_H
|
#define FOLDHAUS_PANEL_TYPES_H
|
||||||
#endif // FOLDHAUS_PANEL_TYPES_H
|
#endif // FOLDHAUS_PANEL_TYPES_H
|
|
@ -196,7 +196,7 @@ ConstructAssemblyFromDefinition (assembly* Assembly, led_system* LedSystem)
|
||||||
}
|
}
|
||||||
|
|
||||||
internal assembly*
|
internal assembly*
|
||||||
LoadAssembly (assembly_array* Assemblies, led_system* LedSystem, gs_memory_arena* Scratch, context Context, gs_const_string Path, event_log* GlobalLog)
|
LoadAssembly (assembly_array* Assemblies, led_system* LedSystem, gs_memory_arena* Scratch, context Context, gs_const_string Path, log_buffer* GlobalLog)
|
||||||
{
|
{
|
||||||
assembly* NewAssembly = 0;
|
assembly* NewAssembly = 0;
|
||||||
|
|
||||||
|
@ -232,7 +232,7 @@ LoadAssembly (assembly_array* Assemblies, led_system* LedSystem, gs_memory_arena
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
LogError(GlobalLog, "Unable to load assembly file");
|
Log_Error(GlobalLog, "Unable to load assembly file");
|
||||||
}
|
}
|
||||||
|
|
||||||
return NewAssembly;
|
return NewAssembly;
|
||||||
|
|
|
@ -0,0 +1,116 @@
|
||||||
|
/* date = April 12th 2021 4:25 pm */
|
||||||
|
|
||||||
|
#ifndef FOLDHAUS_LOG_H
|
||||||
|
#define FOLDHAUS_LOG_H
|
||||||
|
|
||||||
|
enum log_entry_type
|
||||||
|
{
|
||||||
|
LogEntry_Message,
|
||||||
|
LogEntry_Error,
|
||||||
|
};
|
||||||
|
|
||||||
|
struct log_entry
|
||||||
|
{
|
||||||
|
log_entry_type Type;
|
||||||
|
gs_string String;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct log_buffer
|
||||||
|
{
|
||||||
|
gs_allocator Allocator;
|
||||||
|
|
||||||
|
u64 EntriesCount;
|
||||||
|
u64 NextEntry;
|
||||||
|
log_entry* Entries;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct log_buffer_iter
|
||||||
|
{
|
||||||
|
log_buffer* Buffer;
|
||||||
|
u64 Start;
|
||||||
|
u64 IndexAt;
|
||||||
|
log_entry* At;
|
||||||
|
};
|
||||||
|
|
||||||
|
internal log_buffer
|
||||||
|
Log_Init(gs_allocator Allocator, u64 Count)
|
||||||
|
{
|
||||||
|
log_buffer Result = {};
|
||||||
|
Result.Allocator = Allocator;
|
||||||
|
Result.EntriesCount = Count;
|
||||||
|
Result.Entries = AllocatorAllocArray(Allocator, log_entry, Result.EntriesCount);
|
||||||
|
|
||||||
|
for (u32 i = 0; i < Result.EntriesCount; i++)
|
||||||
|
{
|
||||||
|
Result.Entries[i].String = AllocatorAllocString(Allocator, 512);
|
||||||
|
}
|
||||||
|
|
||||||
|
return Result;
|
||||||
|
}
|
||||||
|
|
||||||
|
internal u64
|
||||||
|
Log_GetNextIndex(log_buffer Log, u64 At)
|
||||||
|
{
|
||||||
|
u64 Result = At + 1;
|
||||||
|
if (Result >= Log.EntriesCount)
|
||||||
|
{
|
||||||
|
Result = 0;
|
||||||
|
}
|
||||||
|
return Result;
|
||||||
|
}
|
||||||
|
|
||||||
|
internal log_entry*
|
||||||
|
Log_TakeNextEntry(log_buffer* Log)
|
||||||
|
{
|
||||||
|
log_entry* Result = Log->Entries + Log->NextEntry;
|
||||||
|
Log->NextEntry = Log_GetNextIndex(*Log, Log->NextEntry);
|
||||||
|
return Result;
|
||||||
|
}
|
||||||
|
|
||||||
|
#define Log_Message(log, fmt, ...) Log_PrintF(log, LogEntry_Message, fmt, __VA_ARGS__)
|
||||||
|
#define Log_Error(log, fmt, ...) Log_PrintF(log, LogEntry_Error, fmt, __VA_ARGS__)
|
||||||
|
internal void
|
||||||
|
Log_PrintF(log_buffer* Log, log_entry_type Type, char* Format, ...)
|
||||||
|
{
|
||||||
|
log_entry* NextEntry = Log_TakeNextEntry(Log);
|
||||||
|
|
||||||
|
va_list Args;
|
||||||
|
va_start(Args, Format);
|
||||||
|
NextEntry->String.Length = 0;
|
||||||
|
NextEntry->Type = Type;
|
||||||
|
PrintFArgsList(&NextEntry->String, Format, Args);
|
||||||
|
NullTerminate(&NextEntry->String);
|
||||||
|
va_end(Args);
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
OutputDebugStringA(NextEntry->String.Str);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
internal log_buffer_iter
|
||||||
|
Log_GetIter(log_buffer* Buffer)
|
||||||
|
{
|
||||||
|
log_buffer_iter Result = {};
|
||||||
|
Result.Buffer = Buffer;
|
||||||
|
Result.Start = Buffer->NextEntry;
|
||||||
|
Result.IndexAt = Result.Start;
|
||||||
|
Result.At = Result.Buffer->Entries + Result.IndexAt;
|
||||||
|
return Result;
|
||||||
|
}
|
||||||
|
|
||||||
|
internal bool
|
||||||
|
LogIter_CanAdvance(log_buffer_iter Iter)
|
||||||
|
{
|
||||||
|
u64 Next = Log_GetNextIndex(*Iter.Buffer, Iter.IndexAt);
|
||||||
|
bool Result = Next != Iter.Start;
|
||||||
|
return Result;
|
||||||
|
}
|
||||||
|
|
||||||
|
internal void
|
||||||
|
LogIter_Advance(log_buffer_iter* Iter)
|
||||||
|
{
|
||||||
|
Iter->IndexAt = Log_GetNextIndex(*Iter->Buffer, Iter->IndexAt);
|
||||||
|
Iter->At = Iter->Buffer->Entries + Iter->IndexAt;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif //FOLDHAUS_LOG_H
|
|
@ -11,10 +11,10 @@
|
||||||
RELOAD_STATIC_DATA(ReloadStaticData)
|
RELOAD_STATIC_DATA(ReloadStaticData)
|
||||||
{
|
{
|
||||||
GlobalDebugServices = DebugServices;
|
GlobalDebugServices = DebugServices;
|
||||||
|
|
||||||
if (AppReady)
|
if (AppReady)
|
||||||
{
|
{
|
||||||
app_state* State = (app_state*)Context.MemoryBase;
|
app_state* State = (app_state*)Context.MemoryBase;
|
||||||
|
GlobalLogBuffer = &State->GlobalLog;
|
||||||
State->PanelSystem.PanelDefs = GlobalPanelDefs;
|
State->PanelSystem.PanelDefs = GlobalPanelDefs;
|
||||||
State->PanelSystem.PanelDefsCount = GlobalPanelDefsCount;
|
State->PanelSystem.PanelDefsCount = GlobalPanelDefsCount;
|
||||||
|
|
||||||
|
@ -39,7 +39,7 @@ INITIALIZE_APPLICATION(InitializeApplication)
|
||||||
State->Transient = Context->ThreadContext.Transient;
|
State->Transient = Context->ThreadContext.Transient;
|
||||||
State->Assemblies = AssemblyArray_Create(8, &State->Permanent);
|
State->Assemblies = AssemblyArray_Create(8, &State->Permanent);
|
||||||
|
|
||||||
State->GlobalLog = PushStruct(&State->Permanent, event_log);
|
State->GlobalLog = Log_Init(Context->ThreadContext.Allocator, 32);
|
||||||
|
|
||||||
State->CommandQueue = CommandQueue_Create(&State->Permanent, 32);
|
State->CommandQueue = CommandQueue_Create(&State->Permanent, 32);
|
||||||
|
|
||||||
|
@ -97,7 +97,7 @@ INITIALIZE_APPLICATION(InitializeApplication)
|
||||||
SplitPanel(LeftPanel, .5f, PanelSplit_Vertical, &State->PanelSystem, State, *Context);
|
SplitPanel(LeftPanel, .5f, PanelSplit_Vertical, &State->PanelSystem, State, *Context);
|
||||||
|
|
||||||
panel* Profiler = LeftPanel->Right;
|
panel* Profiler = LeftPanel->Right;
|
||||||
Panel_SetType(Profiler, &State->PanelSystem, PanelType_ProfilerView, State, *Context);
|
Panel_SetType(Profiler, &State->PanelSystem, PanelType_MessageLog, State, *Context);
|
||||||
|
|
||||||
panel* Hierarchy = LeftPanel->Left;
|
panel* Hierarchy = LeftPanel->Left;
|
||||||
Panel_SetType(Hierarchy, &State->PanelSystem, PanelType_AssemblyDebug, State, *Context);
|
Panel_SetType(Hierarchy, &State->PanelSystem, PanelType_AssemblyDebug, State, *Context);
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
#include "engine/foldhaus_serializer.h"
|
#include "engine/foldhaus_serializer.h"
|
||||||
|
|
||||||
#include "../gs_libs/gs_font.h"
|
#include "../gs_libs/gs_font.h"
|
||||||
#include "foldhaus_log.h"
|
#include "engine/foldhaus_log.h"
|
||||||
|
|
||||||
#include "editor/interface.h"
|
#include "editor/interface.h"
|
||||||
|
|
||||||
|
@ -48,6 +48,8 @@ typedef struct panel panel;
|
||||||
#include "ss_blumen_lumen/phrase_hue_map.h"
|
#include "ss_blumen_lumen/phrase_hue_map.h"
|
||||||
#include "ss_blumen_lumen/blumen_lumen.h"
|
#include "ss_blumen_lumen/blumen_lumen.h"
|
||||||
|
|
||||||
|
global log_buffer* GlobalLogBuffer;
|
||||||
|
|
||||||
struct app_state
|
struct app_state
|
||||||
{
|
{
|
||||||
gs_memory_arena Permanent;
|
gs_memory_arena Permanent;
|
||||||
|
@ -61,7 +63,7 @@ struct app_state
|
||||||
assembly_array Assemblies;
|
assembly_array Assemblies;
|
||||||
assembly_debug_state AssemblyDebugState;
|
assembly_debug_state AssemblyDebugState;
|
||||||
animation_system AnimationSystem;
|
animation_system AnimationSystem;
|
||||||
event_log* GlobalLog;
|
log_buffer GlobalLog;
|
||||||
animation_pattern_array Patterns;
|
animation_pattern_array Patterns;
|
||||||
|
|
||||||
// Interface
|
// Interface
|
||||||
|
@ -93,7 +95,7 @@ LoadAssembly(gs_const_string Path, app_state* State, context Context)
|
||||||
State->Transient,
|
State->Transient,
|
||||||
Context,
|
Context,
|
||||||
Path,
|
Path,
|
||||||
State->GlobalLog);
|
&State->GlobalLog);
|
||||||
}
|
}
|
||||||
|
|
||||||
#include "engine/user_space.cpp"
|
#include "engine/user_space.cpp"
|
||||||
|
@ -117,6 +119,7 @@ EndCurrentOperationMode(app_state* State)
|
||||||
#include "editor/panels/foldhaus_panel_animation_timeline.h"
|
#include "editor/panels/foldhaus_panel_animation_timeline.h"
|
||||||
#include "editor/panels/foldhaus_panel_hierarchy.h"
|
#include "editor/panels/foldhaus_panel_hierarchy.h"
|
||||||
#include "editor/panels/foldhaus_panel_assembly_debug.h"
|
#include "editor/panels/foldhaus_panel_assembly_debug.h"
|
||||||
|
#include "editor/panels/foldhaus_panel_message_log.h"
|
||||||
|
|
||||||
#include "editor/panels/foldhaus_panel_types.cpp"
|
#include "editor/panels/foldhaus_panel_types.cpp"
|
||||||
|
|
||||||
|
|
|
@ -42,8 +42,5 @@ PushLogEntry(event_log* Log, gs_string Message, log_entry_type Type)
|
||||||
NewEntry->Type = Type;
|
NewEntry->Type = Type;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#define FOLDHAUS_LOG_H
|
#define FOLDHAUS_LOG_H
|
||||||
#endif // FOLDHAUS_LOG_H
|
#endif // FOLDHAUS_LOG_H
|
|
@ -69,14 +69,11 @@ DEBUG_AppendText(gs_string Str, gs_thread_context Ctx)
|
||||||
internal void
|
internal void
|
||||||
DEBUG_SentMotorCommand(motor_packet Packet, gs_thread_context Ctx)
|
DEBUG_SentMotorCommand(motor_packet Packet, gs_thread_context Ctx)
|
||||||
{
|
{
|
||||||
gs_string Str = PushStringF(Ctx.Transient, 256, "Motor Command Sent\nRequested Positions: %d %d %d\n",
|
Log_Message(GlobalLogBuffer,
|
||||||
|
"Motor Command Sent\nRequested Positions: %d %d %d\n",
|
||||||
Packet.FlowerPositions[0],
|
Packet.FlowerPositions[0],
|
||||||
Packet.FlowerPositions[1],
|
Packet.FlowerPositions[1],
|
||||||
Packet.FlowerPositions[2]);
|
Packet.FlowerPositions[2]);
|
||||||
DEBUG_AppendText(Str, Ctx);
|
|
||||||
|
|
||||||
NullTerminate(&Str);
|
|
||||||
OutputDebugStringA(Str.Str);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
internal void
|
internal void
|
||||||
|
@ -90,25 +87,20 @@ DEBUG_ReceivedMotorPositions(motor_packet NewPos,
|
||||||
|
|
||||||
if (PosChanged)
|
if (PosChanged)
|
||||||
{
|
{
|
||||||
gs_string Str = PushStringF(Ctx.Transient, 256, "Motor Status Received\nCurrent Positions: %d %d %d\n",
|
Log_Message(GlobalLogBuffer,
|
||||||
|
"Motor Status Received\nCurrent Positions: %d %d %d\n",
|
||||||
NewPos.FlowerPositions[0],
|
NewPos.FlowerPositions[0],
|
||||||
NewPos.FlowerPositions[1],
|
NewPos.FlowerPositions[1],
|
||||||
NewPos.FlowerPositions[2]);
|
NewPos.FlowerPositions[2]);
|
||||||
DEBUG_AppendText(Str, Ctx);
|
|
||||||
|
|
||||||
NullTerminate(&Str);
|
|
||||||
OutputDebugStringA(Str.Str);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
internal void
|
internal void
|
||||||
DEBUG_ReceivedTemperature(temp_packet Temp, gs_thread_context Ctx)
|
DEBUG_ReceivedTemperature(temp_packet Temp, gs_thread_context Ctx)
|
||||||
{
|
{
|
||||||
gs_string TempStr = PushStringF(Ctx.Transient, 256,
|
Log_Message(GlobalLogBuffer,
|
||||||
"\nTemperature: %d\n",
|
"\nTemperature: %d\n",
|
||||||
Temp.Temperature);
|
Temp.Temperature);
|
||||||
NullTerminate(&TempStr);
|
|
||||||
OutputDebugStringA(TempStr.Str);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
internal void
|
internal void
|
||||||
|
@ -136,13 +128,13 @@ BlumenLumen_MicListenJob(gs_thread_context* Ctx, u8* UserData)
|
||||||
Data->IsConnected = false;
|
Data->IsConnected = false;
|
||||||
if (SocketHandleIsValid(ListenSocket))
|
if (SocketHandleIsValid(ListenSocket))
|
||||||
{
|
{
|
||||||
OutputDebugStringA("Disconnected from Python Server\n");
|
Log_Message(GlobalLogBuffer, "Disconnected from Python Server\n");
|
||||||
CloseSocket(Data->SocketManager, ListenSocket);
|
CloseSocket(Data->SocketManager, ListenSocket);
|
||||||
}
|
}
|
||||||
ListenSocket = CreateSocket(Data->SocketManager, "127.0.0.1", "20185");
|
ListenSocket = CreateSocket(Data->SocketManager, "127.0.0.1", "20185");
|
||||||
if (ListenSocket.Index != 0)
|
if (ListenSocket.Index != 0)
|
||||||
{
|
{
|
||||||
OutputDebugStringA("Connected to Python Server\n");
|
Log_Message(GlobalLogBuffer, "Connected to Python Server\n");
|
||||||
Data->IsConnected = true;
|
Data->IsConnected = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue