Implement basic UDP broadcast/discovery

This commit is contained in:
2024-11-05 00:57:12 +08:00
parent 1b5e58d95a
commit 9114ea6691
3 changed files with 192 additions and 1 deletions
+23 -1
View File
@@ -4,16 +4,20 @@
#include "texture.h"
#include "audio.h"
#include "net.h"
#include "log.h"
#define SCREEN_WIDTH 640
#define SCREEN_HEIGHT 480
#define PORT 55555
typedef enum {
SELECTING_DEVICE,
RECORDING,
RECORDED,
PLAYBACK,
SOCKET,
} application_state;
typedef struct {
@@ -45,7 +49,7 @@ int main(int argc, char* argv[])
char default_fmt[] = "Device selected: %i";
state state;
state.application_state = SELECTING_DEVICE;
state.application_state = SOCKET;
if (!audio_init(&state.audio)) return 1;
state.device_index = -1;
state.update_ui = 0;
@@ -203,6 +207,17 @@ int handle_input(SDL_Event* event, state* state)
}
break;
case SOCKET:
switch (keysym) {
case SDLK_1:
log_message(LOG_INFO, "Socket button 1 pressed");
net_broadcast();
break;
case SDLK_2:
log_message(LOG_INFO, "Socket button 2 pressed");
net_listen_clients();
break;
}
}
return 1;
}
@@ -231,6 +246,8 @@ void handle_task(state* state)
}
break;
case SOCKET:
break;
}
}
@@ -261,6 +278,8 @@ int init()
return 0;
}
net_init(PORT);
return 1;
}
@@ -311,5 +330,8 @@ void application_state_to_string(application_state state, char* string)
case PLAYBACK:
sprintf(string, "Playing [ESC]: CANCEL");
break;
case SOCKET:
sprintf(string, "Socket");
break;
}
}