src->angles_changed = FALSE;
src->n_angles = 0;
+ src->cur_angle = 0;
src->commands_changed = TRUE;
if (dvdnav_get_angle_info (src->dvdnav, &cur_agl,
&n_angles) == DVDNAV_STATUS_OK && src->n_angles != n_angles) {
+ /* Make sure we send an angles-changed message soon */
src->angles_changed = TRUE;
- src->n_angles = n_angles;
}
if (dvdnav_current_title_info (src->dvdnav, &title_n,
&part_n) == DVDNAV_STATUS_OK) {
- if (title_n != src->title_n || part_n != src->part_n || src->angles_changed) {
+ if (title_n != src->title_n || part_n != src->part_n ||
+ src->n_angles != n_angles || src->cur_angle != cur_agl) {
gchar *title_str = NULL;
src->title_n = title_n;
src->part_n = part_n;
+ src->n_angles = n_angles;
+ src->cur_angle = cur_agl;
if (title_n == 0) {
static const char *dvd_menu_map[] = {
angles_msg =
gst_navigation_message_new_angles_changed (GST_OBJECT_CAST (src),
cur, agls);
- src->n_angles = agls;
}
src->angles_changed = FALSE;
}
angles_msg =
gst_navigation_message_new_angles_changed (GST_OBJECT_CAST (src),
cur, agls);
- src->n_angles = agls;
}
src->angles_changed = FALSE;
+
+ update_title_info (src);
}
g_mutex_unlock (src->dvd_lock);
gboolean in_menu;
gint title_n; /* Title num */
gint part_n; /* Part num */
+ gint n_angles; /* number of angles */
+ gint cur_angle; /* current angle */
gboolean running;
gboolean discont;
gint8 cur_spu_phys_stream;
gboolean cur_spu_forced_only;
guint32 cur_clut[16];
- gint n_angles;
};
struct _resinDvdSrcClass