summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--friendfinder/barcode.pngbin355 -> 0 bytes
-rw-r--r--friendfinder/e_smart_map.c54
-rw-r--r--friendfinder/e_smart_map.h2
-rwxr-xr-xfriendfinder/guibin197297 -> 201845 bytes
-rw-r--r--friendfinder/gui.c7
-rw-r--r--friendfinder/key.pem2
-rw-r--r--friendfinder/receiver.c136
-rw-r--r--friendfinder/receiver.h10
8 files changed, 110 insertions, 101 deletions
diff --git a/friendfinder/barcode.png b/friendfinder/barcode.png
deleted file mode 100644
index 96d4e84..0000000
--- a/friendfinder/barcode.png
+++ /dev/null
Binary files differ
diff --git a/friendfinder/e_smart_map.c b/friendfinder/e_smart_map.c
index a248f2d..7f19a2e 100644
--- a/friendfinder/e_smart_map.c
+++ b/friendfinder/e_smart_map.c
@@ -49,7 +49,7 @@ struct bubble
static struct bubble *create_text_bubble(struct smart_map *smart, char *info, char *text)
{
struct bubble *bubble;
-
+
bubble = (struct bubble*)malloc(sizeof(struct bubble));
bubble->object.obj = elm_box_add(smart->win);
@@ -84,53 +84,31 @@ static struct bubble *create_text_bubble(struct smart_map *smart, char *info, ch
return bubble;
}
-void e_smart_map_overlay_set_bubble(Evas_Object *o, char *overlay, char *info, char *text, double lat, double lon, int flags, int type)
+void e_smart_map_overlay_set_bubble(Evas_Object *o, char *overlay, char *info, char *text, double lat, double lon, int flags)
{
struct smart_map *smart;
smart = evas_object_smart_data_get(o);
-
+
struct bubble *bb;
struct overlay_item *poi = malloc(sizeof(struct overlay_item));
bb = create_text_bubble(smart, info, text);
- if (type == 0)
- {
-
- poi->obj = &bb->object;
- poi->lat = lat;
- poi->lon = lon;
- poi->level_mask = flags;
+ poi->obj = &bb->object;
+ poi->lat = lat;
+ poi->lon = lon;
+ poi->level_mask = flags;
- struct map_overlay *ov = overlay_find_by_name(smart, overlay);
- if(ov == NULL)
- e_smart_map_add_overlay(o, overlay);
-
- ov = overlay_find_by_name(smart, overlay);
- if(ov == NULL)
- return;
+ struct map_overlay *ov = overlay_find_by_name(smart, overlay);
+ if(ov == NULL)
+ e_smart_map_add_overlay(o, overlay);
- overlay_add(smart, ov, poi);
- overlay_change_level(smart, smart->current_level);
- map_object_update(smart);
- }
+ ov = overlay_find_by_name(smart, overlay);
+ if(ov == NULL)
+ return;
- if (type == 1)
- {
- poi->obj = &bb->object;
- poi->lat = lat;
- poi->lon = lon;
- poi->level_mask = flags;
-
- struct map_overlay *ov = overlay_find_by_name(smart, overlay);
- if(ov == NULL)
- e_smart_map_add_overlay(o, overlay);
-
- ov = overlay_find_by_name(smart, overlay);
- if(ov == NULL)
- return;
-
- map_object_update(smart);
- }
+ overlay_add(smart, ov, poi);
+ overlay_change_level(smart, smart->current_level);
+ map_object_update(smart);
}
void e_smart_map_overlay_hide(Evas_Object *o, char *overlay)
diff --git a/friendfinder/e_smart_map.h b/friendfinder/e_smart_map.h
index 1bbb38f..1042878 100644
--- a/friendfinder/e_smart_map.h
+++ b/friendfinder/e_smart_map.h
@@ -12,7 +12,7 @@ void e_smart_map_set_pos(Evas_Object *o, double lat, double lon);
void e_smart_map_set_info(Evas_Object *o, const char *info);
void e_smart_map_get_pos(Evas_Object *o, double *lat, double *lon);
int e_smart_map_add_overlay(Evas_Object *map, char *name);
-void e_smart_map_overlay_set_bubble(Evas_Object *o, char *overlay, char *info, char *text, double lat, double lon, int flags, int type);
+void e_smart_map_overlay_set_bubble(Evas_Object *o, char *overlay, char *info, char *text, double lat, double lon, int flags);
void e_smart_map_overlay_hide(Evas_Object *o, char *overlay);
int e_smart_map_add_path(Evas_Object *o, struct polyline *_p);
diff --git a/friendfinder/gui b/friendfinder/gui
index 35a8a73..44cd972 100755
--- a/friendfinder/gui
+++ b/friendfinder/gui
Binary files differ
diff --git a/friendfinder/gui.c b/friendfinder/gui.c
index e26e1ba..30153c6 100644
--- a/friendfinder/gui.c
+++ b/friendfinder/gui.c
@@ -113,8 +113,6 @@ static void create_barcode(void *data, Evas_Object *obj, void *event_info)
if (img != NULL)
{
evas_object_del(img);
- //evas_object_hide(img);
- //free(img);
}
img = elm_image_add(win);
@@ -130,7 +128,6 @@ static void create_barcode(void *data, Evas_Object *obj, void *event_info)
static void on_keyenter(void *data, Evas_Object *obj, void *event_info)
{
-// key = (char*) malloc(sizeof(char) * sizeof(data));
key = elm_entry_entry_get(obj);
}
@@ -186,11 +183,9 @@ static void on_send_message(void *data, Evas_Object *bx3, void *event_info)
{
printf("on_send_message: %s\n", msg_text);
set_txt_msg(msg_text);
-// Evas_Object *bb;
if (msg_text != NULL)
{
-
if (first == 0 && enable_chat == 1)
{
bb = elm_bubble_add(bx3);
@@ -241,8 +236,6 @@ static void on_send_message(void *data, Evas_Object *bx3, void *event_info)
/* if message has been sent, print it in a bubble */
void show_message(char *current_msg)
{
-// Evas_Object *bb;
-
if (current_msg != NULL)
{
if (first == 0 && enable_chat == 1)
diff --git a/friendfinder/key.pem b/friendfinder/key.pem
index 17b16cb..f3a7a66 100644
--- a/friendfinder/key.pem
+++ b/friendfinder/key.pem
@@ -1 +1 @@
-sdasndjasdasdasdknasdlasndaslkdna0da
+abcdefghijk
diff --git a/friendfinder/receiver.c b/friendfinder/receiver.c
index 980f3a1..a33262c 100644
--- a/friendfinder/receiver.c
+++ b/friendfinder/receiver.c
@@ -10,18 +10,16 @@
static irc_session_t *session;
irc_callbacks_t callbacks;
-int counter = 0;
+
char sender_name[100];
char own_nickname[100];
-char *lat, *lon;
char *receiver_server_ip;
-char *last_sender;
-int sender_count = 0;
int username_length;
-int ret;
-int got_lat = 0;
-int got_lon = 0;
+
+struct sender **s_sender;
+int s_sender_size;
+
BF_KEY key;
void receiver_set_ip(char *_ip)
@@ -57,6 +55,25 @@ void disconnect_receiver()
printf("RECEIVER: disconnected...\n");
}
+int get_sender_array_pos(char* nick)
+{
+ for (int i = 0; i < s_sender_size; i++)
+ {
+ if (s_sender[i]->is_init == 1 && strcmp(s_sender[i]->nick, nick) == 0)
+ {
+ return i;
+ }
+
+ if (s_sender[i]->is_init == 0 && strcmp(s_sender[i]->nick, nick) != 0)
+ {
+ s_sender[i]->is_init = 1;
+ s_sender[i]->nick = nick;
+
+ return i;
+ }
+ }
+}
+
void dump_data(char* lat, char* lon, char* nick)
{
struct position *pos = (struct position*) malloc(sizeof(struct position));
@@ -64,94 +81,105 @@ void dump_data(char* lat, char* lon, char* nick)
pos->lon = lon;
pos->nick = nick;
- printf("RECEIVER: dump_data(lat: %s, lon: %s, nick %s) \n", lat, lon, nick);
-
draw_user(pos);
}
void get_position(irc_session_t * session, const char * event, const char * origin, const char ** params, unsigned int count)
{
-
-// int code = irc_cmd_names (session, "#test");
-// printf("%i \n", code);
- irc_send_raw (session, "WHO %s", "#test");
-
- char *decrypted_lat = (char*) malloc(sizeof(char) * 9);
- char *decrypted_lon = (char*) malloc(sizeof(char) * 9);
-
+ char *decrypted;
+
char *sender_org = (char*) malloc(username_length + 1);
irc_target_get_nick(origin, sender_name, sizeof(sender_name));
strncpy(sender_org, sender_name, username_length);
sender_org[username_length] = '\0';
- last_sender = (char*) malloc(strlen(sender_name));
- last_sender = sender_name;
-
- if (sender_name != NULL && strcmp(sender_org, own_nickname) != 0 && strcmp(sender_name, "_s") > 0 && strcmp(params[1], "connected") != 0)
+ if (strcmp(sender_org, own_nickname) != 0 && strcmp(sender_name, "_s") > 0 && strcmp(params[1], "connected") != 0
+ && strcmp(params[1], "ack") != 0)
{
- if (counter % 2 == 0 && strcmp(last_sender, sender_name) == 0 && sender_count <= 1)
+ int pos = get_sender_array_pos(sender_org);
+
+ if (s_sender[pos]->lat_set == 0)
{
- BF_ecb_encrypt(params[1], decrypted_lat, &key, BF_DECRYPT);
- decrypted_lat[8] = '\0';
- lat = decrypted_lat;
- got_lat = 1;
+ decrypted = (char*) malloc(sizeof(char) * 8);
+ BF_ecb_encrypt(params[1], decrypted, &key, BF_DECRYPT);
+ s_sender[pos]->lat = decrypted;
+ // printf("s_sender[%i]->lat: %s \n", pos, s_sender[pos]->lat);
+ s_sender[pos]->lat_set = 1;
}
-
- if (counter % 2 != 0 && strcmp(last_sender, sender_name) == 0 && sender_count <= 1)
+
+ else if (s_sender[pos]->lon_set == 0)
{
- BF_ecb_encrypt(params[1], decrypted_lon, &key, BF_DECRYPT);
- decrypted_lon[8] = '\0';
- lon = decrypted_lon;
- got_lon = 1;
+ decrypted = (char*) malloc(sizeof(char) * 8);
+ BF_ecb_encrypt(params[1], decrypted, &key, BF_DECRYPT);
+ s_sender[pos]->lon = decrypted;
+ // printf("s_sender[%i]->lon: %s \n", pos, s_sender[pos]->lon);
+ s_sender[pos]->lon_set = 1;
}
-
- if(got_lon == 1 && got_lat == 1 && lon != NULL && lat != NULL)
+
+ if(s_sender[pos]->lon_set == 1 && s_sender[pos]->lat_set == 1)// && lon != NULL && lat != NULL)
{
double _lat, _lon;
- _lat = atof(lat);
- _lon = atof(lon);
+ _lat = atof(s_sender[pos]->lat);
+ _lon = atof(s_sender[pos]->lon);
- if (_lat > _lon)
+ if (_lat > _lon && _lat == _lat && _lon == _lon)
{
- dump_data(lat, lon, sender_name);
+ dump_data(s_sender[pos]->lat, s_sender[pos]->lon, s_sender[pos]->nick);
}
- if (_lat < _lon)
+ if (_lat < _lon && _lat == _lat && _lon == _lon)
{
- dump_data(lon, lat, sender_name);
+ dump_data(s_sender[pos]->lon, s_sender[pos]->lat, s_sender[pos]->nick);
}
- got_lon = 0;
- got_lat = 0;
+ s_sender[pos]->lon_set = 0;
+ s_sender[pos]->lat_set = 0;
- free(decrypted_lon);
- free(decrypted_lat);
+ free(decrypted);
free(sender_org);
}
+
+ irc_cmd_msg(session, "#test", "ack");
+ }
+}
- if (sender_count == 1)
- sender_count = 0;
+void init_sender_struct(int number)
+{
+ s_sender = (struct sender(*)[number]) malloc(sizeof(struct sender*) * number);
+ s_sender_size = number;
- if (sender_count == 0)
- sender_count = 1;
+ for (int i = 0; i < number; i++)
+ {
+ s_sender[i] = (struct sender*) malloc(sizeof(struct sender));
+
+ s_sender[i]->nick = (char*) malloc(sizeof(char) * 20);
+ s_sender[i]->lat = (char*) malloc(sizeof(char) * 9);
+ s_sender[i]->lon = (char*) malloc(sizeof(char) * 9);
+
+ s_sender[i]->is_init = (int) malloc(sizeof(int));
+ s_sender[i]->is_init = 0;
- irc_cmd_msg(session, "#test", sender_name);
- counter++;
+ s_sender[i]->lat_set = (int) malloc(sizeof(int));
+ s_sender[i]->lat_set = 0;
+
+ s_sender[i]->lon_set = (int) malloc(sizeof(int));
+ s_sender[i]->lon_set = 0;
}
}
void on_connect_receiver(irc_session_t * session, const char * event, const char * origin, const char ** params, unsigned int count)
{
printf("RECEIVER: on_connect_receiver \n");
-
+
char *_key = read_key();
- BF_set_key(&key, strlen(_key) -1, _key);
+ BF_set_key(&key, strlen(_key) - 1, _key);
+
+ init_sender_struct(3);
irc_cmd_join(session, "#test", NULL);
irc_cmd_msg(session, "#test", "connected");
-
}
void receiver_main(void *user)
@@ -161,7 +189,7 @@ void receiver_main(void *user)
callbacks.event_channel = get_position;
callbacks.event_connect = on_connect_receiver;
- char username[100];
+ char username[20];
sprintf(username, "%s", (char*) user);
sprintf(own_nickname, "%s", username);
username_length = strlen(username);
diff --git a/friendfinder/receiver.h b/friendfinder/receiver.h
index 33d8b75..f964677 100644
--- a/friendfinder/receiver.h
+++ b/friendfinder/receiver.h
@@ -8,6 +8,16 @@ struct position
char *lon;
};
+struct sender
+{
+ char *nick;
+ char *lat;
+ char *lon;
+ int is_init;
+ int lat_set;
+ int lon_set;
+};
+
/* calls main for receiver */
void receiver_main(void *user);