X-Git-Url: https://git.draconx.ca/gitweb/upkg.git/blobdiff_plain/0b66ccda847802bdc7ba4755743031c323df4b7e..2c7a3449642f05dc8ca386d137f4521632b19f79:/src/upkg.c?ds=sidebyside diff --git a/src/upkg.c b/src/upkg.c index bcbee2f..8c26d27 100644 --- a/src/upkg.c +++ b/src/upkg.c @@ -22,9 +22,9 @@ #include #include "upkg.h" -#include "serializable.h" +#include "module.h" +#include "uobject.h" #include "exportable.h" -#include "music.h" void print_upkg_flags(const char *prefix, unsigned long flags) { @@ -57,13 +57,14 @@ int main(int argc, char **argv) { struct upkg *pkg; - g_type_init(); - if (argc < 2) { fprintf(stderr, "usage: upkg file\n"); return EXIT_FAILURE; } + if (module_init() != 0) + return EXIT_FAILURE; + pkg = upkg_fopen(argv[1]); if (!pkg) { fprintf(stderr, "failed to open package!\n"); @@ -86,18 +87,22 @@ int main(int argc, char **argv) printf("Exports: %lu\n", pkg->export_count); printf("Imports: %lu\n", pkg->import_count); - GObject *music = u_music_new(); + GObject *music = g_object_new(module_get_class("Engine", "Music"), NULL); + if (!music) + return EXIT_FAILURE; struct upkg_file *f = upkg_export_open(pkg, 0); - upkg_deserialize(music, f); + u_object_deserialize(music, f); char name[256]; - upkg_export_name(music, name, sizeof name); + u_object_export_name(music, name, sizeof name); FILE *fp = fopen(name, "wb"); if (!fp) return EXIT_FAILURE; - upkg_export(music, fp); + u_object_export(music, fp); fclose(fp); printf("Wrote %s\n", name); upkg_close(pkg); + module_exit(); + return 0; }