|
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.
|