00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032 #ifdef __cplusplus
00033 extern "C" {
00034 #endif
00035
00036 struct hdhomerun_local_ip_info_t {
00037 uint32_t ip_addr;
00038 uint32_t subnet_mask;
00039 };
00040
00041 extern LIBTYPE int hdhomerun_local_ip_info(struct hdhomerun_local_ip_info_t ip_info_list[], int max_count);
00042
00043 #define HDHOMERUN_SOCK_INVALID -1
00044
00045 typedef int hdhomerun_sock_t;
00046
00047 extern LIBTYPE hdhomerun_sock_t hdhomerun_sock_create_udp(void);
00048 extern LIBTYPE hdhomerun_sock_t hdhomerun_sock_create_tcp(void);
00049 extern LIBTYPE void hdhomerun_sock_destroy(hdhomerun_sock_t sock);
00050
00051 extern LIBTYPE int hdhomerun_sock_getlasterror(void);
00052 extern LIBTYPE uint32_t hdhomerun_sock_getsockname_addr(hdhomerun_sock_t sock);
00053 extern LIBTYPE uint16_t hdhomerun_sock_getsockname_port(hdhomerun_sock_t sock);
00054 extern LIBTYPE uint32_t hdhomerun_sock_getpeername_addr(hdhomerun_sock_t sock);
00055 extern LIBTYPE uint32_t hdhomerun_sock_getaddrinfo_addr(hdhomerun_sock_t sock, const char *name);
00056
00057 extern LIBTYPE bool_t hdhomerun_sock_bind(hdhomerun_sock_t sock, uint32_t local_addr, uint16_t local_port, bool_t allow_reuse);
00058 extern LIBTYPE bool_t hdhomerun_sock_connect(hdhomerun_sock_t sock, uint32_t remote_addr, uint16_t remote_port, uint64_t timeout);
00059
00060 extern LIBTYPE bool_t hdhomerun_sock_send(hdhomerun_sock_t sock, const void *data, size_t length, uint64_t timeout);
00061 extern LIBTYPE bool_t hdhomerun_sock_sendto(hdhomerun_sock_t sock, uint32_t remote_addr, uint16_t remote_port, const void *data, size_t length, uint64_t timeout);
00062
00063 extern LIBTYPE bool_t hdhomerun_sock_recv(hdhomerun_sock_t sock, void *data, size_t *length, uint64_t timeout);
00064 extern LIBTYPE bool_t hdhomerun_sock_recvfrom(hdhomerun_sock_t sock, uint32_t *remote_addr, uint16_t *remote_port, void *data, size_t *length, uint64_t timeout);
00065
00066 #ifdef __cplusplus
00067 }
00068 #endif