From 4b0b7ca249bfa4ecc099c2ca56527eb91776f198 Mon Sep 17 00:00:00 2001 From: ticktock35 Date: Sun, 14 Dec 2008 23:25:08 -0500 Subject: opkg: re-arrange source code into sub-directories git-svn-id: http://opkg.googlecode.com/svn/trunk@33 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358 --- (limited to 'libopkg/opkg_state.c') diff --git a/libopkg/opkg_state.c b/libopkg/opkg_state.c new file mode 100644 index 0000000..2cc8594 --- /dev/null +++ b/libopkg/opkg_state.c @@ -0,0 +1,72 @@ +/* opkg_state.c - the opkg package management system + + Thomas Wood + + Copyright (C) 2008 by OpenMoko Inc + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License as + published by the Free Software Foundation; either version 2, or (at + your option) any later version. + + This program is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. +*/ + +#include "libopkg.h" +#include "opkg_state.h" + + +static char *state_strings[] = +{ + "None", + "Downloading Package", + "Installing Package", + "Configuring Package", + "Upgrading Package", + "Removing Package", + "Downloading Repository", + "Verifying Repository Signature" +}; + + + +opkg_state_changed_callback opkg_cb_state_changed = NULL; + +static opkg_state_t opkg_state = 0; +static char *opkg_state_data = NULL; + +void +opkg_set_current_state (opkg_state_t state, const char *data) +{ + if (opkg_state_data) + free (opkg_state_data); + if (data) + { + opkg_state_data = malloc (strlen (data)); + strcpy (opkg_state_data, data); + } + else + { + opkg_state_data = NULL; + } + + opkg_state = state; + + if (opkg_cb_state_changed) + { + opkg_cb_state_changed (opkg_state, opkg_state_data); + } + + + printf ("opkg state set to %s: %s\n", state_strings[state], data); +} + +void +opkg_get_current_state (opkg_state_t *state, const char **data) +{ + *state = opkg_state; + *data = opkg_state_data; +} -- cgit v0.9.1