Skip to content
Snippets Groups Projects
Commit 0e540bda authored by Antoine Fontaine's avatar Antoine Fontaine :8ball:
Browse files

Cleaner types; cleaner includes; compiles without warnings

parent c4762e50
Branches
Tags
No related merge requests found
......@@ -2,11 +2,9 @@
#include "gui-week.h"
#include "moodle.h"
#include "gui-downloadable-file.h"
//#include "gui-downloadable-file.h"
#include "data-struct.h"
#define HANDY_USE_UNSTABLE_API
#include <handy.h>
struct _GuiCourse
{
......@@ -20,7 +18,7 @@ struct _GuiCourse
guint course_id;
};
static enum {
enum {
PROP_0, PROP_COURSE_NAME, PROP_COURSE_URL, PROP_COURSE_ID, N_COURSE_PROPERTIES
};
......@@ -64,16 +62,13 @@ gui_course_set_property (GObject *object,
switch (property_id) {
case PROP_COURSE_NAME:
g_print ("setting course name\n");
gtk_label_set_label (self->title, g_value_get_string (value));
break;
case PROP_COURSE_URL:
g_print ("setting course url\n");
gtk_button_set_label (GTK_BUTTON (self->url), g_value_get_string (value));
gtk_link_button_set_uri (self->url, g_value_get_string (value));
break;
case PROP_COURSE_ID:
g_print ("setting course id\n");
self->course_id = g_value_get_uint (value);
break;
default:
......
#include "gui-window.h"
#include "gui-downloadable-file.h"
#include "data-struct.h"
#include "moodle.h"
......@@ -12,7 +11,7 @@ struct _GuiDownloadableFile
// contains no widgets
};
static enum {
enum {
PROP_0, PROP_FILE_NAME, PROP_FILE_URL, N_FILE_PROPERTIES
};
......
#include "gui-week.h"
#include "gui-downloadable-file.h"
#include <gtk/gtk.h>
#define HANDY_USE_UNSTABLE_API
#include <handy.h>
......@@ -16,7 +15,7 @@ struct _GuiWeek
struct DownloadableFile* files;
};
static enum {
enum {
PROP_0, PROP_WEEK_NUMBER, PROP_WEEK_FILE_COUNT, PROP_WEEK_FILES, N_WEEK_PROPERTIES
};
......
#pragma once
#include <gtk/gtk.h>
#define HANDY_USE_UNSTABLE_API
#include <handy.h>
#include "data-struct.h"
......
#include <libsoup/soup.h>
#include <stdio.h>
#include "moodle.h"
#include "moodle-parser.h"
#include "utils.h"
......@@ -8,45 +7,38 @@
#define MOODLE_FILE_INDEX CACHE_ROOT"index.html"
struct courses_cb {
void (*cb)(gpointer user_data, struct Courses);
gpointer user_data;
struct course_content_cb_data {
course_content_cb cb;
gpointer user_data;
gchar *filename;
};
struct course_content_cb {
void (*cb)(gpointer user_data, struct CourseContent);
gpointer user_data;
gchar *filename;
};
static struct _MoodleProvider
{
static struct {
SoupSession *session;
SoupCookieJar *jar;
SoupLogger *logger;
MoodleOnlineMode online_mode;
} self;
static MoodleOnlineMode online_mode;
static void
moodle_course_content_cb (SoupSession *session,
SoupMessage *msg,
gpointer course_cb)
gpointer course_cb_ptr)
{
struct course_content_cb *cb = course_cb;
struct course_content_cb_data *course_cb = course_cb_ptr;
// TODO: check if all is fine
if (msg->status_code != 200)
g_warning ("connection error, http %u", msg->status_code);
SoupBuffer *result = soup_message_body_flatten (msg->response_body);
struct CourseContent content = moodle_parse_course_content (result->data, result->length, cb->filename);
struct CourseContent content = moodle_parse_course_content (result->data, result->length, course_cb->filename);
cb->cb(cb->user_data, content);
if (cb->filename)
free (cb->filename);
free (cb);
course_cb->cb(course_cb->user_data, content);
if (course_cb->filename)
free (course_cb->filename);
free (course_cb);
}
enum moodle_error
......@@ -58,7 +50,7 @@ moodle_provider_download_file (const gchar *url)
}
enum moodle_error
moodle_provider_get_courses (void cb(gpointer cb_arg, struct Courses courses), gpointer cb_arg)
moodle_provider_get_courses (courses_cb cb, gpointer cb_arg)
{
SoupMessage *msg;
GInputStream *response;
......@@ -134,17 +126,17 @@ moodle_provider_connect (GInputStream **response)
enum moodle_error
moodle_provider_get_course_content (void cb(gpointer cb_arg, struct CourseContent), guint id, gpointer cb_arg)
moodle_provider_get_course_content (course_content_cb cb, guint id, gpointer cb_arg)
{
char filename[100];
char url[100];
sprintf(filename, CACHE_ROOT"course-%u.html", id);
sprintf(url, EPFL_COURSE_LINK"%u", id);
if (online_mode == MOODLE_MODE_ONLINE) {
if (self.online_mode == MOODLE_MODE_ONLINE) {
SoupMessage *msg;
msg = soup_message_new ("GET", url);
struct course_content_cb *course_cb = malloc (sizeof (struct course_content_cb));
struct course_content_cb_data *course_cb = malloc (sizeof (struct course_content_cb_data));
course_cb->cb = cb;
course_cb->user_data = cb_arg;
course_cb->filename = malloc (strlen (filename)+1);
......@@ -176,12 +168,12 @@ moodle_provider_get_course_content (void cb(gpointer cb_arg, struct CourseConten
enum moodle_error
moodle_provider_init (void cb(gpointer cb_arg, struct Courses), MoodleOnlineMode mode, gpointer cb_arg)
{
online_mode = mode;
moodle_parser_init (/* caching = */ CACHING && online_mode==MOODLE_MODE_ONLINE);
self.online_mode = mode;
moodle_parser_init (/* caching = */ CACHING && self.online_mode==MOODLE_MODE_ONLINE);
GInputStream *index;
char *html;
size_t html_size;
if (online_mode == MOODLE_MODE_ONLINE) {
if (self.online_mode == MOODLE_MODE_ONLINE) {
self.session = soup_session_new ();
//self.session = soup_session_new_with_options (SOUP_SESSION_ACCEPT_LANGUAGE_AUTO, NULL);
......@@ -206,7 +198,7 @@ moodle_provider_init (void cb(gpointer cb_arg, struct Courses), MoodleOnlineMode
g_assert_false ("Should never happend");
}
} else { // offline_mode
} else { // offline gimode
GFile *file = g_file_new_for_path (MOODLE_FILE_INDEX);
index = G_INPUT_STREAM (g_file_read (file, NULL, NULL));
......
......@@ -2,6 +2,9 @@
#include "data-struct.h"
typedef void (*courses_cb) (gpointer user_data, struct Courses);
typedef void (*course_content_cb)(gpointer user_data, struct CourseContent);
enum moodle_error {
MOODLE_ERROR_OK,
MOODLE_ERROR_CONNECTION,
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment