#include "omnplay.h"
#include "support.h"
+#ifdef _WIN32
+#include <ctype.h>
+#include <windows.h>
+
+char *strcasestr(char *haystack, char *needle)
+{
+ char *p, *startn = 0, *np = 0;
+
+ for (p = haystack; *p; p++) {
+ if (np) {
+ if (toupper(*p) == toupper(*np)) {
+ if (!*++np)
+ return startn;
+ } else
+ np = 0;
+ } else if (toupper(*p) == toupper(*needle)) {
+ np = needle + 1;
+ startn = p;
+ }
+ }
+
+ return 0;
+};
+#endif /* _WIN32 */
+
int main(int argc, char **argv)
{
char path[ 512 ], *buf;
gtk_set_locale();
gtk_init(&argc, &argv);
+ memset(path, 0, sizeof(path));
#ifdef _WIN32
+ GetModuleFileName(NULL, path, sizeof(path));
+// g_warning("GetModuleFileName [%s]\n", path);
+ if((buf = strstr(path, "\\bin\\omnplay.exe")))
+ {
+ buf[0] = 0;
+ strcat(path, "\\share\\omnplay\\pixmaps");
+ }
#else
// Linux hack to determine path of the executable
- memset(path, 0, sizeof(path));
readlink( "/proc/self/exe", path, sizeof(path));
g_warning ("path=(%s)\n", path);
if((buf = strstr(path, "/bin/omnplay")))
{
buf[0] = 0;
- strcat(path, "/share/rugen/pixmaps");
+ strcat(path, "/share/omnplay/pixmaps");
}
else if((buf = strstr(path, "/src/omnplay")))
{
}
else
snprintf(path, sizeof(path), "%s/%s/pixmaps", PACKAGE_DATA_DIR, PACKAGE);
+#endif /* _WIN32 */
add_pixmap_directory( path );
g_warning ("add_pixmap_directory(%s)\n", path);
-#endif /* _WIN32 */
-
app = omnplay_create(argc, argv);
if(app->window)
OmPlrStatus st_curr, st_prev;
omnplay_player_t* player = (omnplay_player_t*)data;
+ g_warning("omnplay_thread_proc\n");
+
/* connect */
pthread_mutex_lock(&player->app->players.lock);
r = OmPlrOpen(player->host, player->name, (OmPlrHandle*)&player->handle);
for(r = 0 ; !player->app->f_exit && !r;)
{
/* sleep */
+#ifdef _WIN32
+ Sleep(100);
+#else
usleep(100000);
+#endif
/* get status */
pthread_mutex_lock(&player->app->players.lock);
int i;
pthread_mutexattr_t attr;
+ pthread_mutexattr_init(&attr);
pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE);
gtk_signal_connect( GTK_OBJECT( app->window ), "delete-event",
pthread_create(&app->players.item[i].thread, NULL,
omnplay_thread_proc, &app->players.item[i]);
+
/* create lock */
pthread_mutex_init(&app->playlist.lock, &attr);
/* load library */
omnplay_library_load(app);
+
+ pthread_mutexattr_destroy(&attr);
};
void omnplay_release(omnplay_instance_t* app)