summaryrefslogtreecommitdiffstats
path: root/friendfinder
diff options
context:
space:
mode:
authorPatrick Hornecker2009-12-28 16:46:45 +0100
committerPatrick Hornecker2009-12-28 16:46:45 +0100
commit4836c94e6893a52340a77164940f3f1e029af5ea (patch)
treed9a7d0b3cf57994bcdeba509c8e0b4344746e53e /friendfinder
parenta little fix, can now be built again (diff)
downloadfriendfinder-4836c94e6893a52340a77164940f3f1e029af5ea.tar.gz
friendfinder-4836c94e6893a52340a77164940f3f1e029af5ea.tar.xz
friendfinder-4836c94e6893a52340a77164940f3f1e029af5ea.zip
changes in receiver, sender and gui
Diffstat (limited to 'friendfinder')
-rw-r--r--friendfinder/gui.c76
-rw-r--r--friendfinder/gui.h7
-rw-r--r--friendfinder/handler.c11
-rw-r--r--friendfinder/msg_sender.c32
-rw-r--r--friendfinder/receiver.c39
-rw-r--r--friendfinder/receiver.h7
-rw-r--r--friendfinder/sender.c19
7 files changed, 105 insertions, 86 deletions
diff --git a/friendfinder/gui.c b/friendfinder/gui.c
index 0a39335..647ef28 100644
--- a/friendfinder/gui.c
+++ b/friendfinder/gui.c
@@ -6,9 +6,9 @@
#include "Elementary.h"
#include "msg_sender.h"
+#include "receiver.h"
#include "gui.h"
#include "handler.h"
-#include "receiver.h"
#include "sender.h"
int h= 600;
@@ -20,7 +20,7 @@ time_t now;
const char* msg_text;
char *from, *to, *current_msg, *last_msg;
-static Evas_Object *win, *bbx;
+static Evas_Object *win, *bbx, *map;
static void on_cancel(void *data, Evas_Object *obj, void *event_info)
{
@@ -168,6 +168,14 @@ char* get_current_time()
return text;
}
+void print_users(struct position *pos)
+{
+ Evas_Object *ic;
+
+ elm_icon_add(map);
+ elm_icon_file_set(ic, "data/sl_bt_0.png", NULL);
+ evas_object_show(ic);
+}
/* sets the username, time-text and the text in the bubble */
void set_bubble_text(Evas_Object *bb, char *username, char *text)
@@ -302,29 +310,29 @@ void init_options()
init_toolbar(bg);
bx = elm_box_add(win);
- evas_object_size_hint_weight_set(bx, 1.0, 1.0);
+ evas_object_size_hint_weight_set(bx, 1.0, 0.2);
evas_object_size_hint_align_set(bx, -1.0, -1.0);
evas_object_resize(bx, w, h);
evas_object_show(bx);
bx2 = elm_box_add(win);
elm_box_horizontal_set(bx2, 1);
- evas_object_size_hint_weight_set(bx2, 1.0, 0.0);
+ evas_object_size_hint_weight_set(bx2, 1.0, 1.0);
evas_object_size_hint_align_set(bx2, -1.0, -1.0);
elm_box_pack_end(bx, bx2);
evas_object_show(bx2);
-
+/*
bt = elm_button_add(win);
elm_button_label_set(bt, "Find friends");
- evas_object_size_hint_weight_set(bt, 1.0, 0.0);
+ evas_object_size_hint_weight_set(bt, 1.0, 0.2);
evas_object_size_hint_align_set(bt, -1.0, -1.0);
elm_box_pack_end(bx, bt);
evas_object_smart_callback_add(bt, "clicked", NULL, NULL);
evas_object_show(bt);
-
+*/
bt2 = elm_button_add(win);
elm_button_label_set(bt2, "Send own position");
- evas_object_size_hint_weight_set(bt2, 1.0, 0.0);
+ evas_object_size_hint_weight_set(bt2, 1.0, 0.2);
evas_object_size_hint_align_set(bt2, -1.0, -1.0);
elm_box_pack_end(bx, bt2);
evas_object_smart_callback_add(bt2, "clicked", on_own_position, NULL);
@@ -332,7 +340,7 @@ void init_options()
bt3 = elm_button_add(win);
elm_button_label_set(bt3, "Show other users");
- evas_object_size_hint_weight_set(bt3, 1.0, 0.0);
+ evas_object_size_hint_weight_set(bt3, 1.0, 0.2);
evas_object_size_hint_align_set(bt3, -1.0, -1.0);
elm_box_pack_end(bx, bt3);
evas_object_smart_callback_add(bt3, "clicked", on_show_users, NULL);
@@ -341,7 +349,7 @@ void init_options()
void init_map()
{
- Evas_Object *bg, *bx, *bx2, *bx3, *map, *bt1, *bt2, *bt3;
+ Evas_Object *bg, *bx, *bx2, *bx3, *bt;
/* add a standard bg */
bg = elm_bg_add(win);
@@ -359,9 +367,9 @@ void init_map()
evas_object_show(bx);
bx2 = elm_box_add(win);
- evas_object_size_hint_weight_set(bx2, 1.0, 0.0);
+ evas_object_size_hint_weight_set(bx2, 0.5, 0.2);
evas_object_size_hint_align_set(bx2, -1.0, -1.0);
- evas_object_resize(bx2, w*1.3, h*0.7);
+ evas_object_resize(bx2, w*1.3, h*0.5);
elm_box_pack_end(bx, bx2);
evas_object_show(bx2);
@@ -369,41 +377,31 @@ void init_map()
elm_box_horizontal_set(bx2, 1);
evas_object_size_hint_weight_set(bx3, 1.0, 0.0);
evas_object_size_hint_align_set(bx3, -1.0, 0.0);
- evas_object_resize(bx3, w*0.9, h*0.2);
+ evas_object_resize(bx3, w*0.9, h*0.1);
elm_box_pack_end(bx, bx3);
evas_object_show(bx3);
map = e_smart_map_add(win, "data/maps/fr_map.eet");
e_smart_map_set_pos(map, 47.996578,7.840171);
- evas_object_size_hint_min_set(map, w-2*8, h-10*8-40);
- evas_object_size_hint_max_set(map, w-2*8, h-10*8-40);
- //evas_object_resize(map, w*0.92, h*0.7);
+ evas_object_size_hint_min_set(map, w-2*8, h-10*8-60);
+ evas_object_size_hint_max_set(map, w-2*8, h-10*8-120);
+// evas_object_resize(map, w, h*0.7);
elm_box_pack_end(bx2, map);
- evas_object_show(map);
+// evas_object_show(map);
- bt1 = elm_button_add(win);
- elm_button_label_set(bt1, "Show friends");
- evas_object_size_hint_weight_set(bt1, 1.0, 1.0);
- evas_object_size_hint_align_set(bt1, -1.0, -1.0);
- elm_box_pack_end(bx3, bt1);
- evas_object_smart_callback_add(bt1, "clicked", NULL, NULL);
- evas_object_show(bt1);
-
- bt2 = elm_button_add(win);
- elm_button_label_set(bt2, "Hide friends");
- evas_object_size_hint_weight_set(bt2, 1.0, 1.0);
- evas_object_size_hint_align_set(bt2, -1.0, -1.0);
- elm_box_pack_end(bx3, bt2);
- evas_object_smart_callback_add(bt2, "clicked", NULL, NULL);
- evas_object_show(bt2);
+ Evas_Object *ic;
- bt3 = elm_button_add(win);
- elm_button_label_set(bt3, "Exit");
- evas_object_size_hint_weight_set(bt3, 1.0, 1.0);
- evas_object_size_hint_align_set(bt3, -1.0, -1.0);
- elm_box_pack_end(bx3, bt3);
- evas_object_smart_callback_add(bt3, "clicked", on_cancel, NULL);
- evas_object_show(bt3);
+ elm_icon_add(map);
+ elm_icon_file_set(ic, "data/sl_bt_0.png", NULL);
+// evas_object_show(ic);
+
+ bt = elm_button_add(win);
+ elm_button_label_set(bt, "Exit");
+ evas_object_size_hint_weight_set(bt, 1.0, 1.0);
+ evas_object_size_hint_align_set(bt, -1.0, -1.0);
+ elm_box_pack_end(bx3, bt);
+ evas_object_smart_callback_add(bt, "clicked", on_cancel, NULL);
+ evas_object_show(bt);
}
void init_buttons(Evas_Object *box)
diff --git a/friendfinder/gui.h b/friendfinder/gui.h
index fec52e2..67235c3 100644
--- a/friendfinder/gui.h
+++ b/friendfinder/gui.h
@@ -1,10 +1,13 @@
#ifndef __GUI_H_
#define __GUI_H_
+#include "receiver.h"
+#include "Evas.h"
//structs
//typedef struct _ginfo ginfo;
//callback functions
+/*
static void on_cancel(void *data, Evas_Object *obj, void *event_info);
static void on_send_message(void *data, Evas_Object *obj, void *event_info);
static void on_own_position(void *data, Evas_Object *obj, void *event_info);
@@ -13,12 +16,14 @@ static void on_message(void *data, Evas_Object *obj, void *event_info);
static void on_options(void *data, Evas_Object *obj, void *event_info);
static void on_chat(void *data, Evas_Object *obj, void *event_info);
static void on_map(void *data, Evas_Object *obj, void *event_info);
-
+*/
//other functions
void set_bubble_text(Evas_Object *bb, char *username, char *text);
void show_message(char *current_msg);
char* get_current_time();
+void print_users(struct position* pos);
+
//init functions
void init_options();
void init_window_parts();
diff --git a/friendfinder/handler.c b/friendfinder/handler.c
index 8d15ed7..fad9b8b 100644
--- a/friendfinder/handler.c
+++ b/friendfinder/handler.c
@@ -15,19 +15,26 @@ void init_msg_thread(char *from, char *to)
nicknames->to = to;
pthread_create(&msg_thread, NULL, msg_main_loop, (void*) nicknames);
+
+ printf("HANDLER: msg thread init...\n");
}
void init_receiver_thread(char *from)
{
- pthread_create(&sender_thread, NULL, sender_main, (void*) from);
+ pthread_create(&receiver_thread, NULL, receiver_main, (void*) from);
+
+ printf("HANDLER: receiver thread init...\n");
}
void init_sender_thread(char *from)
{
- pthread_create(&receiver_thread, NULL, receiver_main, (void*) from);
+ pthread_create(&sender_thread, NULL, sender_main, (void*) from);
+
+ printf("HANDLER: sender thread init...\n");
}
void close_threads()
{
pthread_exit(NULL);
+ printf("HANDLER: all threads are closed...\n");
}
diff --git a/friendfinder/msg_sender.c b/friendfinder/msg_sender.c
index 4994ce2..e9b4d7a 100644
--- a/friendfinder/msg_sender.c
+++ b/friendfinder/msg_sender.c
@@ -16,7 +16,7 @@ char* received_msg;
char* msg_to_send;
irc_dcc_t dccid;
-irc_dcc_t buddy_dccid;
+irc_dcc_t buddy_dccid = 1;
BF_KEY key;
@@ -55,7 +55,6 @@ void set_txt_msg(char *msg)
{
if (msg != NULL)
{
- printf("input msg_sender: %s \n", msg);
send_message(session, msg);
}
}
@@ -67,13 +66,7 @@ void dump_message(char *msg)
void dcc_recv_callback (irc_session_t * session, irc_dcc_t id, int status, void * ctx, const char * data, unsigned int length)
{
-
- if( run_session = 0)
- {
- irc_run(session);
- run_session = 1;
- }
-
+ printf("dcc_recv_callback() \n");
switch (status)
{
case LIBIRC_ERR_CLOSED:
@@ -101,7 +94,6 @@ void dcc_recv_callback (irc_session_t * session, irc_dcc_t id, int status, void
printf ("MSG_SENDER: DCC %d: error %s\n", id, irc_strerror(status));
break;
}
- irc_cmd_quit(session, "dcc_recv_callback: 99");
}
int i = 0;
@@ -119,22 +111,19 @@ void send_message(irc_session_t *session, char *msg)
BF_ecb_encrypt(msg, crypted_msg, &key, BF_ENCRYPT);
- if ( run_session == 0)
+ int i = irc_dcc_msg(session, buddy_dccid, crypted_msg);
+
+ if (i == 0)
{
- irc_run(session);
- run_session = 1;
+ printf("MSG_SENDER: message '%s' sent successful \n", msg);
}
-
- irc_dcc_msg(session, buddy_dccid, crypted_msg);
- //TODO: irc_cmd_quit an richtiger stelle einbauen und ablaufen checken!!!
- irc_cmd_quit(session, "send_message()");
}
else return;
}
void on_join(irc_session_t * session, const char * event, const char * origin, const char ** params, unsigned int count)
{
-// printf("on_join()\n");
+ printf("on_join()\n");
char sender_name[90];
@@ -178,11 +167,10 @@ void on_channel(irc_session_t * session, const char * event, const char * origin
buddy_dccid = atoi(params[1]);
printf("MSG_SENDER: buddy_dccid: %d \n", buddy_dccid);
}
-// irc_cmd_quit(session, "continue");
}
void on_dcc_req(irc_session_t * session, const char * event, const char * origin, const char ** params, unsigned int count)
{
-// printf("on_dcc_req()\n");
+ printf("on_dcc_req()\n");
if(irc_dcc_accept (session, 1, 0, dcc_recv_callback) != 0)
{
printf("MSG_SENDER: ddc_chat_decline \n");
@@ -192,7 +180,6 @@ void on_dcc_req(irc_session_t * session, const char * event, const char * origin
{
printf("MSG_SENDER: dcc_chat_accepted \n");
}
-// irc_cmd_quit(session, "continue");
}
@@ -213,7 +200,6 @@ void msg_main_loop(void *nicknames)
if (init_connection("127.0.0.1", nick_from) == 0)
{
printf("MSG_SENDER: connection succesfull\n");
+ irc_run(session);
}
-
- irc_run(session);
}
diff --git a/friendfinder/receiver.c b/friendfinder/receiver.c
index 10a7d94..d50b9ff 100644
--- a/friendfinder/receiver.c
+++ b/friendfinder/receiver.c
@@ -5,6 +5,7 @@
#include <libircclient/libircclient.h>
#include "openssl/blowfish.h"
+#include "gui.h"
static irc_session_t *session;
irc_callbacks_t callbacks;
@@ -43,15 +44,16 @@ void disconnect_receiver()
printf("RECEIVER: disconnected...\n");
}
-char* dump_event (irc_session_t * session, const char * event, const char * origin, const char ** params, unsigned int count)
+void dump_data(char* lat, char* lon, char* nick)
{
- char* msg = " ";
-
- //msg = params[2];
- //printf("%c: \n",params[2]);
-
-
- return msg;
+ /*
+ struct postion *pos = (struct postion*) malloc(sizeof(struct position));
+ pos->lat = lat;
+ pos->lon = lon;
+ pos->nick = nick;
+
+ print_users(pos);
+ */
}
void get_position(irc_session_t * session, const char * event, const char * origin, const char ** params, unsigned int count)
@@ -60,9 +62,12 @@ void get_position(irc_session_t * session, const char * event, const char * orig
char *decrypted_lat = (char*) malloc(sizeof(params[1]));
char *decrypted_lon = (char*) malloc(sizeof(params[1]));
+ decrypted_lat = NULL;
+ decrypted_lon = NULL;
+
irc_target_get_nick(origin, sender_name, sizeof(sender_name));
- if (sender_name != NULL && strcmp(sender_name, "sender") == 1)
+ if (sender_name != NULL && strcmp(sender_name, "_s") == 1)
{
//first message is the ret param, which is needed for message decryption
@@ -84,8 +89,13 @@ void get_position(irc_session_t * session, const char * event, const char * orig
printf("RECEIVER: lon %s , origin: %s \n", decrypted_lon, sender_name);
printf("====\n");
}
-
- //send an aknowledge to the sender (=sendername, to differ between multiple sender)
+
+ if(decrypted_lon != NULL && decrypted_lat != NULL)
+ {
+ dump_data(decrypted_lat, decrypted_lon, sender_name);
+ decrypted_lon = NULL;
+ decrypted_lat = NULL;
+ }
// if (strcmp(params[1], "128") != 0)
{
irc_cmd_msg(session, "#test", sender_name);
@@ -101,7 +111,7 @@ void get_position(irc_session_t * session, const char * event, const char * orig
void on_connect_receiver(irc_session_t * session, const char * event, const char * origin, const char ** params, unsigned int count)
{
- printf("on_connect_receiver");
+ printf("RECEIVER: on_connect_receiver \n");
BF_set_key(&key, 5, "abcde");
irc_cmd_join(session, "#test", NULL);
@@ -116,8 +126,11 @@ void receiver_main(void *user)
callbacks.event_connect = on_connect_receiver;
char *username = (char*) user;
-
+ //TODO pointer zeigt immer auf gleiche variable....damit wird immer gleicher from wert genutzt und _r _s angehängt....fixen
+ strcat(username, "_r");
+
init_connection_receiver("127.0.0.1", username);
irc_run(session);
+ printf("done\n");
}
diff --git a/friendfinder/receiver.h b/friendfinder/receiver.h
index 2398cbc..bc3f9eb 100644
--- a/friendfinder/receiver.h
+++ b/friendfinder/receiver.h
@@ -1,6 +1,13 @@
#ifndef __GUI_H_
#define __GUI_H_
+struct position
+{
+ char *nick;
+ char *lat;
+ char *lon;
+};
+
/* calls main for receiver */
void receiver_main(void *user);
diff --git a/friendfinder/sender.c b/friendfinder/sender.c
index 3719ded..6652afb 100644
--- a/friendfinder/sender.c
+++ b/friendfinder/sender.c
@@ -23,7 +23,7 @@ int init_connection_sender(char* server_ip, char* user)
printf("SENDER: initialising connection...\n");
session = irc_create_session(&callbacks);
- int con = irc_connect(session, server_ip, 6667, NULL, user, user, user);
+ int con = irc_connect(session, server_ip, 6669, NULL, user, user, user);
if (irc_is_connected(session) == 1)
{
@@ -68,7 +68,8 @@ void send_position(irc_session_t * session, const char * event, const char * ori
{
BF_set_key(&key, 5, "abcde");
- irc_cmd_join(session, "#test", NULL);
+ irc_cmd_join(session, "#test", NULL);
+ irc_cmd_msg(session, "#test", "connected");
}
for(int i = 0; i < 2; i++)
@@ -86,9 +87,6 @@ void send_position(irc_session_t * session, const char * event, const char * ori
BF_ecb_encrypt(lat_char, crypted_lat, &key, BF_ENCRYPT);
BF_ecb_encrypt(lon_char, crypted_lon, &key, BF_ENCRYPT);
-
- BF_ecb_encrypt(crypted_lat, lat_char, &key, BF_DECRYPT);
- printf("self-test: %s \n", lat_char);
int _x = irc_cmd_msg(session, "#test", crypted_lat);
int _y = irc_cmd_msg(session, "#test", crypted_lon);
@@ -124,7 +122,7 @@ void send_position(irc_session_t * session, const char * event, const char * ori
void get_aknowledge(irc_session_t * session, const char * event, const char * origin, const char ** params, unsigned int count)
{
- if(strcmp(params[1], nick) == 0)
+ if(strcmp(params[1], "_r") > 0)
{
//use count variable, to count number of aknowledged positions! second number has to be twice as big, as the number of
//for-runs in send_position
@@ -150,9 +148,14 @@ void sender_main(void *user)
callbacks.event_channel = get_aknowledge;
char *username = (char*)user;
+ //TODO pointer zeigt immer auf gleiche variable....damit wird immer gleicher from wert genutzt und _r _s angehängt....fixen
+ strcat(username, "_s");
- init_connection_sender("127.0.0.1", username);
+ if (init_connection_sender("127.0.0.1", username) == 0)
+ {
+ printf("SENDER: connection succesfull...\n");
- irc_run(session);
+ irc_run(session);
+ }
}