From: <ny...@us...> - 2007-02-06 04:39:10
|
Revision: 298 http://svn.sourceforge.net/pmplib/?rev=298&view=rev Author: nyaochi Date: 2007-02-05 20:39:09 -0800 (Mon, 05 Feb 2007) Log Message: ----------- Make POSIX code build. Modified Paths: -------------- trunk/pmplib/frontend/easypmp/cui/main.c trunk/pmplib/lib/pmp/pmp_posix.c trunk/pmplib/lib/ucs2/ucs2char_iconv.c Modified: trunk/pmplib/frontend/easypmp/cui/main.c =================================================================== --- trunk/pmplib/frontend/easypmp/cui/main.c 2007-02-06 04:06:42 UTC (rev 297) +++ trunk/pmplib/frontend/easypmp/cui/main.c 2007-02-06 04:39:09 UTC (rev 298) @@ -170,24 +170,11 @@ int set_encoding(const char *encoding) { - ucs2conv_t conv; - - if (ucs2set_encoding(encoding, &conv) != 0) { - fprintf(stderr, "ERROR: iconv does not support the following conversion\n %s: from %s to %s\n", encoding, conv.from, conv.to); + if (ucs2setenc(encoding) != 0) { + fprintf(stderr, "ERROR: iconv does not support %s\n", encoding); return 1; } } - -int set_encoding_music(const char *encoding) -{ - ucs2conv_t conv; - - if (ucs2set_encoding_music(encoding, &conv) != 0) { - fprintf(stderr, "ERROR: iconv does not support the following conversion\n %s: from %s to %s\n", encoding, conv.from, conv.to); - return 1; - } -} - #endif int main(int argc, char *argv[]) @@ -227,9 +214,6 @@ if (opt.system_encoding) { set_encoding(opt.system_encoding); } - if (opt.music_encoding) { - set_encoding_music(opt.music_encoding); - } #endif/*_WIN32*/ // Set words to be stripped from artist names. Modified: trunk/pmplib/lib/pmp/pmp_posix.c =================================================================== --- trunk/pmplib/lib/pmp/pmp_posix.c 2007-02-06 04:06:42 UTC (rev 297) +++ trunk/pmplib/lib/pmp/pmp_posix.c 2007-02-06 04:39:09 UTC (rev 298) @@ -36,12 +36,11 @@ #include <filepath.h> #include <pmp.h> -#include <pmphelp.h> -typedef struct { +struct tag_pmplib_t { uint32_t num_plugins; lt_dlhandle *plugins; -} pmphelp_posix_t; +}; uint32_t interlocked_increment(uint32_t* count) { @@ -53,77 +52,75 @@ return --(*count); } -result_t pmphelp_init(pmphelp_t** ptr_pmphelp) +result_t pmplib_init(pmplib_t** ptr_pmplib) { lt_dlhandle inst = 0; - pmphelp_posix_t* pmphelp = NULL; + pmplib_t* pmplib = NULL; - pmphelp = (pmphelp_posix_t*)calloc(1, sizeof(pmphelp_posix_t)); - pmphelp->num_plugins = 0; - pmphelp->plugins = NULL; + pmplib = (pmplib_t*)calloc(1, sizeof(pmplib_t)); + pmplib->num_plugins = 0; + pmplib->plugins = NULL; lt_dlinit(); lt_dlsetsearchpath(PMP_MODULES_DIR); inst = lt_dlopenext("portalplayer1"); if (inst) { - pmphelp->num_plugins++; - pmphelp->plugins = (lt_dlhandle*)realloc(pmphelp->plugins, sizeof(lt_dlhandle) * pmphelp->num_plugins); - pmphelp->plugins[pmphelp->num_plugins-1] = inst; + pmplib->num_plugins++; + pmplib->plugins = (lt_dlhandle*)realloc(pmplib->plugins, sizeof(lt_dlhandle) * pmplib->num_plugins); + pmplib->plugins[pmplib->num_plugins-1] = inst; } else { fprintf(stderr, "FAILED: portalplayer1 in %s\n", PMP_MODULES_DIR); } inst = lt_dlopenext("iriverplus2"); if (inst) { - pmphelp->num_plugins++; - pmphelp->plugins = (lt_dlhandle*)realloc(pmphelp->plugins, sizeof(lt_dlhandle) * pmphelp->num_plugins); - pmphelp->plugins[pmphelp->num_plugins-1] = inst; + pmplib->num_plugins++; + pmplib->plugins = (lt_dlhandle*)realloc(pmplib->plugins, sizeof(lt_dlhandle) * pmplib->num_plugins); + pmplib->plugins[pmplib->num_plugins-1] = inst; } else { fprintf(stderr, "FAILED: iriverplus2\n"); } inst = lt_dlopenext("iriverplus3"); if (inst) { - pmphelp->num_plugins++; - pmphelp->plugins = (lt_dlhandle*)realloc(pmphelp->plugins, sizeof(lt_dlhandle) * pmphelp->num_plugins); - pmphelp->plugins[pmphelp->num_plugins-1] = inst; + pmplib->num_plugins++; + pmplib->plugins = (lt_dlhandle*)realloc(pmplib->plugins, sizeof(lt_dlhandle) * pmplib->num_plugins); + pmplib->plugins[pmplib->num_plugins-1] = inst; } else { fprintf(stderr, "FAILED: iriverplus3\n"); } inst = lt_dlopenext("irivnavi"); if (inst) { - pmphelp->num_plugins++; - pmphelp->plugins = (lt_dlhandle*)realloc(pmphelp->plugins, sizeof(lt_dlhandle) * pmphelp->num_plugins); - pmphelp->plugins[pmphelp->num_plugins-1] = inst; + pmplib->num_plugins++; + pmplib->plugins = (lt_dlhandle*)realloc(pmplib->plugins, sizeof(lt_dlhandle) * pmplib->num_plugins); + pmplib->plugins[pmplib->num_plugins-1] = inst; } else { fprintf(stderr, "FAILED: irivnavi\n"); } - *ptr_pmphelp = pmphelp; + *ptr_pmplib = pmplib; return 0; } -result_t pmphelp_finish(pmphelp_t* pmphelp) +result_t pmplib_finish(pmplib_t* pmplib) { - pmphelp_posix_t* pmphelpposix = (pmphelp_posix_t*)pmphelp; uint32_t i; - for (i = 0;i < pmphelpposix->num_plugins;++i) { - lt_dlclose(pmphelpposix->plugins[i]); + for (i = 0;i < pmplib->num_plugins;++i) { + lt_dlclose(pmplib->plugins[i]); } - free(pmphelpposix->plugins); - free(pmphelpposix); + free(pmplib->plugins); + free(pmplib); return 0; } -result_t pmphelp_enumerate_devid(pmphelp_t* pmphelp, pmp_enumerate_devid_callback_t callback, void *instance) +result_t pmplib_enumerate_devid(pmplib_t* pmplib, pmplib_enumerate_devid_callback_t callback, void *instance) { - pmphelp_posix_t* pmphelpposix = (pmphelp_posix_t*)pmphelp; uint32_t i; - for (i = 0;i < pmphelpposix->num_plugins;++i) { - pmp_enumerate_devid_t func = (pmp_enumerate_devid_t)lt_dlsym(pmphelpposix->plugins[i], "pmp_enumerate_devid"); + for (i = 0;i < pmplib->num_plugins;++i) { + pmplib_enumerate_devid_t func = (pmplib_enumerate_devid_t)lt_dlsym(pmplib->plugins[i], "pmplib_enumerate_devid"); if (func) { func(callback, instance); } @@ -131,14 +128,13 @@ return 0; } -result_t pmphelp_create(pmphelp_t* pmphelp, pmp_t** pmp, const ucs2char_t* path_to_device, const char *id) +result_t pmplib_create(pmplib_t* pmplib, pmp_t** pmp, const ucs2char_t* path_to_device, const char *id) { - pmphelp_posix_t* pmphelpposix = (pmphelp_posix_t*)pmphelp; result_t ret = PMP_DEVICENOTFOUND; uint32_t i; - for (i = 0;i < pmphelpposix->num_plugins;++i) { - pmp_create_t func = (pmp_create_t)lt_dlsym(pmphelpposix->plugins[i], "pmp_create"); + for (i = 0;i < pmplib->num_plugins;++i) { + pmplib_create_t func = (pmplib_create_t)lt_dlsym(pmplib->plugins[i], "pmplib_create"); if (func) { ret = func(pmp, path_to_device, id); if (ret != PMP_DEVICENOTFOUND) { Modified: trunk/pmplib/lib/ucs2/ucs2char_iconv.c =================================================================== --- trunk/pmplib/lib/ucs2/ucs2char_iconv.c 2007-02-06 04:06:42 UTC (rev 297) +++ trunk/pmplib/lib/ucs2/ucs2char_iconv.c 2007-02-06 04:39:09 UTC (rev 298) @@ -74,7 +74,7 @@ encoding = nl_langinfo(CODESET); } #endif - return encoding ? strdup(encoding) : strdup("UTF-8"); + return encoding ? strdup(encoding) : strdup(MBS_CHARSET); } static void print_ucs2(const ucs2char_t* str) @@ -86,6 +86,13 @@ fprintf(stderr, "\n"); } +static int is_bigendian(void) +{ + ucs2char_t c = 0x1234; + uint8_t* p = (uint8_t*)&c; + return (*p == 0x12); +} + static const char *get_ucs2encoding(void) { static const char *unicode_big = "UNICODEBIG"; @@ -95,10 +102,7 @@ int ucs2init() { - if (!encoding) { - encoding = MBS_CHARSET; - } - strcpy(g_encoding, encoding); + strcpy(g_encoding, MBS_CHARSET); } static int ucs2check(ucs2conv_t* conv) @@ -108,8 +112,6 @@ const static char *charsets[] = { g_encoding, "UNICODE", "UNICODE", g_encoding, - g_encoding_music, "UNICODE", - "UNICODE", g_encoding_music, "UNICODE", "UTF-8", NULL, NULL, }; @@ -145,6 +147,10 @@ return ucs2check(&conv); } +const char *ucs2getenc() +{ + return g_encoding; +} int ucs2toi(const ucs2char_t* str) { @@ -203,9 +209,9 @@ return ret; } -size_t mbstoucs2_music(ucs2char_t *ucs2str, size_t ucs_size, const char *mbstr, size_t mbs_size) +size_t mbstoucs2_charset(ucs2char_t *ucs2str, size_t ucs_size, const char *mbstr, size_t mbs_size, const char *charset) { - iconv_t cd = iconv_open(g_ucs2encoding, g_encoding_music); + iconv_t cd = iconv_open(g_ucs2encoding, charset); size_t ret = iconv_convert(cd, (char **)&ucs2str, ucs_size * sizeof(ucs2char_t), (char **)&mbstr, mbs_size); iconv_close(cd); return ret; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |