126
126
new nsPluginInstance(aCreateDataStruct->instance);
128
128
New(plugin, aCreateDataStruct);
130
// This line makes the plugin "windowless"
131
// problem is there is no window now to draw too
133
// http://devedge-temp.mozilla.org/library/manuals/2002/plugin/1.0/drawevent.html
134
// X can't do windowless plugins, but that is old
135
// NPN_SetValue(aCreateDataStruct->instance,NPPVpluginWindowBool, FALSE);
404
422
if (threadsetup == 1) {
406
424
if (threadlaunched == 1) {
408
426
// switch to non blocking mode
409
427
if (player != NULL) {
410
428
flags = fcntl(fileno(player), F_GETFL, 0);
411
429
flags |= O_NONBLOCK;
412
430
fcntl(fileno(player), F_SETFL, flags);
415
433
pthread_mutex_lock(&control_mutex);
416
434
if (paused == 1) {
417
435
sendCommand(this, "pause\n");
749
790
gtkplug = gtk_plug_new(window);
751
792
if (targetplayer == 0) {
752
gtkwidget = gtk_window_new(GTK_WINDOW_POPUP);
793
if (dontparent == 0) {
794
gtkwidget = gtk_window_new(GTK_WINDOW_POPUP);
796
gtkwidget = gtk_window_new(GTK_WINDOW_TOPLEVEL);
754
799
gtkwidget = gtk_window_new(GTK_WINDOW_TOPLEVEL);
755
800
button_window = gtk_window_new(GTK_WINDOW_POPUP);
862
907
#ifdef GTK2_ENABLED
863
if (enablecontextmenu != 0) {
908
if (enablecontextmenu != 0) {
864
909
g_signal_connect_swapped(G_OBJECT(gtkwidget),
865
910
"button_press_event",
866
911
G_CALLBACK(popup_handler),
949
994
gtk_container_add(GTK_CONTAINER(fixed_event_box), fixed_container);
951
996
status = GTK_LABEL(gtk_label_new(_("Initializing")));
997
// I don't really like this as it messes up the right click menu
998
// gtk_label_set_selectable(status,TRUE);
952
999
progress_bar = GTK_PROGRESS_BAR(gtk_progress_bar_new());
954
1001
if (window_height > 125) {
986
1033
gtk_fixed_put(GTK_FIXED(fixed_container), GTK_WIDGET(status),
989
if (window_height < 20) {
990
if (window_width < 126) {
991
gtk_fixed_put(GTK_FIXED(fixed_container),
992
GTK_WIDGET(status), 65, 0);
994
gtk_fixed_put(GTK_FIXED(fixed_container),
995
GTK_WIDGET(status), 105, 0);
998
gtk_fixed_put(GTK_FIXED(fixed_container),
999
GTK_WIDGET(status), 10, 10);
1036
// small window layout
1037
gtk_fixed_put(GTK_FIXED(fixed_container),
1038
GTK_WIDGET(status), 0, 0);
1001
1039
gtk_fixed_put(GTK_FIXED(fixed_container),
1002
1040
GTK_WIDGET(progress_bar), 10,
1003
window_height - 20);
1041
window_height - 31);
1004
1042
if (!hidestatus)
1005
1043
gtk_widget_show(GTK_WIDGET(progress_bar));
1006
1044
#ifdef GTK2_ENABLED
1007
1045
gtk_widget_set_size_request(GTK_WIDGET(progress_bar),
1008
1046
window_width - 20, 15);
1009
1047
gtk_widget_set_size_request(GTK_WIDGET(status),
1011
window_height - 25);
1049
window_height - 31);
1013
1051
#ifdef GTK1_ENABLED
1015
printf("< 125 setup\n");
1016
1052
gtk_widget_set_usize(GTK_WIDGET(progress_bar),
1017
1053
aWindow->width - 20, 15);
1018
1054
gtk_widget_set_usize(GTK_WIDGET(status),
1019
aWindow->width - 20,
1020
aWindow->height - 25);
1056
aWindow->height - 31);
1031
1067
gtk_fixed_put(GTK_FIXED(fixed_container),
1032
1068
drawing_area, 10, 100);
1070
gtk_widget_set_usize(drawing_area, 1, 1);
1034
1071
gtk_widget_show(drawing_area);
1069
1106
#ifdef GTK_ENABLED
1071
1108
if (targetplayer == 0) {
1072
XReparentWindow(GDK_WINDOW_XDISPLAY(gtkwidget->window),
1073
GDK_WINDOW_XWINDOW(gtkwidget->window), window,
1075
gtk_widget_map(gtkwidget);
1109
if (dontparent == 0) {
1110
XReparentWindow(GDK_WINDOW_XDISPLAY(gtkwidget->window),
1111
GDK_WINDOW_XWINDOW(gtkwidget->window),
1113
gtk_widget_map(gtkwidget);
1077
1116
gtk_widget_show(button_window);
1078
1117
XReparentWindow(GDK_WINDOW_XDISPLAY(button_window->window),
1223
1262
gtk_widget_set_usize(GTK_WIDGET(mediaprogress_bar),
1225
(width * (multiplier + 1) + 20),
1264
(width * (multiplier + 2) + 20),
1228
1267
gtk_fixed_move(GTK_FIXED(fixed_container),
1268
GTK_WIDGET(vol_event_box),
1269
(window_width - (width * 2)),
1270
window_height - height);
1271
gtk_fixed_move(GTK_FIXED(fixed_container),
1229
1272
GTK_WIDGET(fs_event_box),
1230
1273
(window_width - width), window_height - height);
1233
1276
if (progress_bar != NULL) {
1234
1277
gtk_fixed_move(GTK_FIXED(fixed_container),
1235
1278
GTK_WIDGET(progress_bar),
1236
10, window_height - 50);
1279
10, window_height - 31);
1238
1281
gtk_widget_set_usize(GTK_WIDGET(progress_bar),
1239
1282
window_width - 20, 15);
1285
if (GTK_IS_WIDGET(drawing_area) && (movie_width > 0)
1286
&& (movie_height > 0) && mode == NP_EMBED) {
1288
gtk_widget_set_usize(GTK_WIDGET(drawing_area),
1289
window_width, window_height - 16);
1291
gtk_widget_set_usize(GTK_WIDGET(drawing_area),
1292
window_width, window_height);
1243
1297
if (gtkwidget == NULL)
1244
1298
return NPERR_NO_ERROR;
1667
1721
// redirect case on initial node
1670
1724
printf("n == NULL\n");
1671
if (td->list != NULL) {
1725
if (td->list != NULL) {
1673
1727
printf("td->list != NULL\n");
1674
if (((strlen(td->list->fname) == 0)
1675
|| (strncmp(getURLFilename(td->list->url),getURLFilename(stream->url),1024) == 0))
1676
&& (mmsstream == 0)) {
1678
printf("Redirected initial URL\n");
1680
snprintf(n->url, 1024, "%s", stream->url);
1728
if (((strlen(td->list->fname) == 0)
1731
(getURLFilename(td->list->url),
1732
getURLFilename(stream->url), 1024) == 0))
1733
&& (mmsstream == 0)) {
1735
printf("Redirected initial URL\n");
1737
snprintf(n->url, 1024, "%s", stream->url);
1743
1800
if (strstr(mimetype, "audio/x-mod") != NULL) {
1744
1801
strlcat(n->fname, ".mod", 1024);
1803
if (strstr(mimetype, "flac") != NULL) {
1804
strlcat(n->fname, ".flac", 1024);
1749
1810
printf("WR tempname: %s\n", n->fname);
1788
1849
if (keep_download == 1) {
1790
1851
filename = getURLFilename(n->url);
1791
snprintf(n->fname, 1024, "%s/%s",
1792
download_dir, filename);
1852
snprintf(n->fname, 1024, "%s/%s", download_dir, filename);
1794
1854
NPN_MemFree(filename);
2144
2204
printf("Play: ready to signal\n");
2145
2205
while (state < STATE_WAITING_FOR_SIGNAL) {
2146
printf("sleeping state = %i\n", state);
2207
printf("sleeping state = %i\n", state);
2379
void nsPluginInstance::VolumeUp()
2383
if (threadlaunched == 0)
2385
pthread_mutex_lock(&control_mutex);
2386
snprintf(command, 32, "volume +1\n");
2387
sendCommand(this, command);
2388
sendCommand(this, "get_property volume\n");
2389
pthread_mutex_unlock(&control_mutex);
2393
void nsPluginInstance::VolumeDown()
2397
if (threadlaunched == 0)
2399
pthread_mutex_lock(&control_mutex);
2400
snprintf(command, 32, "volume -1\n");
2401
sendCommand(this, command);
2402
sendCommand(this, "get_property volume\n");
2403
pthread_mutex_unlock(&control_mutex);
2407
void nsPluginInstance::GetVolume(double *_retval)
2409
*_retval = (double) volume;
2413
void nsPluginInstance::SetVolume(double value)
2415
volume = (int) value;
2418
if (threadlaunched == 0)
2420
pthread_mutex_lock(&control_mutex);
2421
snprintf(command, 32, "volume %i 1\n", volume);
2422
sendCommand(this, command);
2423
pthread_mutex_unlock(&control_mutex);
2318
2426
void nsPluginInstance::GetPlayState(PRInt32 * playstate)
2320
2428
pthread_mutex_lock(&control_mutex);
2466
2574
gtk_widget_show(rew_event_box);
2467
2575
if (mediaprogress_bar != NULL && mediaPercent > 0)
2468
2576
gtk_widget_show(GTK_WIDGET(mediaprogress_bar));
2577
if (vol_event_box != NULL)
2578
gtk_widget_show(GTK_WIDGET(vol_event_box));
2469
2579
if (fs_event_box != NULL)
2470
2580
gtk_widget_show(GTK_WIDGET(fs_event_box));
2488
2598
gtk_widget_hide(rew_event_box);
2489
2599
if (mediaprogress_bar != NULL)
2490
2600
gtk_widget_hide(GTK_WIDGET(mediaprogress_bar));
2601
if (vol_event_box != NULL)
2602
gtk_widget_hide(GTK_WIDGET(vol_event_box));
2491
2603
if (fs_event_box != NULL)
2492
2604
gtk_widget_hide(GTK_WIDGET(fs_event_box));
2576
2688
gtk_window_get_size(GTK_WINDOW(gtkwidget), &wwidth, &wheight);
2577
2689
if ((wwidth != rect.width) && (wheight != rect.height)) {
2578
2690
if (targetplayer == 0) {
2579
XReparentWindow(GDK_WINDOW_XDISPLAY(gtkwidget->window),
2580
GDK_WINDOW_XWINDOW(gtkwidget->window),
2581
GDK_WINDOW_XWINDOW(fs_window->window),
2584
gtk_widget_map(gtkwidget);
2586
gtk_window_resize(GTK_WINDOW(gtkwidget), rect.width,
2589
printf("gtkwidget resized to %i x %i\n",
2590
rect.width, rect.height);
2691
if (dontparent == 0) {
2692
XReparentWindow(GDK_WINDOW_XDISPLAY
2693
(gtkwidget->window),
2694
GDK_WINDOW_XWINDOW(gtkwidget->
2696
GDK_WINDOW_XWINDOW(fs_window->
2699
gtk_widget_map(gtkwidget);
2701
gtk_window_resize(GTK_WINDOW(gtkwidget),
2702
rect.width, rect.height);
2704
printf("gtkwidget resized to %i x %i\n",
2705
rect.width, rect.height);
2633
2749
if (fs_window != NULL) {
2634
2750
gtk_window_unfullscreen(GTK_WINDOW(fs_window));
2635
2751
if (targetplayer == 0) {
2636
XReparentWindow(GDK_WINDOW_XDISPLAY(gtkwidget->window),
2637
GDK_WINDOW_XWINDOW(gtkwidget->window),
2639
gtk_widget_map(gtkwidget);
2752
if (dontparent == 0) {
2753
XReparentWindow(GDK_WINDOW_XDISPLAY
2754
(gtkwidget->window),
2755
GDK_WINDOW_XWINDOW(gtkwidget->
2758
gtk_widget_map(gtkwidget);
2641
2761
gtk_widget_destroy(fs_window);
2642
2762
fs_window = NULL;
2704
2824
button_top + 2);
2705
2825
gtk_widget_set_usize(GTK_WIDGET(mediaprogress_bar),
2707
(width * (multiplier + 1) + 20),
2827
(width * (multiplier + 2) + 20),
2710
if (win_width > 126)
2830
if (win_width > 126) {
2831
gtk_fixed_move(GTK_FIXED(fixed_container),
2832
GTK_WIDGET(vol_event_box),
2833
(win_width - (width * 2)), button_top);
2711
2834
gtk_fixed_move(GTK_FIXED(fixed_container),
2712
2835
GTK_WIDGET(fs_event_box),
2713
2836
(win_width - width), button_top);
2816
2939
gtk_widget_show(fs_window);
2817
2940
gtk_window_fullscreen(GTK_WINDOW(fs_window));
2818
gtk_widget_reparent(gtkwidget, fs_window);
2941
//gtk_widget_reparent(gtkwidget, fs_window);
2819
2942
XReparentWindow(GDK_WINDOW_XDISPLAY(gtkwidget->window),
2820
2943
GDK_WINDOW_XWINDOW(gtkwidget->window),
2821
2944
GDK_WINDOW_XWINDOW(fs_window->window), 0,
2907
3030
y - height + 2);
2909
3032
gtk_widget_set_usize(GTK_WIDGET(mediaprogress_bar),
2910
x - (width * (multiplier + 1) +
3033
x - (width * (multiplier + 2) +
2911
3034
20), height - 4);
2913
3036
gtk_fixed_move(GTK_FIXED(fixed_container),
3037
GTK_WIDGET(vol_event_box),
3038
(x - (width * 2)), y - height);
3039
gtk_fixed_move(GTK_FIXED(fixed_container),
2914
3040
GTK_WIDGET(fs_event_box),
2915
3041
(x - width), y - height);
3061
3187
tail = tail->next;
3063
3189
fullyQualifyURL(this, (char *) item, localurl);
3064
addToList(this, localurl, tail, -1);
3190
addToList(this, localurl, tail, -1, 0, -1,0);
3065
3191
pthread_mutex_unlock(&playlist_mutex);