mirror of
https://gitlab.com/Nanolx/homebrewfilter.git
synced 2024-12-25 00:51:48 +01:00
added basic support for WifiGecko
This commit is contained in:
parent
782f594296
commit
3670bbb712
Binary file not shown.
@ -11,6 +11,7 @@
|
||||
#include "Network/network.h"
|
||||
#include "Network/update.h"
|
||||
#include "Network/tcp.h"
|
||||
#include "Network/wifi_gecko.h"
|
||||
|
||||
/*** Extern variables ***/
|
||||
extern GuiWindow * mainWindow;
|
||||
@ -617,6 +618,7 @@ int MenuMain()
|
||||
|
||||
bool next_page = false;
|
||||
bool previous_page = false;
|
||||
bool first = false;
|
||||
|
||||
while(menu == MENU_NONE)
|
||||
{
|
||||
@ -659,6 +661,18 @@ int MenuMain()
|
||||
ResumeTcpThread();
|
||||
if(boot_buffer)
|
||||
menu = MENU_EXIT;
|
||||
|
||||
if(!first)
|
||||
{
|
||||
WifiGecko_Connect();
|
||||
wifi_printf("The HomebrewFilter rev%i\n", SvnRev());
|
||||
usleep(500);
|
||||
wifi_printf("= == == == == == == == =\n");
|
||||
usleep(500);
|
||||
wifi_printf(" Wifi Gecko connected.");
|
||||
first = true;
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
network_Btn.SetImage(&network_BtnImg);
|
||||
|
113
main/source/Network/wifi_gecko.c
Normal file
113
main/source/Network/wifi_gecko.c
Normal file
@ -0,0 +1,113 @@
|
||||
/****************************************************************************
|
||||
* Copyright (C) 2010
|
||||
* by Dimok
|
||||
*
|
||||
* This software is provided 'as-is', without any express or implied
|
||||
* warranty. In no event will the authors be held liable for any
|
||||
* damages arising from the use of this software.
|
||||
*
|
||||
* Permission is granted to anyone to use this software for any
|
||||
* purpose, including commercial applications, and to alter it and
|
||||
* redistribute it freely, subject to the following restrictions:
|
||||
*
|
||||
* 1. The origin of this software must not be misrepresented; you
|
||||
* must not claim that you wrote the original software. If you use
|
||||
* this software in a product, an acknowledgment in the product
|
||||
* documentation would be appreciated but is not required.
|
||||
*
|
||||
* 2. Altered source versions must be plainly marked as such, and
|
||||
* must not be misrepresented as being the original software.
|
||||
*
|
||||
* 3. This notice may not be removed or altered from any source
|
||||
* distribution.
|
||||
*
|
||||
* for WiiXplorer 2010
|
||||
***************************************************************************/
|
||||
#include <stdarg.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <unistd.h>
|
||||
#include <network.h>
|
||||
|
||||
#define DESTINATION_IP "10.0.0.6"
|
||||
#define DESTINATION_PORT 4405
|
||||
|
||||
static int connection = -1;
|
||||
|
||||
void WifiGecko_Close()
|
||||
{
|
||||
if(connection >= 0)
|
||||
net_close(connection);
|
||||
|
||||
connection = -1;
|
||||
}
|
||||
|
||||
int WifiGecko_Connect()
|
||||
{
|
||||
if(connection >= 0)
|
||||
return connection;
|
||||
|
||||
connection = net_socket(AF_INET, SOCK_DGRAM, IPPROTO_IP);
|
||||
if (connection < 0)
|
||||
return connection;
|
||||
|
||||
struct sockaddr_in connect_addr;
|
||||
memset(&connect_addr, 0, sizeof(connect_addr));
|
||||
connect_addr.sin_family = AF_INET;
|
||||
connect_addr.sin_port = htons(DESTINATION_PORT);
|
||||
inet_aton(DESTINATION_IP, &connect_addr.sin_addr);
|
||||
|
||||
if(net_connect(connection, (struct sockaddr*)&connect_addr, sizeof(connect_addr)) < 0)
|
||||
{
|
||||
WifiGecko_Close();
|
||||
return -1;
|
||||
}
|
||||
|
||||
return connection;
|
||||
}
|
||||
|
||||
int WifiGecko_Send(const char * data, int datasize)
|
||||
{
|
||||
if(WifiGecko_Connect() < 0)
|
||||
return connection;
|
||||
|
||||
int ret = 0, done = 0, blocksize = 1024;
|
||||
|
||||
while (done < datasize)
|
||||
{
|
||||
if(blocksize > datasize-done)
|
||||
blocksize = datasize-done;
|
||||
|
||||
ret = net_send(connection, data+done, blocksize, 0);
|
||||
if (ret < 0)
|
||||
{
|
||||
WifiGecko_Close();
|
||||
return ret;
|
||||
}
|
||||
else if(ret == 0)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
done += ret;
|
||||
usleep (1000);
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
void wifi_printf(const char * format, ...)
|
||||
{
|
||||
char * tmp = NULL;
|
||||
va_list va;
|
||||
va_start(va, format);
|
||||
if((vasprintf(&tmp, format, va) >= 0) && tmp)
|
||||
{
|
||||
WifiGecko_Send(tmp, strlen(tmp));
|
||||
}
|
||||
va_end(va);
|
||||
|
||||
if(tmp)
|
||||
free(tmp);
|
||||
}
|
42
main/source/Network/wifi_gecko.h
Normal file
42
main/source/Network/wifi_gecko.h
Normal file
@ -0,0 +1,42 @@
|
||||
/****************************************************************************
|
||||
* Copyright (C) 2010
|
||||
* by Dimok
|
||||
*
|
||||
* This software is provided 'as-is', without any express or implied
|
||||
* warranty. In no event will the authors be held liable for any
|
||||
* damages arising from the use of this software.
|
||||
*
|
||||
* Permission is granted to anyone to use this software for any
|
||||
* purpose, including commercial applications, and to alter it and
|
||||
* redistribute it freely, subject to the following restrictions:
|
||||
*
|
||||
* 1. The origin of this software must not be misrepresented; you
|
||||
* must not claim that you wrote the original software. If you use
|
||||
* this software in a product, an acknowledgment in the product
|
||||
* documentation would be appreciated but is not required.
|
||||
*
|
||||
* 2. Altered source versions must be plainly marked as such, and
|
||||
* must not be misrepresented as being the original software.
|
||||
*
|
||||
* 3. This notice may not be removed or altered from any source
|
||||
* distribution.
|
||||
*
|
||||
* for WiiXplorer 2010
|
||||
***************************************************************************/
|
||||
#ifndef WIFI_GECKO_H_
|
||||
#define WIFI_GECKO_H_
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
int WifiGecko_Connect();
|
||||
void WifiGecko_Close();
|
||||
int WifiGecko_Send(const char * data, int datasize);
|
||||
void wifi_printf(const char * format, ...);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
Loading…
Reference in New Issue
Block a user