sinek/src audio.c,1.3,1.4 keys.c,1.42,1.43 main.c,1.21,1.22 playlist.c,1.33,1.34 popup.c,1.28,1.29 prefs.c,1.23,1.24 sinek.c,1.7,1.8 tune.c,1.11,1.12 utility.c,1.35,1.36 video.c,1.26,1.27
[email protected] Fri, 03 Jan 2003 01:42:23 -0800
| Newsgroups | gmane.comp.video.sinek.cvs |
|---|---|
| Message-ID | <[email protected]> |
Update of /cvsroot/sinek/sinek/src
In directory sc8-pr-cvs1:/tmp/cvs-serv21140/src
Modified Files:
audio.c keys.c main.c playlist.c popup.c prefs.c sinek.c
tune.c utility.c video.c
Log Message:
um, yea. started port to xine1.0 (yet again). osd.c doesn't compile yet..
Index: audio.c
===================================================================
RCS file: /cvsroot/sinek/sinek/src/audio.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- audio.c 29 Apr 2002 18:28:12 -0000 1.3
+++ audio.c 3 Jan 2003 09:42:19 -0000 1.4
@@ -11,25 +11,16 @@
#include "common.h"
static int volume = 0;
-static int mixercaps = 0;
-static int mixer = 0;
int audio_init(void)
{
sinek_audio_set_output(media);
sinek.xine = media->xine;
- xine_select_audio_channel(sinek.xine, sinek.audio_channel);
- xine_select_spu_channel(sinek.xine, sinek.spu_channel);
-
- mixercaps = xine_get_audio_capabilities(sinek.xine);
- if(mixercaps & AO_CAP_PCM_VOL)
- mixer = AO_PROP_PCM_VOL;
- else if(mixercaps & AO_CAP_MIXER_VOL)
- mixer = AO_PROP_MIXER_VOL;
-
- if(mixercaps & (AO_CAP_PCM_VOL | AO_CAP_MIXER_VOL))
- volume = xine_get_audio_property(sinek.xine, mixer);
+ xine_set_param(sinek.stream, XINE_PARAM_AUDIO_CHANNEL_LOGICAL, sinek.audio_channel);
+ xine_set_param(sinek.stream, XINE_PARAM_SPU_CHANNEL, sinek.spu_channel);
+
+ volume = xine_get_param(sinek.stream, XINE_PARAM_AUDIO_VOLUME);
return 1;
}
@@ -48,10 +39,7 @@
if(volume < 0) volume = 0;
if(volume > 100) volume = 100;
- if(mixercaps & (AO_CAP_MIXER_VOL | AO_CAP_PCM_VOL))
- {
- xine_set_audio_property(sinek.xine, mixer, volume);
- }
+ xine_set_param(sinek.stream, XINE_PARAM_AUDIO_VOLUME, volume);
}
@@ -63,9 +51,6 @@
void audio_toggle_mute(void)
{
- if(mixercaps & AO_CAP_MUTE_VOL)
- {
- sinek.mute = ~sinek.mute;
- xine_set_audio_property(sinek.xine, AO_PROP_MUTE_VOL, sinek.mute);
- }
+ sinek.mute = ~sinek.mute;
+ xine_set_param(sinek.stream, XINE_PARAM_AUDIO_MUTE, sinek.mute);
}
Index: keys.c
===================================================================
RCS file: /cvsroot/sinek/sinek/src/keys.c,v
retrieving revision 1.42
retrieving revision 1.43
diff -u -d -r1.42 -r1.43
--- keys.c 19 Jul 2002 20:21:15 -0000 1.42
+++ keys.c 3 Jan 2003 09:42:19 -0000 1.43
@@ -716,9 +716,9 @@
case CMD_PAUSE:
if(sinek.pause)
- xine_set_speed(sinek.xine, SPEED_NORMAL);
+ xine_set_param(sinek.stream, XINE_PARAM_SPEED, XINE_SPEED_NORMAL);
else
- xine_set_speed(sinek.xine, SPEED_PAUSE);
+ xine_set_param(sinek.stream, XINE_PARAM_SPEED, XINE_SPEED_PAUSE);
sinek.pause = ~sinek.pause;
break;
@@ -745,27 +745,27 @@
break;
case CMD_SPEED_FAST:
- tmp = xine_get_speed(sinek.xine);
- if(tmp != SPEED_PAUSE && tmp < SPEED_FAST_4)
- xine_set_speed(sinek.xine, tmp * 2);
+ tmp = xine_get_param(sinek.stream, XINE_PARAM_SPEED);
+ if(tmp != XINE_SPEED_PAUSE && tmp < XINE_SPEED_FAST_4)
+ xine_set_param(sinek.stream, XINE_PARAM_SPEED, tmp * 2);
break;
case CMD_SPEED_SLOW:
- tmp = xine_get_speed(sinek.xine);
- if(tmp > SPEED_SLOW_4)
- xine_set_speed(sinek.xine, tmp / 2);
+ tmp = xine_get_param(sinek.stream, XINE_PARAM_SPEED);
+ if(tmp > XINE_SPEED_SLOW_4)
+ xine_set_param(sinek.stream, XINE_PARAM_SPEED, tmp / 2);
break;
case CMD_AV_OFFSET_DOWN:
- tmp = xine_get_av_offset(sinek.xine);
+ tmp = xine_get_param(sinek.stream, XINE_PARAM_AV_OFFSET);
tmp = tmp - 3600;
- xine_set_av_offset(sinek.xine, tmp);
+ xine_set_param(sinek.stream, XINE_PARAM_AV_OFFSET, tmp);
break;
case CMD_AV_OFFSET_UP:
- tmp = xine_get_av_offset(sinek.xine);
+ tmp = xine_get_param(sinek.stream, XINE_PARAM_AV_OFFSET);
tmp = tmp + 3600;
- xine_set_av_offset(sinek.xine, tmp);
+ xine_set_param(sinek.stream, XINE_PARAM_AV_OFFSET, tmp);
break;
case CMD_SHOW_ABOUT:
@@ -812,18 +812,18 @@
break;
case CMD_TOGGLE_ASPECT:
- tmp = media->vd->get_property(media->vd, VO_PROP_ASPECT_RATIO);
- media->vd->set_property(media->vd, VO_PROP_ASPECT_RATIO, tmp + 1);
+ tmp = xine_get_param(sinek.stream, XINE_PARAM_VO_ASPECT_RATIO);
+ xine_set_param(sinek.stream, XINE_PARAM_VO_ASPECT_RATIO, tmp + 1);
break;
case CMD_TOGGLE_INTERLEAVE:
- tmp = media->vd->get_property(media->vd, VO_PROP_INTERLACED);
- media->vd->set_property(media->vd, VO_PROP_INTERLACED, 1 - tmp);
+ tmp = xine_get_param(sinek.stream, XINE_PARAM_VO_DEINTERLACE);
+ xine_set_param(sinek.stream, XINE_PARAM_VO_DEINTERLACE, 1 - tmp);
break;
case CMD_TOGGLE_TVMODE:
- tmp = media->vd->get_property(media->vd, VO_PROP_ASPECT_RATIO);
- media->vd->set_property(media->vd, VO_PROP_TVMODE, tmp);
+ tmp = xine_get_param(sinek.stream, XINE_PARAM_VO_TVMODE);
+ xine_set_param(sinek.stream, XINE_PARAM_VO_TVMODE, tmp);
break;
case CMD_TOGGLE_SUBTITLES:
@@ -846,7 +846,12 @@
sinek.signal_fake = 1;
gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(sinek.repeat_all_chk), sinek.repeat_all);
sinek.signal_fake = 0;
- media->conf->update_num(media->conf, "sinek.repeat_all", sinek.repeat_all);
+ {
+ xine_cfg_entry_t e;
+ xine_config_lookup_entry(sinek.xine, "sinek.repeat_all", &e);
+ e.num_value = sinek.repeat_all;
+ xine_config_update_entry(sinek.xine, &e);
+ }
break;
case CMD_TOGGLE_MUTE:
@@ -857,23 +862,23 @@
break;
case CMD_SPU_NEXT:
- tmp = xine_get_spu_channel(sinek.xine);
- xine_select_spu_channel(sinek.xine, tmp + 1);
+ tmp = xine_get_param(sinek.stream, XINE_PARAM_SPU_CHANNEL);
+ xine_set_param(sinek.stream, XINE_PARAM_SPU_CHANNEL, tmp + 1);
break;
case CMD_SPU_PREVIOUS:
- tmp = xine_get_spu_channel(sinek.xine);
- xine_select_spu_channel(sinek.xine, tmp - 1);
+ tmp = xine_get_param(sinek.stream, XINE_PARAM_SPU_CHANNEL);
+ xine_set_param(sinek.stream, XINE_PARAM_SPU_CHANNEL, tmp - 1);
break;
case CMD_AUDIO_NEXT:
- tmp = xine_get_audio_selection(sinek.xine);
- xine_select_audio_channel(sinek.xine, tmp + 1);
+ tmp = xine_get_param(sinek.stream, XINE_PARAM_AUDIO_CHANNEL_LOGICAL);
+ xine_set_param(sinek.stream, XINE_PARAM_AUDIO_CHANNEL_LOGICAL, tmp + 1);
break;
case CMD_AUDIO_PREVIOUS:
- tmp = xine_get_audio_selection(sinek.xine);
- xine_select_audio_channel(sinek.xine, tmp - 1);
+ tmp = xine_get_param(sinek.stream, XINE_PARAM_AUDIO_CHANNEL_LOGICAL);
+ xine_set_param(sinek.stream, XINE_PARAM_AUDIO_CHANNEL_LOGICAL, tmp - 1);
break;
case CMD_ZOOM_IN:
@@ -916,62 +921,62 @@
case CMD_EVENT_MENU1:
xinev.type = XINE_EVENT_INPUT_MENU1;
- xine_send_event(sinek.xine, &xinev);
+ xine_event_send(sinek.stream, &xinev);
break;
case CMD_EVENT_MENU2:
xinev.type = XINE_EVENT_INPUT_MENU2;
- xine_send_event(sinek.xine, &xinev);
+ xine_event_send(sinek.stream, &xinev);
break;
case CMD_EVENT_MENU3:
xinev.type = XINE_EVENT_INPUT_MENU3;
- xine_send_event(sinek.xine, &xinev);
+ xine_event_send(sinek.stream, &xinev);
break;
case CMD_EVENT_UP:
xinev.type = XINE_EVENT_INPUT_UP;
- xine_send_event(sinek.xine, &xinev);
+ xine_event_send(sinek.stream, &xinev);
break;
case CMD_EVENT_DOWN:
xinev.type = XINE_EVENT_INPUT_DOWN;
- xine_send_event(sinek.xine, &xinev);
+ xine_event_send(sinek.stream, &xinev);
break;
case CMD_EVENT_LEFT:
xinev.type = XINE_EVENT_INPUT_LEFT;
- xine_send_event(sinek.xine, &xinev);
+ xine_event_send(sinek.stream, &xinev);
break;
case CMD_EVENT_RIGHT:
xinev.type = XINE_EVENT_INPUT_RIGHT;
- xine_send_event(sinek.xine, &xinev);
+ xine_event_send(sinek.stream, &xinev);
break;
case CMD_EVENT_NEXT:
xinev.type = XINE_EVENT_INPUT_NEXT;
- xine_send_event(sinek.xine, &xinev);
+ xine_event_send(sinek.stream, &xinev);
break;
case CMD_EVENT_PRIOR:
xinev.type = XINE_EVENT_INPUT_PREVIOUS;
- xine_send_event(sinek.xine, &xinev);
+ xine_event_send(sinek.stream, &xinev);
break;
case CMD_EVENT_ANGLE_NEXT:
xinev.type = XINE_EVENT_INPUT_ANGLE_NEXT;
- xine_send_event(sinek.xine, &xinev);
+ xine_event_send(sinek.stream, &xinev);
break;
case CMD_EVENT_ANGLE_PRIOR:
xinev.type = XINE_EVENT_INPUT_ANGLE_PREVIOUS;
- xine_send_event(sinek.xine, &xinev);
+ xine_event_send(sinek.stream, &xinev);
break;
case CMD_EVENT_SELECT:
xinev.type = XINE_EVENT_INPUT_SELECT;
- xine_send_event(sinek.xine, &xinev);
+ xine_event_send(sinek.stream, &xinev);
break;
case CMD_GOTO_MARK_0:
@@ -985,7 +990,11 @@
case CMD_GOTO_MARK_8:
case CMD_GOTO_MARK_9:
video_seek(sinek.marks[cmd - CMD_GOTO_MARK_0]);
- sinek.marks[0] = xine_get_current_time(sinek.xine);
+ {
+ int x, y, cur;
+ xine_get_pos_length(sinek.stream, &x, &cur, &y);
+ sinek.marks[0] = cur;
+ }
break;
case CMD_SET_MARK_1:
@@ -997,7 +1006,11 @@
case CMD_SET_MARK_7:
case CMD_SET_MARK_8:
case CMD_SET_MARK_9:
- sinek.marks[cmd - CMD_SET_MARK_1 + 1] = xine_get_current_time(sinek.xine);
+ {
+ int x, y, cur;
+ xine_get_pos_length(sinek.stream, &x, &cur, &y);
+ sinek.marks[cmd - CMD_SET_MARK_1 + 1] = cur;
+ }
break;
}
}
Index: main.c
===================================================================
RCS file: /cvsroot/sinek/sinek/src/main.c,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -d -r1.21 -r1.22
--- main.c 29 Jun 2002 20:29:05 -0000 1.21
+++ main.c 3 Jan 2003 09:42:20 -0000 1.22
@@ -13,9 +13,12 @@
struct sinek_globals sinek;
sinek_type *media;
+/* i think this is a bug in xine-lib; keep it for now, anyways */
+extern char *xine_set_locale(void);
+
static int stream_finished = 0;
-static void event_listener(void *this, xine_event_t *event);
+static void event_listener(void *this, const xine_event_t *event);
static gboolean second_update(gpointer data);
#ifdef USE_GUILE
@@ -35,6 +38,8 @@
int main(int argc, char *argv[])
#endif
{
+ xine_event_queue_t *eventq;
+
memset(&sinek, 0, sizeof(sinek));
sinek.repeat_all = ~0;
sinek.video_mode = VIDEO_WINDOW;
@@ -70,7 +75,9 @@
control_update_slider(0, 0);
popup_init();
- xine_register_event_listener(sinek.xine, event_listener, &sinek);
+ eventq = xine_event_new_queue(sinek.stream);
+ xine_event_create_listener_thread(eventq, event_listener, &sinek);
+ /* TODO: dispose of event queue when done */
pl_init();
scrsaver_init();
g_timeout_add(500, (GSourceFunc)second_update, NULL);
@@ -111,11 +118,13 @@
}
stream_finished = 0;
}
- if(xine_get_status(sinek.xine) == XINE_PLAY)
+ if(xine_get_status(sinek.stream) == XINE_STATUS_PLAY)
{
if(!sinek.seeking)
{
- control_update_slider(xine_get_current_time(sinek.xine), xine_get_stream_length(sinek.xine));
+ int pos, t, length;
+ if (xine_get_pos_length(sinek.stream, &t, &pos, &length))
+ control_update_slider(pos, length);
}
if(sinek.osd_subtitles) osd_update();
if(++sinek.cursor_timer == 3) video_cursor(0);
@@ -124,11 +133,11 @@
}
-static void event_listener(void *this, xine_event_t *event)
+static void event_listener(void *this, const xine_event_t *event)
{
switch(event->type)
{
- case XINE_EVENT_PLAYBACK_FINISHED:
+ case XINE_EVENT_UI_PLAYBACK_FINISHED:
if(!stream_finished) stream_finished = 1;
break;
}
Index: playlist.c
===================================================================
RCS file: /cvsroot/sinek/sinek/src/playlist.c,v
retrieving revision 1.33
retrieving revision 1.34
diff -u -d -r1.33 -r1.34
--- playlist.c 22 Jul 2002 21:11:42 -0000 1.33
+++ playlist.c 3 Jan 2003 09:42:20 -0000 1.34
@@ -73,7 +73,7 @@
{
gchar *fname = NULL;
- sinek.repeat_all = media->conf->register_bool(media->conf, "sinek.repeat_all", -1, NULL, NULL, NULL, NULL);
+ sinek.repeat_all = xine_config_register_bool(sinek.xine, "sinek.repeat_all", -1, NULL, NULL, 0, NULL, NULL);
wm_build(pl_build);
Index: popup.c
===================================================================
RCS file: /cvsroot/sinek/sinek/src/popup.c,v
retrieving revision 1.28
retrieving revision 1.29
diff -u -d -r1.28 -r1.29
--- popup.c 30 Jul 2002 00:32:03 -0000 1.28
+++ popup.c 3 Jan 2003 09:42:20 -0000 1.29
@@ -67,7 +67,7 @@
};
GtkItemFactory *fabrika;
gint n = sizeof(menus) / sizeof(menus[0]);
- char **ids;
+ const char *const *ids;
fabrika = gtk_item_factory_new(GTK_TYPE_MENU, "<main>", NULL);
gtk_item_factory_create_items(fabrika, n, menus, NULL);
@@ -75,8 +75,7 @@
autoplay = gtk_item_factory_get_widget(fabrika, _("/Control/Autoplay"));
ids = xine_get_autoplay_input_plugin_ids(sinek.xine);
- create_list(autoplay, ids, G_CALLBACK(cb_auto_browse));
- free(ids);
+ create_list(autoplay, (char **) ids, G_CALLBACK(cb_auto_browse));
w_play = gtk_item_factory_get_widget(fabrika, _("/Control/Play"));
w_pause = gtk_item_factory_get_widget(fabrika, _("/Control/Pause"));
Index: prefs.c
===================================================================
RCS file: /cvsroot/sinek/sinek/src/prefs.c,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -d -r1.23 -r1.24
--- prefs.c 15 Jul 2002 21:08:59 -0000 1.23
+++ prefs.c 3 Jan 2003 09:42:20 -0000 1.24
@@ -28,7 +28,7 @@
struct cfgitem
{
char *label;
- cfg_entry_t *entry;
+ xine_cfg_entry_t *entry;
GtkWidget *widget;
GList *subitems;
};
@@ -142,10 +142,13 @@
void print_version(void)
{
+ int major, minor, sub;
+
+ xine_get_version(&major, &minor, &sub);
printf(_("Sinek v%s (Video Player)\n"), VERSION);
printf(_("built with xine library v%d.%d.%d, using v%d.%d.%d.\n"),
XINE_MAJOR_VERSION, XINE_MINOR_VERSION, XINE_SUB_VERSION,
- xine_get_major_version(), xine_get_minor_version(), xine_get_sub_version());
+ major, minor, sub);
}
@@ -239,8 +242,7 @@
{
GList *page, *item;
struct cfgitem *citem;
- const gchar *str;
- int val = 0;
+ xine_cfg_entry_t entry;
page = g_list_first(page_list);
while(page)
@@ -249,27 +251,28 @@
while(item)
{
citem = (struct cfgitem *)item->data;
- switch(citem->entry->type)
+ xine_config_lookup_entry(media->xine, citem->label, &entry);
+ switch(entry.type)
{
- case CONFIG_TYPE_STRING:
- str = gtk_entry_get_text(GTK_ENTRY(citem->widget));
- media->conf->update_string(media->conf, citem->entry->key, (char *)str);
+ case XINE_CONFIG_TYPE_STRING:
+ entry.str_value = (char *) gtk_entry_get_text(GTK_ENTRY(citem->widget));
+ xine_config_update_entry(media->xine, &entry);
break;
- case CONFIG_TYPE_BOOL:
- val = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(citem->widget));
- media->conf->update_num(media->conf, citem->entry->key, val);
+ case XINE_CONFIG_TYPE_BOOL:
+ entry.num_value = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(citem->widget));
+ xine_config_update_entry(media->xine, &entry);
break;
- case CONFIG_TYPE_ENUM:
- val = gtk_option_menu_get_history(GTK_OPTION_MENU(citem->widget));
- media->conf->update_num(media->conf, citem->entry->key, val);
+ case XINE_CONFIG_TYPE_ENUM:
+ entry.num_value = gtk_option_menu_get_history(GTK_OPTION_MENU(citem->widget));
+ xine_config_update_entry(media->xine, &entry);
break;
- case CONFIG_TYPE_NUM:
- val = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(citem->widget));
- media->conf->update_num(media->conf, citem->entry->key, val);
+ case XINE_CONFIG_TYPE_NUM:
+ entry.num_value = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(citem->widget));
+ xine_config_update_entry(media->xine, &entry);
break;
- case CONFIG_TYPE_RANGE:
- val = ((GtkAdjustment *)citem->widget)->value;
- media->conf->update_num(media->conf, citem->entry->key, val);
+ case XINE_CONFIG_TYPE_RANGE:
+ entry.num_value = ((GtkAdjustment *)citem->widget)->value;
+ xine_config_update_entry(media->xine, &entry);
break;
}
item = g_list_next(item);
@@ -281,8 +284,12 @@
static void cb_ok(GtkWidget *w, GtkWidget *win)
{
+ char *tmp;
+
prf_apply_changes();
- media->conf->save(media->conf);
+ tmp = g_strconcat(g_get_home_dir(), "/.xine/config", NULL);
+ xine_config_save(media->xine, tmp);
+ g_free(tmp);
gtk_widget_hide(win);
}
@@ -414,7 +421,7 @@
GtkWidget *sw, *box, *w;
GList *item;
struct cfgitem *citem;
- cfg_entry_t *entry;
+ xine_cfg_entry_t *entry;
sw = gtk_scrolled_window_new(NULL, NULL);
gtk_widget_show(sw);
@@ -433,11 +440,11 @@
{
switch(entry->type)
{
- case CONFIG_TYPE_STRING: w = build_string(citem); break;
- case CONFIG_TYPE_BOOL: w = build_checkbox(citem); break;
- case CONFIG_TYPE_ENUM: w = build_option(citem); break;
- case CONFIG_TYPE_NUM: w = build_numeric(citem); break;
- case CONFIG_TYPE_RANGE: w = build_scale(citem); break;
+ case XINE_CONFIG_TYPE_STRING: w = build_string(citem); break;
+ case XINE_CONFIG_TYPE_BOOL: w = build_checkbox(citem); break;
+ case XINE_CONFIG_TYPE_ENUM: w = build_option(citem); break;
+ case XINE_CONFIG_TYPE_NUM: w = build_numeric(citem); break;
+ case XINE_CONFIG_TYPE_RANGE: w = build_scale(citem); break;
default: w = NULL;
}
if(w) gtk_box_pack_start(GTK_BOX(box), w, FALSE, FALSE, 0);
@@ -472,9 +479,9 @@
GtkTreeIter iter;
GList *item;
struct cfgitem *cpage, *citem;
- cfg_entry_t *entry;
+ xine_cfg_entry_t entry;
gchar *p;
- int len, num = 0;
+ int r, len, num = 0;
list_store = gtk_list_store_new(N_COLS, G_TYPE_INT, G_TYPE_STRING);
list_view = gtk_tree_view_new_with_model(GTK_TREE_MODEL(list_store));
@@ -483,18 +490,18 @@
gtk_tree_view_append_column(GTK_TREE_VIEW(list_view), col);
gtk_widget_show(list_view);
- entry = media->conf->first;
- while(entry)
+ r = xine_config_get_first_entry(media->xine, &entry);
+ while (r)
{
- p = strchr(entry->key, '.');
- if(p && entry->description)
+ p = strchr(entry.key, '.');
+ if(p && entry.description)
{
- len = p - entry->key;
+ len = p - entry.key;
cpage = NULL;
item = g_list_first(page_list);
while(item)
{
- if(strncmp(((struct cfgitem *)item->data)->label, entry->key, len) == 0)
+ if(strncmp(((struct cfgitem *)item->data)->label, entry.key, len) == 0)
{
cpage = (struct cfgitem *)item->data;
break;
@@ -504,18 +511,17 @@
if(!cpage)
{
cpage = g_malloc0(sizeof(struct cfgitem));
- cpage->label = g_strndup(entry->key, len);
+ cpage->label = g_strndup(entry.key, len);
gtk_list_store_append(list_store, &iter);
gtk_list_store_set(list_store, &iter, COL_NUM, num, COL_TITLE, (gpointer)cpage->label, -1);
num++;
page_list = g_list_append(page_list, (gpointer)cpage);
}
citem = g_malloc0(sizeof(struct cfgitem));
- citem->label = g_strdup(entry->key + len + 1);
- citem->entry = entry;
+ citem->label = g_strdup(entry.key + len + 1);
cpage->subitems = g_list_append(cpage->subitems, (gpointer)citem);
}
- entry = entry->next;
+ r = xine_config_get_next_entry(media->xine, &entry);
}
g_signal_connect(G_OBJECT(gtk_tree_view_get_selection(GTK_TREE_VIEW(list_view))), "changed", G_CALLBACK(cb_page), NULL);
Index: sinek.c
===================================================================
RCS file: /cvsroot/sinek/sinek/src/sinek.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -d -r1.7 -r1.8
--- sinek.c 30 Jul 2002 00:51:33 -0000 1.7
+++ sinek.c 3 Jan 2003 09:42:20 -0000 1.8
@@ -16,7 +16,6 @@
#include <X11/extensions/XShm.h>
#include <X11/Xatom.h>
#include <xine.h>
-#include <xine/video_out_x11.h>
#ifndef XShmGetEventBase
extern int XShmGetEventBase(Display *);
@@ -24,8 +23,8 @@
static int MyShmEvent = -1;
-static void frame_output_cb(void *this, int vid_w, int vid_h, int *dest_x, int *dest_y, int *dest_w, int *dest_h, int *win_x, int *win_y);
-static void dest_size_cb(void *this, int vid_w, int vid_h, int *dest_w, int *dest_h);
+static void frame_output_cb(void *this, int vid_w, int vid_h, double vid_pix_aspect, int *dest_x, int *dest_y, int *dest_w, int *dest_h, double *dest_pix_aspect, int *win_x, int *win_y);
+static void dest_size_cb(void *this, int vid_w, int vid_h, double vid_pix_aspect, int *dest_w, int *dest_h, double *dest_pix_aspect);
extern int translate_point(int x, int y, int *vid_x, int *vid_y);
@@ -37,10 +36,11 @@
s = malloc(sizeof(sinek_type));
memset(s, 0, sizeof(sinek_type));
+ s->xine = xine_new();
home = g_get_home_dir();
tmp = g_strconcat(home, "/.xine/config", NULL);
- s->conf = xine_config_file_init(tmp);
+ xine_config_load(s->xine, tmp);
g_free(tmp);
return s;
@@ -56,37 +56,37 @@
int sinek_audio_set_output(sinek_type *s)
{
- char *id, **driver_ids;
- int i;
+ const char *id;
+ const char *const *driver_ids;
+ xine_cfg_entry_t entry;
- driver_ids = xine_list_audio_output_plugins();
- id = s->conf->register_string(s->conf, "audio.driver", "auto", "audio driver to use", NULL, NULL, NULL);
+ driver_ids = xine_list_audio_output_plugins(s->xine);
+ id = xine_config_register_string(s->xine, "audio.driver", "auto", "audio driver to use", NULL, 0, NULL, NULL);
if(sinek.audio_id) id = sinek.audio_id;
/* try user preferred driver */
if(strncmp(id, "auto", 4) != 0 && strncmp(id, "null", 4) != 0)
- s->ad = xine_load_audio_output_plugin(s->conf, id);
+ s->ad = xine_open_audio_driver(s->xine, id, NULL);
/* if that fails or user choosed auto, try any available driver */
if(!s->ad && strncmp(id, "null", 4) != 0)
{
int i = 0;
while(driver_ids[i])
{
- s->ad = xine_load_audio_output_plugin(s->conf, driver_ids[i]);
+ s->ad = xine_open_audio_driver(s->xine, driver_ids[i], NULL);
if(s->ad) break;
i++;
}
}
- for (i = 0; driver_ids[i]; i++)
- free(driver_ids[i]);
- free(driver_ids);
/* if that fails too or user choosed null, disable audio */
if(!s->ad) id = "null";
- s->conf->update_string(s->conf, "audio.driver", id);
+ xine_config_lookup_entry(s->xine, "audio.driver", &entry);
+ entry.str_value = (char *) id;
+ xine_config_update_entry(s->xine, &entry);
- s->xine = xine_init(s->vd, s->ad, s->conf);
+ sinek.stream = xine_stream_new(s->xine, s->ad, s->vd);
if(!s->xine)
{
printf(_("xine init error\n"));
@@ -100,7 +100,8 @@
void sinek_video_event(sinek_type *s, void *event)
{
XEvent *ev = (XEvent *)event;
- xine_input_event_t xinev;
+ xine_event_t xinev;
+ xine_input_data_t inev;
int x, y;
switch(ev->type)
@@ -108,22 +109,24 @@
case MotionNotify:
if(translate_point(((XMotionEvent *)ev)->x, ((XMotionEvent *)ev)->y, &x, &y))
{
- xinev.event.type = XINE_EVENT_MOUSE_MOVE;
- xinev.button = 0;
- xinev.x = x;
- xinev.y = y;
- xine_send_event(s->xine, (xine_event_t *)&xinev);
+ xinev.type = XINE_EVENT_INPUT_MOUSE_MOVE;
+ inev.button = 0;
+ inev.x = x;
+ inev.y = y;
+ xinev.data = (void *) &inev;
+ xine_event_send(sinek.stream, &xinev);
}
break;
case ButtonPress:
if(((XButtonEvent *)ev)->button == 1 && translate_point(((XButtonEvent *)ev)->x, ((XButtonEvent *)ev)->y, &x, &y))
{
- xinev.event.type = XINE_EVENT_MOUSE_BUTTON;
- xinev.button = 1;
- xinev.x = x;
- xinev.y = y;
- xine_send_event(s->xine, (xine_event_t *)&xinev);
+ xinev.type = XINE_EVENT_INPUT_MOUSE_BUTTON;
+ inev.button = 1;
+ inev.x = x;
+ inev.y = y;
+ xinev.data = (void *) &inev;
+ xine_event_send(sinek.stream, &xinev);
}
break;
@@ -137,22 +140,23 @@
case Expose:
if(((XExposeEvent *)ev)->count == 0)
{
- s->vd->gui_data_exchange(s->vd, GUI_DATA_EX_EXPOSE_EVENT, ev);
+ xine_gui_send_vo_data(sinek.stream, XINE_GUI_SEND_EXPOSE_EVENT, (void *) ev);
}
break;
}
if(ev->type == MyShmEvent)
- s->vd->gui_data_exchange(s->vd, GUI_DATA_EX_COMPLETION_EVENT, ev);
+ xine_gui_send_vo_data(sinek.stream, XINE_GUI_SEND_COMPLETION_EVENT, (void *) ev);
}
int sinek_video_set_output(sinek_type *s, void *display_info)
{
sinek_x11_type *di = (sinek_x11_type *)display_info;
- char *id, **driver_ids;
+ const char *id;
+ const char *const *driver_ids;
double res_h, res_v;
x11_visual_t vis;
- int i;
+ xine_cfg_entry_t entry;
s->display_info = di;
@@ -164,33 +168,30 @@
vis.d = di->drawable;
res_h = (DisplayWidth(vis.display, vis.screen)*1000 / DisplayWidthMM(vis.display, vis.screen));
res_v = (DisplayHeight(vis.display, vis.screen)*1000 / DisplayHeightMM(vis.display, vis.screen));
- vis.display_ratio = res_h / res_v;
+ sinek.display_ratio = res_h / res_v;
vis.frame_output_cb = frame_output_cb;
vis.dest_size_cb = dest_size_cb;
vis.user_data = (void *)s;
- if(fabs(vis.display_ratio - 1.0) < 0.01) vis.display_ratio = 1.0;
+ if(fabs(sinek.display_ratio - 1.0) < 0.01) sinek.display_ratio = 1.0;
- driver_ids = xine_list_video_output_plugins(VISUAL_TYPE_X11);
- id = s->conf->register_string(s->conf, "video.driver", "auto", "video driver to use", NULL, NULL, NULL);
+ driver_ids = xine_list_video_output_plugins(s->xine);
+ id = xine_config_register_string(s->xine, "video.driver", "auto", "video driver to use", NULL, 0, NULL, NULL);
if(sinek.video_id) id = sinek.video_id;
/* try user preferred driver */
if(strncmp(id, "auto", 4) != 0)
- s->vd = xine_load_video_output_plugin(s->conf, id, VISUAL_TYPE_X11, (void *)&vis);
+ s->vd = xine_open_video_driver(s->xine, id, XINE_VISUAL_TYPE_X11, (void *) &vis);
/* if that fails or user choosed auto, try any available driver */
if(!s->vd)
{
int i = 0;
while(driver_ids[i])
{
- s->vd = xine_load_video_output_plugin(s->conf, driver_ids[i], VISUAL_TYPE_X11, (void *)&vis);
+ s->vd = xine_open_video_driver(s->xine, driver_ids[i], XINE_VISUAL_TYPE_X11, (void *) &vis);
if(s->vd) break;
i++;
}
}
- for (i = 0; driver_ids[i]; i++)
- free(driver_ids[i]);
- free(driver_ids);
/* if that fails too, exit with an error */
if(!s->vd)
{
@@ -198,13 +199,15 @@
return 0;
}
- s->conf->update_string(s->conf, "video.driver", id);
+ xine_config_lookup_entry(s->xine, "video.driver", &entry);
+ entry.str_value = (char *) id;
+ xine_config_update_entry(s->xine, &entry);
return 1;
}
-static void frame_output_cb(void *this, int vid_w, int vid_h, int *dest_x, int *dest_y, int *dest_w, int *dest_h, int *win_x, int *win_y)
+static void frame_output_cb(void *this, int vid_w, int vid_h, double vid_pix_aspect, int *dest_x, int *dest_y, int *dest_w, int *dest_h, double *dest_pix_aspect, int *win_x, int *win_y)
{
sinek_x11_type *di = ((sinek_type *)this)->display_info;
@@ -232,7 +235,7 @@
}
-static void dest_size_cb(void *this, int vid_w, int vid_h, int *dest_w, int *dest_h)
+static void dest_size_cb(void *this, int vid_w, int vid_h, double vid_pix_aspect, int *dest_w, int *dest_h, double *dest_pix_aspect)
{
sinek_type *s = (sinek_type *)this;
@@ -245,7 +248,8 @@
{
if(s->mrl) free(s->mrl);
s->mrl = strdup(mrl);
- return xine_play(s->xine, s->mrl, 0, 0);
+ xine_open(sinek.stream, s->mrl);
+ return xine_play(sinek.stream, 0, 0);
}
@@ -253,21 +257,23 @@
{
if(!s->mrl) return;
- if(xine_get_status(s->xine) != XINE_PLAY)
- xine_play(s->xine, s->mrl, 0, 0);
+ if(xine_get_status(sinek.stream) != XINE_STATUS_PLAY) {
+ xine_open(sinek.stream, s->mrl);
+ xine_play(sinek.stream, 0, 0);
+ }
else
- xine_set_speed(s->xine, SPEED_NORMAL);
+ xine_set_param(sinek.stream, XINE_PARAM_SPEED, XINE_SPEED_NORMAL);
}
void sinek_seek(sinek_type *s, unsigned long secs)
{
- if(s->mrl && xine_is_stream_seekable(s->xine))
- xine_play(s->xine, s->mrl, 0, secs);
+ if (s->mrl && xine_get_stream_info(sinek.stream, XINE_STREAM_INFO_SEEKABLE))
+ xine_play(sinek.stream, 0, secs);
}
void sinek_stop(sinek_type *s)
{
- xine_stop(s->xine);
+ xine_stop(sinek.stream);
}
Index: tune.c
===================================================================
RCS file: /cvsroot/sinek/sinek/src/tune.c,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -d -r1.11 -r1.12
--- tune.c 15 Jul 2002 21:08:59 -0000 1.11
+++ tune.c 3 Jan 2003 09:42:20 -0000 1.12
@@ -12,7 +12,6 @@
static GtkWidget *tune_win = NULL;
static GtkObject *hue_adj, *sat_adj, *bri_adj, *con_adj;
-static int vidcap = 0;
static int hue, sat, bri, con;
static GtkObject *create_prop(GtkWidget *box, char *name, int cap, int prop);
@@ -29,8 +28,6 @@
if(tune_win) goto out;
- vidcap = media->vd->get_capabilities(media->vd);
-
tune_win = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_title(GTK_WINDOW(tune_win), _("Sinek Tuner"));
gtk_window_set_wmclass(GTK_WINDOW(tune_win), "tuner", "sinek");
@@ -49,13 +46,13 @@
gtk_container_add(GTK_CONTAINER(b), hb);
gtk_container_set_border_width(GTK_CONTAINER(hb), 5);
- hue_adj = create_prop(hb, _("Hue"), VO_CAP_HUE, VO_PROP_HUE);
+ hue_adj = create_prop(hb, _("Hue"), XINE_PARAM_VO_HUE, XINE_PARAM_VO_HUE);
g_signal_connect(hue_adj, "value_changed", G_CALLBACK(cb_hue), NULL);
- sat_adj = create_prop(hb, _("Saturation"), VO_CAP_SATURATION, VO_PROP_SATURATION);
+ sat_adj = create_prop(hb, _("Saturation"), XINE_PARAM_VO_SATURATION, XINE_PARAM_VO_SATURATION);
g_signal_connect(sat_adj, "value_changed", G_CALLBACK(cb_sat), NULL);
- bri_adj = create_prop(hb, _("Brightness"), VO_CAP_BRIGHTNESS, VO_PROP_BRIGHTNESS);
+ bri_adj = create_prop(hb, _("Brightness"), XINE_PARAM_VO_BRIGHTNESS, XINE_PARAM_VO_BRIGHTNESS);
g_signal_connect(bri_adj, "value_changed", G_CALLBACK(cb_bri), NULL);
- con_adj = create_prop(hb, _("Contrast"), VO_CAP_CONTRAST, VO_PROP_CONTRAST);
+ con_adj = create_prop(hb, _("Contrast"), XINE_PARAM_VO_CONTRAST, XINE_PARAM_VO_CONTRAST);
g_signal_connect(con_adj, "value_changed", G_CALLBACK(cb_con), NULL);
hb2 = gtk_hbutton_box_new();
@@ -99,16 +96,15 @@
gtk_widget_show(vb);
gtk_box_pack_start(GTK_BOX(box), vb, TRUE, TRUE, 0);
- cur = media->vd->get_property(media->vd, prop);
- media->vd->get_property_min_max(media->vd, prop, &min, &max);
- adj = gtk_adjustment_new(cur, min, max, 1, 0, 0);
+ cur = xine_get_param(sinek.stream, prop);
+ //media->vd->get_property_min_max(media->vd, prop, &min, &max);
+ adj = gtk_adjustment_new(cur, 0, 100, 1, 0, 0);
scale = gtk_vscale_new(GTK_ADJUSTMENT(adj));
gtk_widget_show(scale);
gtk_box_pack_start(GTK_BOX(vb), scale, TRUE, TRUE, 0);
gtk_scale_set_value_pos(GTK_SCALE(scale), GTK_POS_RIGHT);
gtk_scale_set_digits(GTK_SCALE(scale), 0);
- if(!(vidcap & cap)) gtk_widget_set_sensitive(scale, FALSE);
lab = gtk_label_new(name);
gtk_widget_show(lab);
@@ -124,25 +120,25 @@
{
GTK_ADJUSTMENT(hue_adj)->value = hue;
gtk_adjustment_value_changed(GTK_ADJUSTMENT(hue_adj));
- media->vd->set_property(media->vd, VO_PROP_HUE, hue);
+ xine_set_param(sinek.stream, XINE_PARAM_VO_HUE, hue);
}
if(GTK_ADJUSTMENT(sat_adj)->value != sat)
{
GTK_ADJUSTMENT(sat_adj)->value = sat;
gtk_adjustment_value_changed(GTK_ADJUSTMENT(sat_adj));
- media->vd->set_property(media->vd, VO_PROP_SATURATION, sat);
+ xine_set_param(sinek.stream, XINE_PARAM_VO_SATURATION, sat);
}
if(GTK_ADJUSTMENT(bri_adj)->value != bri)
{
GTK_ADJUSTMENT(bri_adj)->value = bri;
gtk_adjustment_value_changed(GTK_ADJUSTMENT(bri_adj));
- media->vd->set_property(media->vd, VO_PROP_BRIGHTNESS, bri);
+ xine_set_param(sinek.stream, XINE_PARAM_VO_BRIGHTNESS, bri);
}
if(GTK_ADJUSTMENT(con_adj)->value != con)
{
GTK_ADJUSTMENT(con_adj)->value = con;
gtk_adjustment_value_changed(GTK_ADJUSTMENT(con_adj));
- media->vd->set_property(media->vd, VO_PROP_CONTRAST, con);
+ xine_set_param(sinek.stream, XINE_PARAM_VO_CONTRAST, con);
}
gtk_widget_hide(tune_win);
@@ -151,23 +147,23 @@
static void cb_hue(GtkAdjustment *adj)
{
- media->vd->set_property(media->vd, VO_PROP_HUE, adj->value);
+ xine_set_param(sinek.stream, XINE_PARAM_VO_HUE, adj->value);
}
static void cb_sat(GtkAdjustment *adj)
{
- media->vd->set_property(media->vd, VO_PROP_SATURATION, adj->value);
+ xine_set_param(sinek.stream, XINE_PARAM_VO_SATURATION, adj->value);
}
static void cb_bri(GtkAdjustment *adj)
{
- media->vd->set_property(media->vd, VO_PROP_BRIGHTNESS, adj->value);
+ xine_set_param(sinek.stream, XINE_PARAM_VO_BRIGHTNESS, adj->value);
}
static void cb_con(GtkAdjustment *adj)
{
- media->vd->set_property(media->vd, VO_PROP_CONTRAST, adj->value);
+ xine_set_param(sinek.stream, XINE_PARAM_VO_CONTRAST, adj->value);
}
Index: utility.c
===================================================================
RCS file: /cvsroot/sinek/sinek/src/utility.c,v
retrieving revision 1.35
retrieving revision 1.36
diff -u -d -r1.35 -r1.36
--- utility.c 17 Jul 2002 19:48:28 -0000 1.35
+++ utility.c 3 Jan 2003 09:42:20 -0000 1.36
@@ -531,6 +531,7 @@
{
gchar *file, *tmp, *path;
int mode;
+ xine_cfg_entry_t entry;
mode = (int)g_object_get_data(G_OBJECT(fs), "mode");
@@ -544,7 +545,9 @@
gtk_label_get(GTK_LABEL(gtk_bin_get_child(GTK_BIN(fs->history_pulldown))), &tmp);
path = g_strconcat(tmp, G_DIR_SEPARATOR_S, NULL);
- media->conf->update_string(media->conf, "sinek.last_dir", path);
+ xine_config_lookup_entry(sinek.xine, "sinek.last_dir", &entry);
+ entry.str_value = path;
+ xine_config_update_entry(sinek.xine, &entry);
g_free(path);
gtk_widget_hide(GTK_WIDGET(fs));
}
@@ -558,7 +561,7 @@
if(browse_win) goto out;
- path = media->conf->register_string(media->conf, "sinek.last_dir", "", NULL, NULL, NULL, NULL);
+ path = xine_config_register_string(sinek.xine, "sinek.last_dir", "", NULL, NULL, 0, NULL, NULL);
freq = gtk_file_selection_new(_("Select Video File"));
gtk_container_set_border_width(GTK_CONTAINER(freq), 10);
Index: video.c
===================================================================
RCS file: /cvsroot/sinek/sinek/src/video.c,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -d -r1.26 -r1.27
--- video.c 28 Jun 2002 00:08:27 -0000 1.26
+++ video.c 3 Jan 2003 09:42:20 -0000 1.27
@@ -15,7 +15,6 @@
#include <X11/Xutil.h>
#include <X11/cursorfont.h>
#include <X11/Xatom.h>
-#include <xine/video_out_x11.h>
/* missing stuff from X includes */
#define MWM_HINTS_DECORATIONS (1L << 1)
@@ -217,8 +216,11 @@
if(sinek_open(media, mrl))
{
+ int x, y, length;
+
+ xine_get_pos_length(sinek.stream, &x, &y, &length);
scrsaver_disable();
- control_update_slider(0, xine_get_stream_length(sinek.xine));
+ control_update_slider(0, length);
control_mrl(mrl);
sinek.playing = -1;
return 1;
@@ -241,14 +243,16 @@
if(val == 0)
{
/* reset zoom */
- tmp = media->vd->get_property(media->vd, VO_PROP_ASPECT_RATIO);
- media->vd->set_property(media->vd, VO_PROP_ASPECT_RATIO, tmp);
+ tmp = xine_get_param(sinek.stream, XINE_PARAM_VO_ASPECT_RATIO);
+ xine_set_param(sinek.stream, XINE_PARAM_VO_ASPECT_RATIO, tmp);
return;
}
else
{
- tmp = media->vd->get_property(media->vd, VO_PROP_ZOOM_FACTOR);
- media->vd->set_property(media->vd, VO_PROP_ZOOM_FACTOR, tmp + val);
+ tmp = xine_get_param(sinek.stream, XINE_PARAM_VO_ZOOM_X);
+ xine_set_param(sinek.stream, XINE_PARAM_VO_ZOOM_X, tmp + val);
+ tmp = xine_get_param(sinek.stream, XINE_PARAM_VO_ZOOM_Y);
+ xine_set_param(sinek.stream, XINE_PARAM_VO_ZOOM_Y, tmp + val);
}
}
@@ -437,7 +441,7 @@
rect.w = 0;
rect.h = 0;
- if(media->vd->gui_data_exchange(media->vd, GUI_DATA_EX_TRANSLATE_GUI_TO_VIDEO, (void*)&rect) != -1)
+ if (xine_gui_send_vo_data(sinek.stream, XINE_GUI_SEND_TRANSLATE_GUI_TO_VIDEO, (void *) &rect) != -1)
{
*vid_x = rect.x;
*vid_y = rect.y;
@@ -502,7 +506,7 @@
}
sinek.video_win = videowin;
- if(media->vd) media->vd->gui_data_exchange(media->vd, GUI_DATA_EX_DRAWABLE_CHANGED, (void *)videowin);
+ xine_gui_send_vo_data(sinek.stream, XINE_GUI_SEND_DRAWABLE_CHANGED, (void *) videowin);
if(!fs && xc_hint) XSetClassHint(display, videowin, xc_hint);
@@ -561,7 +565,7 @@
}
sinek.video_win = videowin;
- if(media->vd) media->vd->gui_data_exchange(media->vd, GUI_DATA_EX_DRAWABLE_CHANGED, (void *)videowin);
+ xine_gui_send_vo_data(sinek.stream, XINE_GUI_SEND_DRAWABLE_CHANGED, (void *) videowin);
xs_hint.x = 0;
xs_hint.y = 0;
-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf