48
48
#error libXpm has not been found. Compilation cannot continue
52
unsigned long GetFontAtom(Display * dpy, XFontStruct * fs, char *atomname)
55
Atom atom = XInternAtom(dpy, atomname, True);
56
XGetFontProperty(fs, atom, &val);
51
61
void Initialize(Display * dpy, Drawable d, nsPluginInstance * instance,
56
66
XSetWindowAttributes attrs;
67
char **missing_charset_list_return;
68
int missing_charset_count_return;
69
char *def_string_return;
58
71
XpmCreatePixmapFromData(dpy, d, logo_xpm, &instance->logo,
59
72
&instance->logomask, NULL);
69
82
XpmCreatePixmapFromData(dpy, d, progress_fill_xpm,
70
83
&instance->progress_fill,
71
84
&instance->progress_fillmask, NULL);
72
instance->font = XQueryFont(dpy, XGContextFromGC(gc));
86
if (!instance->font) {
89
unsigned long size = 14;
94
fstr = XQueryFont(dpy, XGContextFromGC(gc));
95
family = XGetAtomName(dpy, GetFontAtom(dpy, fstr, "FAMILY_NAME"));
96
bold = XGetAtomName(dpy, GetFontAtom(dpy, fstr, "WEIGHT_NAME"));
97
italic = XGetAtomName(dpy, GetFontAtom(dpy, fstr, "SLANT"));
98
size = GetFontAtom(dpy, fstr, "PIXEL_SIZE");
100
sprintf(fontname, "-*-%s-%s-%s-*--%d-*",
101
family, bold, italic, (int) size);
102
instance->font = XCreateFontSet(dpy,
104
&missing_charset_list_return,
105
&missing_charset_count_return,
73
109
guicursor = XCreateFontCursor(dpy, XC_watch);
74
110
attrs.cursor = guicursor;
75
111
XChangeWindowAttributes(dpy, d, CWCursor, &attrs);
313
350
if (FullRedraw) {
314
351
DrawLogo((Display *) instance->display,
315
352
(Drawable) instance->window, instance, black_gc);
316
XDrawString((Display *) instance->display,
317
(Drawable) instance->window, black_gc,
318
instance->window_width - id_width - BORDER,
319
instance->window_height - font_height, id,
353
XmbDrawString((Display *) instance->display,
354
(Drawable) instance->window, instance->font,
356
instance->window_width - id_width - BORDER,
357
instance->window_height - font_height, id,
322
360
if ((FullRedraw || PercentRedraw)
323
361
&& instance->window_width > id_width + BORDER * 3 + 100)
1093
1147
g_signal_connect(G_OBJECT(instance->rew_event_box),
1094
1148
"button_press_event",
1095
1149
G_CALLBACK(rew_callback), instance);
1150
gtk_widget_set_size_request(GTK_WIDGET
1151
(instance->rew_event_box),
1097
1154
#ifdef GTK1_ENABLED
1098
1155
gtk_signal_connect(GTK_OBJECT(instance->rew_event_box),
1099
1156
"button_press_event",
1100
1157
GTK_SIGNAL_FUNC(rew_callback),
1159
gtk_widget_set_usize(GTK_WIDGET(instance->rew_event_box),
1103
1162
gtk_container_add(GTK_CONTAINER(instance->rew_event_box),
1104
1163
instance->image_rew);
1105
1164
gtk_fixed_put(GTK_FIXED(instance->fixed_container),
1106
1165
instance->rew_event_box,
1107
1166
width * multiplier++, win_height - height);
1108
1168
if (instance->showbuttons) {
1109
1169
gtk_widget_show(instance->image_rew);
1110
1170
gtk_widget_show(instance->rew_event_box);
1147
1212
g_signal_connect(G_OBJECT(instance->pause_event_box),
1148
1213
"button_press_event",
1149
1214
G_CALLBACK(pause_callback), instance);
1215
gtk_widget_set_size_request(GTK_WIDGET
1216
(instance->pause_event_box), width,
1151
1219
#ifdef GTK1_ENABLED
1152
1220
gtk_signal_connect(GTK_OBJECT(instance->pause_event_box),
1153
1221
"button_press_event",
1154
1222
GTK_SIGNAL_FUNC(pause_callback), instance);
1223
gtk_widget_set_usize(GTK_WIDGET(instance->pause_event_box),
1156
1226
gtk_container_add(GTK_CONTAINER(instance->pause_event_box),
1157
1227
instance->image_pause);
1158
if (win_width > 126) {
1228
if (win_width > 126 || instance->targetplayer == 1) {
1160
1230
gtk_fixed_put(GTK_FIXED(instance->fixed_container),
1161
1231
instance->pause_event_box,
1219
1299
gtk_widget_show(instance->ff_event_box);
1223
if ((int) (width * multiplier + 10) <
1224
(int) (win_width - 10 - width)) {
1225
instance->mediaprogress_bar =
1226
GTK_PROGRESS_BAR(gtk_progress_bar_new());
1227
gtk_widget_set_usize(GTK_WIDGET
1228
(instance->mediaprogress_bar),
1230
width * multiplier - 20 - width),
1232
gtk_widget_set_events(GTK_WIDGET
1233
(instance->mediaprogress_bar),
1234
GDK_BUTTON_PRESS_MASK);
1302
// if ((int) (width * multiplier + 10) <
1303
// (int) (win_width - 10 - width)) {
1304
instance->mediaprogress_bar =
1305
GTK_PROGRESS_BAR(gtk_progress_bar_new());
1306
gtk_widget_set_events(GTK_WIDGET
1307
(instance->mediaprogress_bar),
1308
GDK_BUTTON_PRESS_MASK);
1235
1309
#ifdef GTK2_ENABLED
1236
g_signal_connect(G_OBJECT(instance->mediaprogress_bar),
1237
"button_press_event",
1238
G_CALLBACK(mediaprogress_callback),
1310
g_signal_connect(G_OBJECT(instance->mediaprogress_bar),
1311
"button_press_event",
1312
G_CALLBACK(mediaprogress_callback), instance);
1313
gtk_widget_set_size_request(GTK_WIDGET
1314
(instance->mediaprogress_bar),
1316
width * multiplier - 20 - width),
1241
1319
#ifdef GTK1_ENABLED
1242
gtk_signal_connect(GTK_OBJECT(instance->mediaprogress_bar),
1243
"button_press_event",
1244
GTK_SIGNAL_FUNC(mediaprogress_callback),
1320
gtk_signal_connect(GTK_OBJECT(instance->mediaprogress_bar),
1321
"button_press_event",
1322
GTK_SIGNAL_FUNC(mediaprogress_callback),
1324
gtk_widget_set_usize(GTK_WIDGET
1325
(instance->mediaprogress_bar),
1327
width * multiplier - 20 - width),
1247
gtk_fixed_put(GTK_FIXED(instance->fixed_container),
1248
GTK_WIDGET(instance->mediaprogress_bar),
1249
(width * multiplier + 10),
1250
win_height - height + 1);
1330
gtk_fixed_put(GTK_FIXED(instance->fixed_container),
1331
GTK_WIDGET(instance->mediaprogress_bar),
1332
(width * multiplier + 10),
1333
win_height - height + 1);
1334
gtk_widget_realize(GTK_WIDGET(instance->mediaprogress_bar));
1253
1337
if (instance->mode == NP_EMBED && instance->noembed == 0)
1254
1338
gtk_widget_hide(GTK_WIDGET(instance->progress_bar));
1350
1457
if (instance->mInitialized == FALSE)
1460
new_width = instance->movie_width;
1461
new_height = instance->movie_height;
1354
1464
printf("in resize method\nNew size is %i x %i\n",
1355
1465
instance->movie_width, instance->movie_height);
1356
1466
if (instance->drawing_area != NULL) {
1357
1467
if (GTK_IS_WIDGET(instance->drawing_area)) {
1358
gtk_widget_set_usize(instance->drawing_area,
1359
instance->movie_width,
1360
instance->movie_height);
1361
1468
if (GTK_IS_WIDGET(instance->progress_bar))
1362
1469
gtk_widget_hide(GTK_WIDGET(instance->progress_bar));
1363
if (instance->mode == NP_FULL)
1470
if (instance->mode == NP_FULL) {
1364
1471
if ((instance->movie_width + 10 >= instance->window_width)
1365
1472
|| (instance->movie_height + 100 >=
1366
instance->window_height))
1367
if (instance->fullscreen == 0)
1473
instance->window_height)) {
1474
if (instance->fullscreen == 0) {
1368
1475
if (GTK_IS_CONTAINER(instance->fixed_container)) {
1476
if (GTK_IS_WIDGET(instance->image))
1477
gtk_widget_hide(GTK_WIDGET(instance->image));
1478
if (GTK_IS_WIDGET(instance->status))
1479
gtk_widget_hide(GTK_WIDGET(instance->status));
1480
if (GTK_IS_WIDGET(instance->mediaprogress_bar))
1481
gtk_widget_hide(GTK_WIDGET(instance->mediaprogress_bar));
1482
instance->showtracker = 0;
1369
1483
gtk_fixed_put(GTK_FIXED
1370
1484
(instance->fixed_container),
1371
1485
instance->drawing_area, 0, 0);
1372
gtk_widget_hide(instance->drawing_area);
1373
gtk_widget_show(instance->drawing_area);
1490
if (instance->showcontrols) {
1491
if (instance->movie_width > instance->window_width
1492
|| instance->movie_height >
1493
(instance->window_height - 17)) {
1494
if (instance->movie_width > instance->window_width) {
1495
new_width = instance->window_width;
1497
(instance->window_width *
1498
(instance->movie_height -
1499
17)) / instance->movie_width;
1502
if (instance->movie_height >
1503
(instance->window_height - 17)) {
1504
new_height = (instance->window_height - 17);
1506
((instance->window_height -
1507
17) * instance->movie_width) /
1508
instance->movie_height;
1512
new_width = instance->movie_width;
1513
new_height = instance->movie_height;
1517
if (instance->movie_width > instance->window_width
1518
|| instance->movie_height >
1519
instance->window_height) {
1520
if (instance->movie_width > instance->window_width) {
1521
new_width = instance->window_width;
1523
(instance->window_width *
1524
instance->movie_height) /
1525
instance->movie_width;
1528
if (instance->movie_height >
1529
instance->window_height) {
1530
new_height = instance->window_height;
1532
(instance->window_height *
1533
instance->movie_width) /
1534
instance->movie_height;
1538
new_width = instance->movie_width;
1539
new_height = instance->movie_height;
1543
gtk_widget_set_usize(instance->drawing_area,
1544
new_width, new_height);
1546
if ((instance->movie_width + 10) >= instance->window_width
1547
|| (instance->movie_height + 100) >=
1548
instance->window_height) {
1549
gtk_fixed_put(GTK_FIXED(instance->fixed_container),
1550
instance->drawing_area, 0, 0);
1551
if (GTK_IS_WIDGET(instance->image))
1552
gtk_widget_hide(GTK_WIDGET(instance->image));
1553
if (GTK_IS_WIDGET(instance->status))
1554
gtk_widget_hide(GTK_WIDGET(instance->status));
1555
if (GTK_IS_WIDGET(instance->mediaprogress_bar))
1556
gtk_widget_hide(GTK_WIDGET(instance->mediaprogress_bar));
1559
gtk_fixed_put(GTK_FIXED
1560
(instance->fixed_container),
1561
instance->drawing_area, 10, 100);
1562
if (GTK_IS_WIDGET(instance->image))
1563
gtk_widget_show(GTK_WIDGET(instance->image));
1564
if (GTK_IS_WIDGET(instance->status))
1565
gtk_widget_show(GTK_WIDGET(instance->status));
1569
if (instance->targetplayer && instance->showcontrols) {
1570
gtk_widget_set_usize(instance->drawing_area,
1571
instance->movie_width,
1572
instance->movie_height + 16 );
1575
if (instance->showcontrols) {
1576
if (instance->movie_height > (instance->window_height - 16)) {
1577
gtk_widget_set_size_request(GTK_WIDGET(instance->drawing_area),instance->movie_width,instance->window_height -16);
1579
gtk_widget_set_size_request(GTK_WIDGET(instance->drawing_area),instance->movie_width,instance->movie_height);
1582
gtk_widget_set_size_request(GTK_WIDGET(instance->drawing_area),instance->movie_width,instance->movie_height);
1506
1718
if (instance->mInitialized == FALSE)
1508
1722
if (instance->mediaprogress_bar != NULL) {
1509
1723
if (GTK_IS_PROGRESS_BAR(instance->mediaprogress_bar)) {
1510
1724
if (((int) instance->mediaLength > 0)
1511
1725
&& (instance->mediaPercent <= 100)) {
1512
if (instance->controlsvisible && instance->showtracker)
1726
if (instance->controlsvisible && instance->showtracker) {
1513
1727
gtk_widget_show(GTK_WIDGET
1514
1728
(instance->mediaprogress_bar));
1515
gtk_progress_bar_update(instance->mediaprogress_bar,
1516
instance->mediaPercent / 100.0);
1729
gtk_progress_bar_update(instance->mediaprogress_bar,
1730
instance->mediaPercent /
1518
1733
#ifdef GTK2_ENABLED
1519
if (((int) instance->mediaTime > 0)
1520
&& (instance->showtime == 1)) {
1521
seconds = (int) instance->mediaTime;
1522
if (seconds >= 3600) {
1523
hour = seconds / 3600;
1524
seconds = seconds - (hour * 3600);
1526
if (seconds >= 60) {
1528
seconds = seconds - (min * 60);
1530
length_seconds = (int) instance->mediaLength;
1531
if (length_seconds >= 3600) {
1532
length_hour = length_seconds / 3600;
1534
length_seconds - (length_hour * 3600);
1536
if (length_seconds >= 60) {
1537
length_min = length_seconds / 60;
1539
length_seconds - (length_min * 60);
1541
if (hour == 0 && length_hour == 0) {
1542
snprintf(display, 30, "%2i:%02i / %2i:%02i", min,
1543
(int) seconds, length_min,
1544
(int) length_seconds);
1734
if (((int) instance->mediaTime > 0)
1735
&& (instance->showtime == 1)) {
1736
seconds = (int) instance->mediaTime;
1737
if (seconds >= 3600) {
1738
hour = seconds / 3600;
1739
seconds = seconds - (hour * 3600);
1741
if (seconds >= 60) {
1743
seconds = seconds - (min * 60);
1745
length_seconds = (int) instance->mediaLength;
1746
if (length_seconds >= 3600) {
1747
length_hour = length_seconds / 3600;
1749
length_seconds - (length_hour * 3600);
1751
if (length_seconds >= 60) {
1752
length_min = length_seconds / 60;
1754
length_seconds - (length_min * 60);
1756
if (hour == 0 && length_hour == 0) {
1757
snprintf(display, 30, "%2i:%02i / %2i:%02i",
1758
min, (int) seconds, length_min,
1759
(int) length_seconds);
1761
snprintf(display, 30,
1762
"%i:%02i:%02i / %i:%02i:%02i", hour,
1763
min, (int) seconds, length_hour,
1764
length_min, (int) length_seconds);
1767
gtk_progress_bar_set_text(instance->
1546
snprintf(display, 30,
1547
"%i:%02i:%02i / %i:%02i:%02i", hour, min,
1548
(int) seconds, length_hour, length_min,
1549
(int) length_seconds);
1771
if (gtk_progress_bar_get_text
1772
(instance->mediaprogress_bar) != NULL)
1773
gtk_progress_bar_set_text(instance->
1551
gtk_progress_bar_set_text(instance->mediaprogress_bar,
1554
snprintf(display, 30, "");
1555
gtk_progress_bar_set_text(instance->mediaprogress_bar,
1780
gtk_widget_hide(GTK_WIDGET
1781
(instance->mediaprogress_bar));
1561
gtk_widget_hide(GTK_WIDGET(instance->mediaprogress_bar));
1784
gtk_widget_hide(GTK_WIDGET
1785
(instance->mediaprogress_bar));
2051
2293
fprintf(output, "enable-mpeg=%i\n", instance->enable_mpeg);
2052
2294
fprintf(output, "enable-mp3=%i\n", instance->enable_mp3);
2053
2295
fprintf(output, "enable-ogg=%i\n", instance->enable_ogg);
2296
fprintf(output, "enable-midi=%i\n", instance->enable_midi);
2297
fprintf(output, "enable-pls=%i\n", instance->enable_pls);
2054
2298
fprintf(output, "enable-smil=%i\n", instance->enable_smil);
2055
2299
fprintf(output, "enable-helix=%i\n", instance->enable_helix);
2056
2300
fprintf(output, "nomediacache=%i\n", instance->nomediacache);
2301
fprintf(output, "nopauseonhide=%i\n", instance->nopauseonhide);
2057
2302
fprintf(output, "rtsp-use-tcp=%i\n", instance->rtsp_use_tcp);
2303
fprintf(output, "rtsp-use-http=%i\n", instance->rtsp_use_http);
2060
2306
while (fgets(buffer, sizeof(buffer), input) != NULL) {
2069
2315
} else if (strncasecmp(buffer, "enable-rm", 9) == 0) {
2070
2316
} else if (strncasecmp(buffer, "enable-mpeg", 11) == 0) {
2071
2317
} else if (strncasecmp(buffer, "enable-mp3", 10) == 0) {
2318
} else if (strncasecmp(buffer, "enable-midi", 11) == 0) {
2319
} else if (strncasecmp(buffer, "enable-pls", 10) == 0) {
2072
2320
} else if (strncasecmp(buffer, "enable-ogg", 10) == 0) {
2073
2321
} else if (strncasecmp(buffer, "enable-gmp", 10) == 0) {
2074
2322
} else if (strncasecmp(buffer, "enable-smil", 11) == 0) {
2075
2323
} else if (strncasecmp(buffer, "enable-helix", 12) == 0) {
2076
2324
} else if (strncasecmp(buffer, "nomediacache", 12) == 0) {
2325
} else if (strncasecmp(buffer, "nopauseonhide", 13) == 0) {
2077
2326
} else if (strncasecmp(buffer, "rtsp-use-tcp", 12) == 0) {
2327
} else if (strncasecmp(buffer, "rtsp-use-http", 13) == 0) {
2079
2329
fprintf(output, "%s", buffer);
2119
2369
fprintf(output, "enable-gmp=%i\n", instance->enable_gmp);
2120
2370
fprintf(output, "enable-mpeg=%i\n", instance->enable_mpeg);
2121
2371
fprintf(output, "enable-mp3=%i\n", instance->enable_mp3);
2372
fprintf(output, "enable-midi=%i\n", instance->enable_midi);
2373
fprintf(output, "enable-pls=%i\n", instance->enable_pls);
2122
2374
fprintf(output, "enable-ogg=%i\n", instance->enable_ogg);
2123
2375
fprintf(output, "enable-smil=%i\n", instance->enable_smil);
2124
2376
fprintf(output, "enable-helix=%i\n", instance->enable_helix);
2125
2377
fprintf(output, "nomediacache=%i\n", instance->nomediacache);
2378
fprintf(output, "nopauseonhide=%i\n", instance->nopauseonhide);
2126
2379
fprintf(output, "rtsp-use-tcp=%i\n", instance->rtsp_use_tcp);
2380
fprintf(output, "rtsp-use-http=%i\n", instance->rtsp_use_http);
2127
2381
fclose(output);
2128
2382
ret = rename(tmp_name, config_name);
2129
2383
if (ret == -1) {
2188
2442
gtk_combo_box_append_text(GTK_COMBO_BOX(instance->conf_vo), "xv");
2189
2443
if (instance->vo != NULL) {
2190
2444
if (strcmp(instance->vo, "gl") == 0)
2191
gtk_combo_box_set_active(GTK_COMBO_BOX(instance->conf_vo),
2445
gtk_combo_box_set_active(GTK_COMBO_BOX
2446
(instance->conf_vo), 0);
2193
2447
if (strcmp(instance->vo, "x11") == 0)
2194
gtk_combo_box_set_active(GTK_COMBO_BOX(instance->conf_vo),
2448
gtk_combo_box_set_active(GTK_COMBO_BOX
2449
(instance->conf_vo), 1);
2196
2450
if (strcmp(instance->vo, "xv") == 0)
2197
gtk_combo_box_set_active(GTK_COMBO_BOX(instance->conf_vo),
2451
gtk_combo_box_set_active(GTK_COMBO_BOX
2452
(instance->conf_vo), 2);
2199
2453
if (gtk_combo_box_get_active(GTK_COMBO_BOX(instance->conf_vo))
2201
gtk_combo_box_append_text(GTK_COMBO_BOX(instance->conf_vo),
2455
gtk_combo_box_append_text(GTK_COMBO_BOX
2456
(instance->conf_vo),
2203
gtk_combo_box_set_active(GTK_COMBO_BOX(instance->conf_vo),
2458
gtk_combo_box_set_active(GTK_COMBO_BOX
2459
(instance->conf_vo), 3);
2213
2468
gtk_combo_box_append_text(GTK_COMBO_BOX(instance->conf_ao),
2215
2470
gtk_combo_box_append_text(GTK_COMBO_BOX(instance->conf_ao), "esd");
2471
gtk_combo_box_append_text(GTK_COMBO_BOX(instance->conf_ao),
2216
2473
gtk_combo_box_append_text(GTK_COMBO_BOX(instance->conf_ao), "oss");
2217
2474
if (instance->ao != NULL) {
2218
2475
if (strcmp(instance->ao, "alsa") == 0)
2219
gtk_combo_box_set_active(GTK_COMBO_BOX(instance->conf_ao),
2476
gtk_combo_box_set_active(GTK_COMBO_BOX
2477
(instance->conf_ao), 0);
2221
2478
if (strcmp(instance->ao, "arts") == 0)
2222
gtk_combo_box_set_active(GTK_COMBO_BOX(instance->conf_ao),
2479
gtk_combo_box_set_active(GTK_COMBO_BOX
2480
(instance->conf_ao), 1);
2224
2481
if (strcmp(instance->ao, "esd") == 0)
2225
gtk_combo_box_set_active(GTK_COMBO_BOX(instance->conf_ao),
2482
gtk_combo_box_set_active(GTK_COMBO_BOX
2483
(instance->conf_ao), 2);
2484
if (strcmp(instance->ao, "jack") == 0)
2485
gtk_combo_box_set_active(GTK_COMBO_BOX
2486
(instance->conf_ao), 3);
2227
2487
if (strcmp(instance->ao, "oss") == 0)
2228
gtk_combo_box_set_active(GTK_COMBO_BOX(instance->conf_ao),
2488
gtk_combo_box_set_active(GTK_COMBO_BOX
2489
(instance->conf_ao), 4);
2230
2490
if (gtk_combo_box_get_active(GTK_COMBO_BOX(instance->conf_ao))
2232
gtk_combo_box_append_text(GTK_COMBO_BOX(instance->conf_ao),
2492
gtk_combo_box_append_text(GTK_COMBO_BOX
2493
(instance->conf_ao),
2234
gtk_combo_box_set_active(GTK_COMBO_BOX(instance->conf_ao),
2495
gtk_combo_box_set_active(GTK_COMBO_BOX
2496
(instance->conf_ao), 4);
2268
2529
#ifdef GTK24_ENABLED
2269
2530
conf_label = gtk_label_new(_("Video Output:"));
2270
2531
gtk_misc_set_alignment(GTK_MISC(conf_label), 0.0, 0.0);
2271
gtk_table_attach_defaults(GTK_TABLE(conf_table), conf_label, 0, 1, 0,
2532
gtk_table_attach_defaults(GTK_TABLE(conf_table), conf_label, 0, 1,
2273
2534
gtk_widget_show(conf_label);
2274
gtk_table_attach_defaults(GTK_TABLE(conf_table), instance->conf_vo, 1,
2535
gtk_table_attach_defaults(GTK_TABLE(conf_table), instance->conf_vo,
2277
2538
conf_label = gtk_label_new(_("Audio Output:"));
2278
2539
gtk_misc_set_alignment(GTK_MISC(conf_label), 0.0, 0.0);
2279
gtk_table_attach_defaults(GTK_TABLE(conf_table), conf_label, 0, 1, 1,
2540
gtk_table_attach_defaults(GTK_TABLE(conf_table), conf_label, 0, 1,
2281
2542
gtk_widget_show(conf_label);
2282
2543
gtk_misc_set_alignment(GTK_MISC(conf_label), 0.0, 0.0);
2283
gtk_table_attach_defaults(GTK_TABLE(conf_table), instance->conf_ao, 1,
2544
gtk_table_attach_defaults(GTK_TABLE(conf_table), instance->conf_ao,
2285
2546
conf_label = gtk_label_new(_("Save to Location:"));
2286
gtk_table_attach_defaults(GTK_TABLE(conf_table), conf_label, 0, 1, 2,
2547
gtk_table_attach_defaults(GTK_TABLE(conf_table), conf_label, 0, 1,
2288
2549
gtk_widget_show(conf_label);
2289
2550
gtk_misc_set_alignment(GTK_MISC(conf_label), 0.0, 0.0);
2290
gtk_table_attach_defaults(GTK_TABLE(conf_table), instance->conf_dir, 1,
2551
gtk_table_attach_defaults(GTK_TABLE(conf_table),
2552
instance->conf_dir, 1, 2, 2, 3);
2294
2555
conf_label = gtk_label_new(_("Minimum Cache Size:"));
2295
2556
gtk_misc_set_alignment(GTK_MISC(conf_label), 0.0, 0.0);
2296
gtk_table_attach_defaults(GTK_TABLE(conf_table), conf_label, 0, 1, 3,
2557
gtk_table_attach_defaults(GTK_TABLE(conf_table), conf_label, 0, 1,
2298
2559
gtk_widget_show(conf_label);
2299
2560
instance->conf_cachesize = gtk_hscale_new_with_range(0, 32767, 512);
2300
2561
gtk_table_attach_defaults(GTK_TABLE(conf_table),
2429
2690
instance->enable_ogg);
2430
2691
gtk_widget_show(instance->conf_enable_ogg);
2693
instance->conf_enable_midi =
2694
gtk_check_button_new_with_label(_("Enable MIDI Support"));
2695
gtk_table_attach_defaults(GTK_TABLE(conf_table),
2696
instance->conf_enable_midi, 1, 2, row,
2699
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON
2700
(instance->conf_enable_midi),
2701
instance->enable_midi);
2702
gtk_widget_show(instance->conf_enable_midi);
2704
instance->conf_enable_pls =
2705
gtk_check_button_new_with_label(_("Enable Shoutcast PLS Support"));
2706
gtk_table_attach_defaults(GTK_TABLE(conf_table),
2707
instance->conf_enable_pls, 1, 2, row,
2710
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON
2711
(instance->conf_enable_pls),
2712
instance->enable_pls);
2713
gtk_widget_show(instance->conf_enable_pls);
2432
2715
instance->conf_nomediacache =
2433
2716
gtk_check_button_new_with_label(_
2434
2717
("Play media directly from site (No Caching)"));
2447
2730
gtk_table_attach_defaults(GTK_TABLE(conf_table),
2448
2731
instance->conf_rtsptcp, 1, 2, row, row + 1);
2450
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(instance->conf_rtsptcp),
2733
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON
2734
(instance->conf_rtsptcp),
2451
2735
instance->rtsp_use_tcp);
2452
2736
gtk_widget_show(instance->conf_rtsptcp);
2738
instance->conf_rtsphttp =
2739
gtk_check_button_new_with_label(_("Use HTTP instead of RTSP"));
2740
gtk_table_attach_defaults(GTK_TABLE(conf_table),
2741
instance->conf_rtsphttp, 1, 2, row, row + 1);
2743
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON
2744
(instance->conf_rtsphttp),
2745
instance->rtsp_use_http);
2746
gtk_widget_show(instance->conf_rtsphttp);
2748
instance->conf_pauseonhide =
2749
gtk_check_button_new_with_label(_("Pause Video when hidden"));
2750
gtk_table_attach_defaults(GTK_TABLE(conf_table),
2751
instance->conf_pauseonhide, 1, 2, row,
2754
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON
2755
(instance->conf_pauseonhide),
2756
!instance->nopauseonhide);
2757
gtk_widget_show(instance->conf_pauseonhide);
2455
2760
gtk_container_add(GTK_CONTAINER(conf_hbutton_box), conf_ok);
2456
2761
gtk_container_add(GTK_CONTAINER(conf_hbutton_box), conf_cancel);
2482
2787
// only pause if video is present, if we have streaming audio we want to keep playing
2484
if (event->type == GDK_VISIBILITY_NOTIFY) {
2486
if (((GdkEventVisibility *) event)->state ==
2487
GDK_VISIBILITY_FULLY_OBSCURED) {
2488
if (instance->paused == 0 && instance->threadsignaled
2489
&& instance->nopauseonhide == 0) {
2491
if (instance->movie_width != 0
2492
&& instance->movie_height != 0) {
2494
instance->paused_wheninvisible = 1;
2498
if (instance->onHiddenCallback != NULL)
2499
NPN_GetURL(instance->mInstance,
2500
instance->onHiddenCallback, "_self");
2503
if (instance->paused_wheninvisible == 1
2504
&& instance->threadsignaled
2505
&& instance->nopauseonhide == 0) {
2507
if (instance->movie_width != 0
2508
&& instance->movie_height != 0) {
2510
instance->paused_wheninvisible = 0;
2514
if (instance->onVisibleCallback != NULL)
2515
NPN_GetURL(instance->mInstance,
2516
instance->onVisibleCallback, "_self");
2789
if (instance->cancelled == 0) {
2791
if (event->type == GDK_VISIBILITY_NOTIFY) {
2793
if (((GdkEventVisibility *) event)->state ==
2794
GDK_VISIBILITY_FULLY_OBSCURED) {
2795
if (instance->paused == 0 && instance->threadsignaled
2796
&& instance->nopauseonhide == 0) {
2798
if (instance->movie_width != 0
2799
&& instance->movie_height != 0) {
2801
instance->paused_wheninvisible = 1;
2805
if (instance->onHiddenCallback != NULL)
2806
NPN_GetURL(instance->mInstance,
2807
instance->onHiddenCallback, "_self");
2810
if (instance->paused_wheninvisible == 1
2811
&& instance->threadsignaled
2812
&& instance->nopauseonhide == 0) {
2814
if (instance->movie_width != 0
2815
&& instance->movie_height != 0) {
2817
instance->paused_wheninvisible = 0;
2821
if (instance->onVisibleCallback != NULL)
2822
NPN_GetURL(instance->mInstance,
2823
instance->onVisibleCallback, "_self");
2522
2829
return (FALSE);
2589
2897
gchar *command;
2590
2898
GError *error = NULL;
2591
2899
int exit_status;
2900
gchar *dirname = NULL;
2901
gchar *filename = NULL;
2594
2902
gboolean result;
2595
2903
GtkWidget *fixed_button_container;
2598
2906
printf("In srcToButton\n");
2600
// setup tmp directory
2602
g_strdup_printf("%s", tempnam("/tmp", "mplayerplug-inXXXXXX"));
2603
filename = g_strdup_printf("%s/00000001.jpg", dirname);
2605
// run mplayer and try to get the first frame and convert it to a jpeg
2607
g_strdup_printf("mplayer -vo jpeg:outdir=%s -frames 1 %s", dirname,
2609
if (!g_spawn_command_line_sync
2610
(command, NULL, NULL, &exit_status, &error))
2611
printf("Error when running When running command: %s\n%s\n",
2612
command, error->message);
2614
if (fexists(filename)) {
2615
instance->pb_src = gdk_pixbuf_new_from_file(filename, &error);
2618
gdk_pixbuf_new_from_xpm_data((const char **) start);
2908
// try to load the file natively
2910
instance->pb_src = gdk_pixbuf_new_from_file(url, &error);
2912
if (instance->pb_src == NULL) {
2913
// setup tmp directory
2915
g_strdup_printf("%s", tempnam("/tmp", "mplayerplug-inXXXXXX"));
2916
filename = g_strdup_printf("%s/00000001.jpg", dirname);
2918
// run mplayer and try to get the first frame and convert it to a jpeg
2920
g_strdup_printf("mplayer -vo jpeg:outdir=%s -frames 1 %s",
2922
if (!g_spawn_command_line_sync
2923
(command, NULL, NULL, &exit_status, &error))
2924
printf("Error when running When running command: %s\n%s\n",
2925
command, error->message);
2927
if (fexists(filename)) {
2929
instance->pb_src = gdk_pixbuf_new_from_file(filename, &error);
2932
gdk_pixbuf_new_from_xpm_data((const char **) start);
2620
2937
if (instance->pb_src != NULL) {
2621
2938
if (instance->targetplayer == 0) {
2622
2939
instance->src_event_box = gtk_event_box_new();
2629
2946
G_CALLBACK(load_href_callback), instance);
2630
2947
gtk_fixed_put(GTK_FIXED(instance->fixed_container),
2631
2948
instance->src_event_box, 0, 0);
2949
gtk_widget_set_size_request(GTK_WIDGET
2950
(instance->src_event_box),
2951
instance->embed_width,
2952
instance->embed_height);
2632
2953
gtk_widget_show(GTK_WIDGET(instance->image_src));
2633
2954
gtk_widget_show(instance->src_event_box);
2955
gtk_widget_show(instance->fixed_container);
2635
instance->button_window = gtk_window_new(GTK_WINDOW_POPUP);
2636
gtk_widget_set_size_request(instance->button_window,
2637
instance->window_width,
2638
instance->window_height);
2639
2957
gtk_widget_add_events(instance->button_window,
2640
2958
GDK_BUTTON_PRESS_MASK);
2641
2959
gtk_widget_realize(instance->button_window);
2642
2960
instance->src_event_box = gtk_event_box_new();
2643
2961
instance->image_src =
2644
2962
gtk_image_new_from_pixbuf(instance->pb_src);
2645
gtk_container_add(GTK_CONTAINER(instance->src_event_box),
2646
instance->image_src);
2647
2963
g_signal_connect(G_OBJECT(instance->src_event_box),
2648
2964
"button_press_event",
2649
2965
G_CALLBACK(load_href_callback), instance);
2967
gtk_widget_set_size_request(GTK_WIDGET
2968
(instance->src_event_box),
2969
instance->embed_width,
2970
instance->embed_height);
2971
gtk_container_add(GTK_CONTAINER(instance->src_event_box),
2972
instance->image_src);
2650
2973
fixed_button_container = gtk_fixed_new();
2974
gtk_widget_set_size_request(GTK_WIDGET
2975
(fixed_button_container),
2976
instance->embed_width,
2977
instance->embed_height);
2651
2978
gtk_container_add(GTK_CONTAINER(instance->button_window),
2652
2979
fixed_button_container);
2653
2980
gtk_fixed_put(GTK_FIXED(fixed_button_container),