GESTransition: Make it a base class and add GESTimelineStandardTransition
authorEdward Hervey <edward.hervey@collabora.co.uk>
Thu, 9 Dec 2010 16:09:11 +0000 (17:09 +0100)
committerEdward Hervey <edward.hervey@collabora.co.uk>
Thu, 9 Dec 2010 16:09:11 +0000 (17:09 +0100)
This is to ensure people can create their own Layer Transition subclass.

API : GESTimelineTransition is now GESTimelineStandardTransition

26 files changed:
docs/libs/ges-docs.sgml
docs/libs/ges-sections.txt
docs/libs/ges.types
ges/Makefile.am
ges/ges-enums.c
ges/ges-enums.h
ges/ges-simple-timeline-layer.c
ges/ges-timeline-object.h
ges/ges-timeline-pipeline.c
ges/ges-timeline-standard-transition.c [new file with mode: 0644]
ges/ges-timeline-standard-transition.h [new file with mode: 0644]
ges/ges-timeline-transition.c
ges/ges-timeline-transition.h
ges/ges-track-operation.c
ges/ges-track-transition.c
ges/ges-track-video-transition.c
ges/ges-track-video-transition.h
ges/ges-types.h
ges/ges.c
ges/ges.h
tests/check/ges/save_and_load.c
tests/check/ges/simplelayer.c
tests/check/ges/transition.c
tests/examples/ges-ui.c
tests/examples/transition.c
tools/ges-launch.c

index 530daa5..7edbd0e 100644 (file)
@@ -44,6 +44,7 @@ platform as well as Windows. It is released under the GNU Library General Public
     <xi:include href="xml/ges-track-object.xml"/>
     <xi:include href="xml/ges-track-source.xml"/>
     <xi:include href="xml/ges-track-operation.xml"/>
+    <xi:include href="xml/ges-timeline-transition.xml"/>
   </chapter>
 
   <chapter>
@@ -52,7 +53,7 @@ platform as well as Windows. It is released under the GNU Library General Public
     <xi:include href="xml/ges-timeline-title-source.xml"/>
     <xi:include href="xml/ges-timeline-test-source.xml"/>
     <xi:include href="xml/ges-timeline-text-overlay.xml"/>
-    <xi:include href="xml/ges-timeline-transition.xml"/>
+    <xi:include href="xml/ges-timeline-standard-transition.xml"/>
   </chapter>
 
   <chapter>
index 07ef695..3c672d1 100644 (file)
@@ -17,7 +17,7 @@ GES_PADDING
 <SECTION>
 <FILE>ges-enums</FILE>
 <TITLE>GES Enums</TITLE>
-GESVideoTransitionType
+GESVideoStandardTransitionType
 GESTrackType
 GESTextHAlign
 DEFAULT_HALIGNMENT
@@ -33,8 +33,8 @@ GES_TEXT_VALIGN_TYPE
 ges_text_valign_get_type
 GES_VIDEO_TEST_PATTERN_TYPE
 ges_video_test_pattern_get_type
-GES_VIDEO_TRANSITION_TYPE_TYPE
-ges_video_transition_type_get_type
+GES_VIDEO_STANDARD_TRANSITION_TYPE_TYPE
+ges_video_standard_transition_type_get_type
 </SECTION>
 
 <SECTION>
@@ -265,11 +265,6 @@ GESTimelineObjectClass
 CreateTrackObjectFunc
 CreateTrackObjectsFunc
 FillTrackObjectFunc
-GES_TIMELINE_OBJECT_DURATION
-GES_TIMELINE_OBJECT_INPOINT
-GES_TIMELINE_OBJECT_PRIORITY
-GES_TIMELINE_OBJECT_START
-GES_TIMELINE_OBJECT_HEIGHT
 ges_timeline_object_set_inpoint
 ges_timeline_object_set_start
 ges_timeline_object_set_duration
@@ -277,6 +272,11 @@ ges_timeline_object_get_layer
 ges_timeline_object_find_track_object
 ges_timeline_object_add_track_object
 <SUBSECTION Standard>
+GES_TIMELINE_OBJECT_DURATION
+GES_TIMELINE_OBJECT_INPOINT
+GES_TIMELINE_OBJECT_PRIORITY
+GES_TIMELINE_OBJECT_START
+GES_TIMELINE_OBJECT_HEIGHT
 ges_timeline_object_create_track_objects
 ges_timeline_object_create_track_object
 ges_timeline_object_fill_track_object
@@ -389,18 +389,34 @@ GES_TYPE_TIMELINE_OVERLAY
 <FILE>ges-timeline-transition</FILE>
 <TITLE>GESTimelineTransition</TITLE>
 GESTimelineTransition
-GESTimelineTransitionClass
-ges_timeline_transition_new
-ges_timeline_transition_new_for_nick
 <SUBSECTION Standard>
+GESTimelineTransitionClass
 GESTimelineTransitionPrivate
-GES_IS_TIMELINE_TRANSITION
-GES_IS_TIMELINE_TRANSITION_CLASS
 GES_TIMELINE_TRANSITION
-GES_TIMELINE_TRANSITION_CLASS
-GES_TIMELINE_TRANSITION_GET_CLASS
+GES_IS_TIMELINE_TRANSITION
 GES_TYPE_TIMELINE_TRANSITION
 ges_timeline_transition_get_type
+GES_TIMELINE_TRANSITION_CLASS
+GES_IS_TIMELINE_TRANSITION_CLASS
+GES_TIMELINE_TRANSITION_GET_CLASS
+</SECTION>
+
+<SECTION>
+<FILE>ges-timeline-standard-transition</FILE>
+<TITLE>GESTimelineStandardTransition</TITLE>
+GESTimelineStandardTransition
+ges_timeline_standard_transition_new
+ges_timeline_standard_transition_new_for_nick
+<SUBSECTION Standard>
+GESTimelineStandardTransitionClass
+GESTimelineStandardTransitionPrivate
+GES_IS_TIMELINE_STANDARD_TRANSITION
+GES_IS_TIMELINE_STANDARD_TRANSITION_CLASS
+GES_TIMELINE_STANDARD_TRANSITION
+GES_TIMELINE_STANDARD_TRANSITION_CLASS
+GES_TIMELINE_STANDARD_TRANSITION_GET_CLASS
+GES_TYPE_TIMELINE_STANDARD_TRANSITION
+ges_timeline_standard_transition_get_type
 </SECTION>
 
 
index ad02ea7..15e0152 100644 (file)
@@ -16,6 +16,7 @@ ges_timeline_pipeline_get_type
 ges_timeline_source_get_type
 ges_timeline_test_source_get_type
 ges_timeline_transition_get_type
+ges_timeline_standard_transition_get_type
 ges_tl_filesource_get_type
 ges_tl_text_overlay_get_type
 ges_tl_title_src_get_type
@@ -34,4 +35,4 @@ ges_track_type_get_type
 ges_track_video_test_source_get_type
 ges_track_video_transition_get_type
 ges_video_test_pattern_get_type
-ges_video_transition_type_get_type
+ges_video_standard_transition_type_get_type
index 4894192..01855d2 100644 (file)
@@ -21,6 +21,7 @@ libges_@GST_MAJORMINOR@_la_SOURCES =          \
        ges-timeline-file-source.c              \
        ges-timeline-operation.c                \
        ges-timeline-transition.c               \
+       ges-timeline-standard-transition.c      \
        ges-timeline-test-source.c              \
        ges-timeline-title-source.c             \
        ges-timeline-overlay.c                  \
@@ -60,6 +61,7 @@ libges_@GST_MAJORMINOR@include_HEADERS =      \
        ges-timeline-file-source.h              \
        ges-timeline-operation.h                \
        ges-timeline-transition.h               \
+       ges-timeline-standard-transition.h      \
        ges-timeline-test-source.h              \
        ges-timeline-title-source.h             \
        ges-timeline-overlay.h                  \
index 3439feb..faa9e48 100644 (file)
@@ -403,7 +403,7 @@ static GEnumValue transition_types[] = {
       "windshield-h"}
   ,
   {
-        GES_VIDEO_TRANSITION_TYPE_CROSSFADE,
+        GES_VIDEO_STANDARD_TRANSITION_TYPE_CROSSFADE,
         "Crossfade between two clips",
       "crossfade"}
   ,
@@ -411,7 +411,7 @@ static GEnumValue transition_types[] = {
 };
 
 GType
-ges_video_transition_type_get_type (void)
+ges_video_standard_transition_type_get_type (void)
 {
   static GType the_type = 0;
   static gsize once = 0;
index e307fa4..9b1af25 100644 (file)
@@ -53,161 +53,161 @@ typedef enum {
 } GESTrackType;
 
 /**
- * GESVideoTransitionType:
- * @GES_VIDEO_TRANSITION_TYPE_NONE: Transition type has not been set,
- * @GES_VIDEO_TRANSITION_TYPE_BAR_WIPE_LR: A bar moves from left to right,
- * @GES_VIDEO_TRANSITION_TYPE_BAR_WIPE_TB: A bar moves from top to bottom,
- * @GES_VIDEO_TRANSITION_TYPE_BOX_WIPE_TL: A box expands from the upper-left corner to the lower-right corner,
- * @GES_VIDEO_TRANSITION_TYPE_BOX_WIPE_TR: A box expands from the upper-right corner to the lower-left corner,
- * @GES_VIDEO_TRANSITION_TYPE_BOX_WIPE_BR: A box expands from the lower-right corner to the upper-left corner,
- * @GES_VIDEO_TRANSITION_TYPE_BOX_WIPE_BL: A box expands from the lower-left corner to the upper-right corner,
- * @GES_VIDEO_TRANSITION_TYPE_FOUR_BOX_WIPE_CI: A box shape expands from each of the four corners toward the center,
- * @GES_VIDEO_TRANSITION_TYPE_FOUR_BOX_WIPE_CO: A box shape expands from the center of each quadrant toward the corners of each quadrant,
- * @GES_VIDEO_TRANSITION_TYPE_BARNDOOR_V: A central, vertical line splits and expands toward the left and right edges,
- * @GES_VIDEO_TRANSITION_TYPE_BARNDOOR_H: A central, horizontal line splits and expands toward the top and bottom edges,
- * @GES_VIDEO_TRANSITION_TYPE_BOX_WIPE_TC: A box expands from the top edge's midpoint to the bottom corners,
- * @GES_VIDEO_TRANSITION_TYPE_BOX_WIPE_RC: A box expands from the right edge's midpoint to the left corners,
- * @GES_VIDEO_TRANSITION_TYPE_BOX_WIPE_BC: A box expands from the bottom edge's midpoint to the top corners,
- * @GES_VIDEO_TRANSITION_TYPE_BOX_WIPE_LC: A box expands from the left edge's midpoint to the right corners,
- * @GES_VIDEO_TRANSITION_TYPE_DIAGONAL_TL: A diagonal line moves from the upper-left corner to the lower-right corner,
- * @GES_VIDEO_TRANSITION_TYPE_DIAGONAL_TR: A diagonal line moves from the upper right corner to the lower-left corner,
- * @GES_VIDEO_TRANSITION_TYPE_BOWTIE_V: Two wedge shapes slide in from the top and bottom edges toward the center,
- * @GES_VIDEO_TRANSITION_TYPE_BOWTIE_H: Two wedge shapes slide in from the left and right edges toward the center,
- * @GES_VIDEO_TRANSITION_TYPE_BARNDOOR_DBL: A diagonal line from the lower-left to upper-right corners splits and expands toward the opposite corners,
- * @GES_VIDEO_TRANSITION_TYPE_BARNDOOR_DTL: A diagonal line from upper-left to lower-right corners splits and expands toward the opposite corners,
- * @GES_VIDEO_TRANSITION_TYPE_MISC_DIAGONAL_DBD: Four wedge shapes split from the center and retract toward the four edges,
- * @GES_VIDEO_TRANSITION_TYPE_MISC_DIAGONAL_DD: A diamond connecting the four edge midpoints simultaneously contracts toward the center and expands toward the edges,
- * @GES_VIDEO_TRANSITION_TYPE_VEE_D: A wedge shape moves from top to bottom,
- * @GES_VIDEO_TRANSITION_TYPE_VEE_L: A wedge shape moves from right to left,
- * @GES_VIDEO_TRANSITION_TYPE_VEE_U: A wedge shape moves from bottom to top,
- * @GES_VIDEO_TRANSITION_TYPE_VEE_R: A wedge shape moves from left to right,
- * @GES_VIDEO_TRANSITION_TYPE_BARNVEE_D: A 'V' shape extending from the bottom edge's midpoint to the opposite corners contracts toward the center and expands toward the edges,
- * @GES_VIDEO_TRANSITION_TYPE_BARNVEE_L: A 'V' shape extending from the left edge's midpoint to the opposite corners contracts toward the center and expands toward the edges,
- * @GES_VIDEO_TRANSITION_TYPE_BARNVEE_U: A 'V' shape extending from the top edge's midpoint to the opposite corners contracts toward the center and expands toward the edges,
- * @GES_VIDEO_TRANSITION_TYPE_BARNVEE_R: A 'V' shape extending from the right edge's midpoint to the opposite corners contracts toward the center and expands toward the edges,
- * @GES_VIDEO_TRANSITION_TYPE_IRIS_RECT: A rectangle expands from the center.,
- * @GES_VIDEO_TRANSITION_TYPE_CLOCK_CW12: A radial hand sweeps clockwise from the twelve o'clock position,
- * @GES_VIDEO_TRANSITION_TYPE_CLOCK_CW3: A radial hand sweeps clockwise from the three o'clock position,
- * @GES_VIDEO_TRANSITION_TYPE_CLOCK_CW6: A radial hand sweeps clockwise from the six o'clock position,
- * @GES_VIDEO_TRANSITION_TYPE_CLOCK_CW9: A radial hand sweeps clockwise from the nine o'clock position,
- * @GES_VIDEO_TRANSITION_TYPE_PINWHEEL_TBV: Two radial hands sweep clockwise from the twelve and six o'clock positions,
- * @GES_VIDEO_TRANSITION_TYPE_PINWHEEL_TBH: Two radial hands sweep clockwise from the nine and three o'clock positions,
- * @GES_VIDEO_TRANSITION_TYPE_PINWHEEL_FB: Four radial hands sweep clockwise,
- * @GES_VIDEO_TRANSITION_TYPE_FAN_CT: A fan unfolds from the top edge, the fan axis at the center,
- * @GES_VIDEO_TRANSITION_TYPE_FAN_CR: A fan unfolds from the right edge, the fan axis at the center,
- * @GES_VIDEO_TRANSITION_TYPE_DOUBLEFAN_FOV: Two fans, their axes at the center, unfold from the top and bottom,
- * @GES_VIDEO_TRANSITION_TYPE_DOUBLEFAN_FOH: Two fans, their axes at the center, unfold from the left and right,
- * @GES_VIDEO_TRANSITION_TYPE_SINGLESWEEP_CWT: A radial hand sweeps clockwise from the top edge's midpoint,
- * @GES_VIDEO_TRANSITION_TYPE_SINGLESWEEP_CWR: A radial hand sweeps clockwise from the right edge's midpoint,
- * @GES_VIDEO_TRANSITION_TYPE_SINGLESWEEP_CWB: A radial hand sweeps clockwise from the bottom edge's midpoint,
- * @GES_VIDEO_TRANSITION_TYPE_SINGLESWEEP_CWL: A radial hand sweeps clockwise from the left edge's midpoint,
- * @GES_VIDEO_TRANSITION_TYPE_DOUBLESWEEP_PV: Two radial hands sweep clockwise and counter-clockwise from the top and bottom edges' midpoints,
- * @GES_VIDEO_TRANSITION_TYPE_DOUBLESWEEP_PD: Two radial hands sweep clockwise and counter-clockwise from the left and right edges' midpoints,
- * @GES_VIDEO_TRANSITION_TYPE_DOUBLESWEEP_OV: Two radial hands attached at the top and bottom edges' midpoints sweep from right to left,
- * @GES_VIDEO_TRANSITION_TYPE_DOUBLESWEEP_OH: Two radial hands attached at the left and right edges' midpoints sweep from top to bottom,
- * @GES_VIDEO_TRANSITION_TYPE_FAN_T: A fan unfolds from the bottom, the fan axis at the top edge's midpoint,
- * @GES_VIDEO_TRANSITION_TYPE_FAN_R: A fan unfolds from the left, the fan axis at the right edge's midpoint,
- * @GES_VIDEO_TRANSITION_TYPE_FAN_B: A fan unfolds from the top, the fan axis at the bottom edge's midpoint,
- * @GES_VIDEO_TRANSITION_TYPE_FAN_L: A fan unfolds from the right, the fan axis at the left edge's midpoint,
- * @GES_VIDEO_TRANSITION_TYPE_DOUBLEFAN_FIV: Two fans, their axes at the top and bottom, unfold from the center,
- * @GES_VIDEO_TRANSITION_TYPE_DOUBLEFAN_FIH: Two fans, their axes at the left and right, unfold from the center,
- * @GES_VIDEO_TRANSITION_TYPE_SINGLESWEEP_CWTL: A radial hand sweeps clockwise from the upper-left corner,
- * @GES_VIDEO_TRANSITION_TYPE_SINGLESWEEP_CWBL: A radial hand sweeps counter-clockwise from the lower-left corner.,
- * @GES_VIDEO_TRANSITION_TYPE_SINGLESWEEP_CWBR: A radial hand sweeps clockwise from the lower-right corner,
- * @GES_VIDEO_TRANSITION_TYPE_SINGLESWEEP_CWTR: A radial hand sweeps counter-clockwise from the upper-right corner,
- * @GES_VIDEO_TRANSITION_TYPE_DOUBLESWEEP_PDTL: Two radial hands attached at the upper-left and lower-right corners sweep down and up,
- * @GES_VIDEO_TRANSITION_TYPE_DOUBLESWEEP_PDBL: Two radial hands attached at the lower-left and upper-right corners sweep down and up,
- * @GES_VIDEO_TRANSITION_TYPE_SALOONDOOR_T: Two radial hands attached at the upper-left and upper-right corners sweep down,
- * @GES_VIDEO_TRANSITION_TYPE_SALOONDOOR_L: Two radial hands attached at the upper-left and lower-left corners sweep to the right,
- * @GES_VIDEO_TRANSITION_TYPE_SALOONDOOR_B: Two radial hands attached at the lower-left and lower-right corners sweep up,
- * @GES_VIDEO_TRANSITION_TYPE_SALOONDOOR_R: Two radial hands attached at the upper-right and lower-right corners sweep to the left,
- * @GES_VIDEO_TRANSITION_TYPE_WINDSHIELD_R: Two radial hands attached at the midpoints of the top and bottom halves sweep from right to left,
- * @GES_VIDEO_TRANSITION_TYPE_WINDSHIELD_U: Two radial hands attached at the midpoints of the left and right halves sweep from top to bottom,
- * @GES_VIDEO_TRANSITION_TYPE_WINDSHIELD_V: Two sets of radial hands attached at the midpoints of the top and bottom halves sweep from top to bottom and bottom to top,
- * @GES_VIDEO_TRANSITION_TYPE_WINDSHIELD_H: Two sets of radial hands attached at the midpoints of the left and right halves sweep from left to right and right to left,
- * @GES_VIDEO_TRANSITION_TYPE_CROSSFADE: Crossfade
+ * GESVideoStandardTransitionType:
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_NONE: Transition type has not been set,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_BAR_WIPE_LR: A bar moves from left to right,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_BAR_WIPE_TB: A bar moves from top to bottom,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_TL: A box expands from the upper-left corner to the lower-right corner,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_TR: A box expands from the upper-right corner to the lower-left corner,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_BR: A box expands from the lower-right corner to the upper-left corner,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_BL: A box expands from the lower-left corner to the upper-right corner,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_FOUR_BOX_WIPE_CI: A box shape expands from each of the four corners toward the center,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_FOUR_BOX_WIPE_CO: A box shape expands from the center of each quadrant toward the corners of each quadrant,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNDOOR_V: A central, vertical line splits and expands toward the left and right edges,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNDOOR_H: A central, horizontal line splits and expands toward the top and bottom edges,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_TC: A box expands from the top edge's midpoint to the bottom corners,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_RC: A box expands from the right edge's midpoint to the left corners,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_BC: A box expands from the bottom edge's midpoint to the top corners,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_LC: A box expands from the left edge's midpoint to the right corners,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_DIAGONAL_TL: A diagonal line moves from the upper-left corner to the lower-right corner,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_DIAGONAL_TR: A diagonal line moves from the upper right corner to the lower-left corner,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_BOWTIE_V: Two wedge shapes slide in from the top and bottom edges toward the center,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_BOWTIE_H: Two wedge shapes slide in from the left and right edges toward the center,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNDOOR_DBL: A diagonal line from the lower-left to upper-right corners splits and expands toward the opposite corners,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNDOOR_DTL: A diagonal line from upper-left to lower-right corners splits and expands toward the opposite corners,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_MISC_DIAGONAL_DBD: Four wedge shapes split from the center and retract toward the four edges,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_MISC_DIAGONAL_DD: A diamond connecting the four edge midpoints simultaneously contracts toward the center and expands toward the edges,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_VEE_D: A wedge shape moves from top to bottom,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_VEE_L: A wedge shape moves from right to left,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_VEE_U: A wedge shape moves from bottom to top,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_VEE_R: A wedge shape moves from left to right,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNVEE_D: A 'V' shape extending from the bottom edge's midpoint to the opposite corners contracts toward the center and expands toward the edges,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNVEE_L: A 'V' shape extending from the left edge's midpoint to the opposite corners contracts toward the center and expands toward the edges,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNVEE_U: A 'V' shape extending from the top edge's midpoint to the opposite corners contracts toward the center and expands toward the edges,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNVEE_R: A 'V' shape extending from the right edge's midpoint to the opposite corners contracts toward the center and expands toward the edges,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_IRIS_RECT: A rectangle expands from the center.,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_CLOCK_CW12: A radial hand sweeps clockwise from the twelve o'clock position,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_CLOCK_CW3: A radial hand sweeps clockwise from the three o'clock position,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_CLOCK_CW6: A radial hand sweeps clockwise from the six o'clock position,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_CLOCK_CW9: A radial hand sweeps clockwise from the nine o'clock position,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_PINWHEEL_TBV: Two radial hands sweep clockwise from the twelve and six o'clock positions,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_PINWHEEL_TBH: Two radial hands sweep clockwise from the nine and three o'clock positions,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_PINWHEEL_FB: Four radial hands sweep clockwise,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_CT: A fan unfolds from the top edge, the fan axis at the center,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_CR: A fan unfolds from the right edge, the fan axis at the center,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLEFAN_FOV: Two fans, their axes at the center, unfold from the top and bottom,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLEFAN_FOH: Two fans, their axes at the center, unfold from the left and right,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWT: A radial hand sweeps clockwise from the top edge's midpoint,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWR: A radial hand sweeps clockwise from the right edge's midpoint,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWB: A radial hand sweeps clockwise from the bottom edge's midpoint,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWL: A radial hand sweeps clockwise from the left edge's midpoint,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_PV: Two radial hands sweep clockwise and counter-clockwise from the top and bottom edges' midpoints,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_PD: Two radial hands sweep clockwise and counter-clockwise from the left and right edges' midpoints,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_OV: Two radial hands attached at the top and bottom edges' midpoints sweep from right to left,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_OH: Two radial hands attached at the left and right edges' midpoints sweep from top to bottom,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_T: A fan unfolds from the bottom, the fan axis at the top edge's midpoint,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_R: A fan unfolds from the left, the fan axis at the right edge's midpoint,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_B: A fan unfolds from the top, the fan axis at the bottom edge's midpoint,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_L: A fan unfolds from the right, the fan axis at the left edge's midpoint,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLEFAN_FIV: Two fans, their axes at the top and bottom, unfold from the center,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLEFAN_FIH: Two fans, their axes at the left and right, unfold from the center,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWTL: A radial hand sweeps clockwise from the upper-left corner,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWBL: A radial hand sweeps counter-clockwise from the lower-left corner.,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWBR: A radial hand sweeps clockwise from the lower-right corner,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWTR: A radial hand sweeps counter-clockwise from the upper-right corner,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_PDTL: Two radial hands attached at the upper-left and lower-right corners sweep down and up,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_PDBL: Two radial hands attached at the lower-left and upper-right corners sweep down and up,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_SALOONDOOR_T: Two radial hands attached at the upper-left and upper-right corners sweep down,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_SALOONDOOR_L: Two radial hands attached at the upper-left and lower-left corners sweep to the right,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_SALOONDOOR_B: Two radial hands attached at the lower-left and lower-right corners sweep up,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_SALOONDOOR_R: Two radial hands attached at the upper-right and lower-right corners sweep to the left,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_WINDSHIELD_R: Two radial hands attached at the midpoints of the top and bottom halves sweep from right to left,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_WINDSHIELD_U: Two radial hands attached at the midpoints of the left and right halves sweep from top to bottom,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_WINDSHIELD_V: Two sets of radial hands attached at the midpoints of the top and bottom halves sweep from top to bottom and bottom to top,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_WINDSHIELD_H: Two sets of radial hands attached at the midpoints of the left and right halves sweep from left to right and right to left,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_CROSSFADE: Crossfade
  *
  */
 
 typedef enum {
-  GES_VIDEO_TRANSITION_TYPE_NONE = 0,
-  GES_VIDEO_TRANSITION_TYPE_BAR_WIPE_LR = 1,
-  GES_VIDEO_TRANSITION_TYPE_BAR_WIPE_TB = 2,
-  GES_VIDEO_TRANSITION_TYPE_BOX_WIPE_TL = 3,
-  GES_VIDEO_TRANSITION_TYPE_BOX_WIPE_TR = 4,
-  GES_VIDEO_TRANSITION_TYPE_BOX_WIPE_BR = 5,
-  GES_VIDEO_TRANSITION_TYPE_BOX_WIPE_BL = 6,
-  GES_VIDEO_TRANSITION_TYPE_FOUR_BOX_WIPE_CI = 7,
-  GES_VIDEO_TRANSITION_TYPE_FOUR_BOX_WIPE_CO = 8,
-  GES_VIDEO_TRANSITION_TYPE_BARNDOOR_V = 21,
-  GES_VIDEO_TRANSITION_TYPE_BARNDOOR_H = 22,
-  GES_VIDEO_TRANSITION_TYPE_BOX_WIPE_TC = 23,
-  GES_VIDEO_TRANSITION_TYPE_BOX_WIPE_RC = 24,
-  GES_VIDEO_TRANSITION_TYPE_BOX_WIPE_BC = 25,
-  GES_VIDEO_TRANSITION_TYPE_BOX_WIPE_LC = 26,
-  GES_VIDEO_TRANSITION_TYPE_DIAGONAL_TL = 41,
-  GES_VIDEO_TRANSITION_TYPE_DIAGONAL_TR = 42,
-  GES_VIDEO_TRANSITION_TYPE_BOWTIE_V = 43,
-  GES_VIDEO_TRANSITION_TYPE_BOWTIE_H = 44,
-  GES_VIDEO_TRANSITION_TYPE_BARNDOOR_DBL = 45,
-  GES_VIDEO_TRANSITION_TYPE_BARNDOOR_DTL = 46,
-  GES_VIDEO_TRANSITION_TYPE_MISC_DIAGONAL_DBD = 47,
-  GES_VIDEO_TRANSITION_TYPE_MISC_DIAGONAL_DD = 48,
-  GES_VIDEO_TRANSITION_TYPE_VEE_D = 61,
-  GES_VIDEO_TRANSITION_TYPE_VEE_L = 62,
-  GES_VIDEO_TRANSITION_TYPE_VEE_U = 63,
-  GES_VIDEO_TRANSITION_TYPE_VEE_R = 64,
-  GES_VIDEO_TRANSITION_TYPE_BARNVEE_D = 65,
-  GES_VIDEO_TRANSITION_TYPE_BARNVEE_L = 66,
-  GES_VIDEO_TRANSITION_TYPE_BARNVEE_U = 67,
-  GES_VIDEO_TRANSITION_TYPE_BARNVEE_R = 68,
-  GES_VIDEO_TRANSITION_TYPE_IRIS_RECT = 101,
-  GES_VIDEO_TRANSITION_TYPE_CLOCK_CW12 = 201,
-  GES_VIDEO_TRANSITION_TYPE_CLOCK_CW3 = 202,
-  GES_VIDEO_TRANSITION_TYPE_CLOCK_CW6 = 203,
-  GES_VIDEO_TRANSITION_TYPE_CLOCK_CW9 = 204,
-  GES_VIDEO_TRANSITION_TYPE_PINWHEEL_TBV = 205,
-  GES_VIDEO_TRANSITION_TYPE_PINWHEEL_TBH = 206,
-  GES_VIDEO_TRANSITION_TYPE_PINWHEEL_FB = 207,
-  GES_VIDEO_TRANSITION_TYPE_FAN_CT = 211,
-  GES_VIDEO_TRANSITION_TYPE_FAN_CR = 212,
-  GES_VIDEO_TRANSITION_TYPE_DOUBLEFAN_FOV = 213,
-  GES_VIDEO_TRANSITION_TYPE_DOUBLEFAN_FOH = 214,
-  GES_VIDEO_TRANSITION_TYPE_SINGLESWEEP_CWT = 221,
-  GES_VIDEO_TRANSITION_TYPE_SINGLESWEEP_CWR = 222,
-  GES_VIDEO_TRANSITION_TYPE_SINGLESWEEP_CWB = 223,
-  GES_VIDEO_TRANSITION_TYPE_SINGLESWEEP_CWL = 224,
-  GES_VIDEO_TRANSITION_TYPE_DOUBLESWEEP_PV = 225,
-  GES_VIDEO_TRANSITION_TYPE_DOUBLESWEEP_PD = 226,
-  GES_VIDEO_TRANSITION_TYPE_DOUBLESWEEP_OV = 227,
-  GES_VIDEO_TRANSITION_TYPE_DOUBLESWEEP_OH = 228,
-  GES_VIDEO_TRANSITION_TYPE_FAN_T = 231,
-  GES_VIDEO_TRANSITION_TYPE_FAN_R = 232,
-  GES_VIDEO_TRANSITION_TYPE_FAN_B = 233,
-  GES_VIDEO_TRANSITION_TYPE_FAN_L = 234,
-  GES_VIDEO_TRANSITION_TYPE_DOUBLEFAN_FIV = 235,
-  GES_VIDEO_TRANSITION_TYPE_DOUBLEFAN_FIH = 236,
-  GES_VIDEO_TRANSITION_TYPE_SINGLESWEEP_CWTL = 241,
-  GES_VIDEO_TRANSITION_TYPE_SINGLESWEEP_CWBL = 242,
-  GES_VIDEO_TRANSITION_TYPE_SINGLESWEEP_CWBR = 243,
-  GES_VIDEO_TRANSITION_TYPE_SINGLESWEEP_CWTR = 244,
-  GES_VIDEO_TRANSITION_TYPE_DOUBLESWEEP_PDTL = 245,
-  GES_VIDEO_TRANSITION_TYPE_DOUBLESWEEP_PDBL = 246,
-  GES_VIDEO_TRANSITION_TYPE_SALOONDOOR_T = 251,
-  GES_VIDEO_TRANSITION_TYPE_SALOONDOOR_L = 252,
-  GES_VIDEO_TRANSITION_TYPE_SALOONDOOR_B = 253,
-  GES_VIDEO_TRANSITION_TYPE_SALOONDOOR_R = 254,
-  GES_VIDEO_TRANSITION_TYPE_WINDSHIELD_R = 261,
-  GES_VIDEO_TRANSITION_TYPE_WINDSHIELD_U = 262,
-  GES_VIDEO_TRANSITION_TYPE_WINDSHIELD_V = 263,
-  GES_VIDEO_TRANSITION_TYPE_WINDSHIELD_H = 264,
-  GES_VIDEO_TRANSITION_TYPE_CROSSFADE = 512
-} GESVideoTransitionType;
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_NONE = 0,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_BAR_WIPE_LR = 1,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_BAR_WIPE_TB = 2,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_TL = 3,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_TR = 4,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_BR = 5,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_BL = 6,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_FOUR_BOX_WIPE_CI = 7,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_FOUR_BOX_WIPE_CO = 8,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNDOOR_V = 21,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNDOOR_H = 22,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_TC = 23,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_RC = 24,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_BC = 25,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_LC = 26,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_DIAGONAL_TL = 41,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_DIAGONAL_TR = 42,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_BOWTIE_V = 43,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_BOWTIE_H = 44,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNDOOR_DBL = 45,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNDOOR_DTL = 46,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_MISC_DIAGONAL_DBD = 47,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_MISC_DIAGONAL_DD = 48,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_VEE_D = 61,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_VEE_L = 62,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_VEE_U = 63,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_VEE_R = 64,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNVEE_D = 65,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNVEE_L = 66,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNVEE_U = 67,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNVEE_R = 68,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_IRIS_RECT = 101,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_CLOCK_CW12 = 201,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_CLOCK_CW3 = 202,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_CLOCK_CW6 = 203,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_CLOCK_CW9 = 204,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_PINWHEEL_TBV = 205,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_PINWHEEL_TBH = 206,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_PINWHEEL_FB = 207,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_CT = 211,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_CR = 212,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLEFAN_FOV = 213,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLEFAN_FOH = 214,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWT = 221,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWR = 222,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWB = 223,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWL = 224,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_PV = 225,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_PD = 226,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_OV = 227,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_OH = 228,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_T = 231,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_R = 232,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_B = 233,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_L = 234,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLEFAN_FIV = 235,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLEFAN_FIH = 236,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWTL = 241,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWBL = 242,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWBR = 243,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWTR = 244,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_PDTL = 245,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_PDBL = 246,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_SALOONDOOR_T = 251,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_SALOONDOOR_L = 252,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_SALOONDOOR_B = 253,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_SALOONDOOR_R = 254,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_WINDSHIELD_R = 261,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_WINDSHIELD_U = 262,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_WINDSHIELD_V = 263,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_WINDSHIELD_H = 264,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_CROSSFADE = 512
+} GESVideoStandardTransitionType;
 
-#define GES_VIDEO_TRANSITION_TYPE_TYPE \
-    (ges_video_transition_type_get_type())
+#define GES_VIDEO_STANDARD_TRANSITION_TYPE_TYPE \
+    (ges_video_standard_transition_type_get_type())
 
-GType ges_video_transition_type_get_type (void);
+GType ges_video_standard_transition_type_get_type (void);
 
 /**
  * GESTextVAlign:
index d7283d2..9be317a 100644 (file)
  * the two adjacent sources.
  */
 
+#include <ges/ges.h>
 #include "ges-internal.h"
-#include "ges-simple-timeline-layer.h"
-#include "ges-timeline-object.h"
-#include "ges-timeline-source.h"
-#include "ges-timeline-transition.h"
 #include "gesmarshal.h"
 
 static void
index a6e2c83..0c92a37 100644 (file)
@@ -152,7 +152,7 @@ typedef gboolean (*CreateTrackObjectsFunc) (GESTimelineObject * object,
 /**
  * GESTimelineObject:
  *
- * The GESTimelineObject subclass. Subclasses can access these fields.
+ * The #GESTimelineObject base class.
  */
 struct _GESTimelineObject {
   /*< private >*/
@@ -177,7 +177,7 @@ struct _GESTimelineObject {
 /**
  * GESTimelineObjectClass:
  * @create_track_object: method to create a single #GESTrackObject for a given #GESTrack.
- * @create_track_objects: method to crate multiple #GESTrackObjects for a
+ * @create_track_objects: method to create multiple #GESTrackObjects for a
  * #GESTrack.
  * @fill_track_object: method to fill an associated #GESTrackObject.
  * @need_fill_track: Set to TRUE if @fill_track_object needs to be called.
index d2e6032..b310e9d 100644 (file)
@@ -251,8 +251,8 @@ ges_timeline_pipeline_change_state (GstElement * element,
         ret = GST_STATE_CHANGE_FAILURE;
         goto done;
       }
-      if (self->
-          priv->mode & (TIMELINE_MODE_RENDER | TIMELINE_MODE_SMART_RENDER))
+      if (self->priv->
+          mode & (TIMELINE_MODE_RENDER | TIMELINE_MODE_SMART_RENDER))
         GST_DEBUG ("rendering => Updating pipeline caps");
       if (!ges_timeline_pipeline_update_caps (self)) {
         GST_ERROR_OBJECT (element, "Error setting the caps for rendering");
diff --git a/ges/ges-timeline-standard-transition.c b/ges/ges-timeline-standard-transition.c
new file mode 100644 (file)
index 0000000..a8c0fa4
--- /dev/null
@@ -0,0 +1,225 @@
+/* GStreamer Editing Services
+ * Copyright (C) 2009 Edward Hervey <edward.hervey@collabora.co.uk>
+ *               2009 Nokia Corporation
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+/**
+ * SECTION: ges-timeline-standard-transition
+ * @short_description: Transition from one clip to another in a
+ * #GESTimelineLayer
+ *
+ * Creates an object that mixes together the two underlying objects, A and B.
+ * The A object is assumed to have a higher prioirity (lower number) than the
+ * B object. At the transition in point, only A will be visible, and by the
+ * end only B will be visible. 
+ * 
+ * The shape of the video transition depends on the value of the "vtype"
+ * property. The default value is "crossfade". For audio, only "crossfade" is
+ * supported.
+ *
+ * #GESSimpleTimelineLayer will automatically manage the priorities of sources
+ * and transitions. If you use #GESTimelineStandardTransitions in another type of
+ * #GESTimelineLayer, you will need to manage priorities yourself.
+ */
+
+#include <ges/ges.h>
+#include "ges-internal.h"
+
+struct _GESTimelineStandardTransitionPrivate
+{
+  /* Dummy variable */
+  void *nothing;
+};
+
+enum
+{
+  PROP_VTYPE = 5,
+};
+
+G_DEFINE_TYPE (GESTimelineStandardTransition, ges_timeline_standard_transition,
+    GES_TYPE_TIMELINE_TRANSITION);
+
+static GESTrackObject *ges_tl_transition_create_track_object (GESTimelineObject
+    * self, GESTrack * track);
+
+static void
+ges_timeline_standard_transition_update_vtype_internal (GESTimelineObject *
+    self, GESVideoStandardTransitionType value)
+{
+  GList *tmp, *trackobjects;
+  GESTimelineStandardTransition *trself =
+      (GESTimelineStandardTransition *) self;
+
+  /* FIXME : We need a much less crack way to find the trackobject to change */
+  trackobjects = ges_timeline_object_get_track_objects (self);
+  for (tmp = trackobjects; tmp; tmp = tmp->next) {
+    GESTrackVideoTransition *obj;
+    if (GES_IS_TRACK_VIDEO_TRANSITION (tmp->data)) {
+      obj = (GESTrackVideoTransition *) tmp->data;
+      if (!ges_track_video_transition_set_type (obj, value))
+        goto beach;
+    }
+  }
+
+  trself->vtype = value;
+
+beach:
+  g_list_foreach (trackobjects, (GFunc) g_object_unref, NULL);
+  g_list_free (trackobjects);
+  return;
+}
+
+static void
+ges_timeline_standard_transition_get_property (GObject * object,
+    guint property_id, GValue * value, GParamSpec * pspec)
+{
+  GESTimelineStandardTransition *self =
+      GES_TIMELINE_STANDARD_TRANSITION (object);
+  switch (property_id) {
+    case PROP_VTYPE:
+      g_value_set_enum (value, self->vtype);
+      break;
+    default:
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+  }
+}
+
+static void
+ges_timeline_standard_transition_set_property (GObject * object,
+    guint property_id, const GValue * value, GParamSpec * pspec)
+{
+  GESTimelineObject *self = GES_TIMELINE_OBJECT (object);
+
+  switch (property_id) {
+    case PROP_VTYPE:
+      ges_timeline_standard_transition_update_vtype_internal (self,
+          g_value_get_enum (value));
+      break;
+    default:
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+  }
+}
+
+static void
+ges_timeline_standard_transition_class_init (GESTimelineStandardTransitionClass
+    * klass)
+{
+  GObjectClass *object_class = G_OBJECT_CLASS (klass);
+  GESTimelineObjectClass *timobj_class = GES_TIMELINE_OBJECT_CLASS (klass);
+
+  g_type_class_add_private (klass,
+      sizeof (GESTimelineStandardTransitionPrivate));
+
+  object_class->get_property = ges_timeline_standard_transition_get_property;
+  object_class->set_property = ges_timeline_standard_transition_set_property;
+
+  /**
+   * GESTimelineStandardTransition:vtype
+   *
+   * a #GESVideoTransitionType representing the wipe to use
+   */
+  g_object_class_install_property (object_class, PROP_VTYPE,
+      g_param_spec_enum ("vtype", "VType",
+          "The SMPTE video wipe to use, or 0 for crossfade",
+          GES_VIDEO_STANDARD_TRANSITION_TYPE_TYPE,
+          GES_VIDEO_STANDARD_TRANSITION_TYPE_CROSSFADE,
+          G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
+
+
+  timobj_class->create_track_object = ges_tl_transition_create_track_object;
+  timobj_class->need_fill_track = FALSE;
+}
+
+static void
+ges_timeline_standard_transition_init (GESTimelineStandardTransition * self)
+{
+
+  self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self,
+      GES_TYPE_TIMELINE_STANDARD_TRANSITION,
+      GESTimelineStandardTransitionPrivate);
+
+  self->vtype = GES_VIDEO_STANDARD_TRANSITION_TYPE_NONE;
+}
+
+static GESTrackObject *
+ges_tl_transition_create_track_object (GESTimelineObject * obj,
+    GESTrack * track)
+{
+  GESTimelineStandardTransition *transition =
+      (GESTimelineStandardTransition *) obj;
+  GESTrackObject *res;
+
+  GST_DEBUG ("Creating a GESTrackTransition");
+
+  if (track->type == GES_TRACK_TYPE_VIDEO) {
+    res = GES_TRACK_OBJECT (ges_track_video_transition_new ());
+    ges_track_video_transition_set_type ((GESTrackVideoTransition *) res,
+        transition->vtype);
+  }
+
+  else if (track->type == GES_TRACK_TYPE_AUDIO) {
+    res = GES_TRACK_OBJECT (ges_track_audio_transition_new ());
+  }
+
+  else {
+    GST_WARNING ("Transitions don't handle this track type");
+    return NULL;
+  }
+
+  return res;
+}
+
+/**
+ * ges_timeline_standard_transition_new:
+ * @vtype: the type of transition to create
+ *
+ */
+
+GESTimelineStandardTransition *
+ges_timeline_standard_transition_new (GESVideoStandardTransitionType vtype)
+{
+  return g_object_new (GES_TYPE_TIMELINE_STANDARD_TRANSITION, "vtype",
+      (gint) vtype, NULL);
+}
+
+/**
+ * ges_timeline_standard_transition_new_for_nick:
+ * @nick: a string representing the type of transition to create
+ */
+
+GESTimelineStandardTransition *
+ges_timeline_standard_transition_new_for_nick (gchar * nick)
+{
+  GEnumValue *value;
+  GEnumClass *klass;
+  GESTimelineStandardTransition *ret = NULL;
+
+  klass =
+      G_ENUM_CLASS (g_type_class_ref (GES_VIDEO_STANDARD_TRANSITION_TYPE_TYPE));
+  if (!klass)
+    return NULL;
+
+  value = g_enum_get_value_by_nick (klass, nick);
+  if (value) {
+    ret = g_object_new (GES_TYPE_TIMELINE_STANDARD_TRANSITION, "vtype",
+        (gint) value->value, NULL);
+  }
+
+  g_type_class_unref (klass);
+  return ret;
+}
diff --git a/ges/ges-timeline-standard-transition.h b/ges/ges-timeline-standard-transition.h
new file mode 100644 (file)
index 0000000..90988e5
--- /dev/null
@@ -0,0 +1,88 @@
+/* GStreamer Editing Services
+ * Copyright (C) 2009 Edward Hervey <edward.hervey@collabora.co.uk>
+ *               2009 Nokia Corporation
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifndef _GES_TIMELINE_STANDARD_TRANSITION
+#define _GES_TIMELINE_STANDARD_TRANSITION
+
+#include <glib-object.h>
+#include <ges/ges.h>
+#include <ges/ges-timeline-transition.h>
+
+G_BEGIN_DECLS
+
+#define GES_TYPE_TIMELINE_STANDARD_TRANSITION ges_timeline_standard_transition_get_type()
+
+#define GES_TIMELINE_STANDARD_TRANSITION(obj) \
+  (G_TYPE_CHECK_INSTANCE_CAST ((obj), GES_TYPE_TIMELINE_STANDARD_TRANSITION, GESTimelineStandardTransition))
+
+#define GES_TIMELINE_STANDARD_TRANSITION_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_CAST ((klass), GES_TYPE_TIMELINE_STANDARD_TRANSITION, GESTimelineStandardTransitionClass))
+
+#define GES_IS_TIMELINE_STANDARD_TRANSITION(obj) \
+  (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GES_TYPE_TIMELINE_STANDARD_TRANSITION))
+
+#define GES_IS_TIMELINE_STANDARD_TRANSITION_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_TYPE ((klass), GES_TYPE_TIMELINE_STANDARD_TRANSITION))
+
+#define GES_TIMELINE_STANDARD_TRANSITION_GET_CLASS(obj) \
+  (G_TYPE_INSTANCE_GET_CLASS ((obj), GES_TYPE_TIMELINE_STANDARD_TRANSITION, GESTimelineStandardTransitionClass))
+
+typedef struct _GESTimelineStandardTransitionPrivate GESTimelineStandardTransitionPrivate;
+
+/**
+ * GESTimelineStandardTransition:
+ * @vtype: a #GESVideoStandardTransitionType indicating the type of video transition
+ * to apply.
+ */
+struct _GESTimelineStandardTransition {
+  /*< private >*/
+  GESTimelineTransition parent;
+
+  /*< public >*/
+  GESVideoStandardTransitionType vtype;
+
+  /*< private >*/
+  GESTimelineStandardTransitionPrivate *priv;
+
+  /* Padding for API extension */
+  gpointer _ges_reserved[GES_PADDING];
+};
+
+/**
+ * GESTimelineStandardTransitionClass:
+ *
+ */
+
+struct _GESTimelineStandardTransitionClass {
+  /*< private >*/
+  GESTimelineTransitionClass parent_class;
+
+  /* Padding for API extension */
+  gpointer _ges_reserved[GES_PADDING];
+};
+
+GType ges_timeline_standard_transition_get_type (void);
+
+GESTimelineStandardTransition *ges_timeline_standard_transition_new (GESVideoStandardTransitionType vtype);
+GESTimelineStandardTransition *ges_timeline_standard_transition_new_for_nick (char *nick);
+
+G_END_DECLS
+
+#endif /* _GES_TIMELINE_STANDARD_TRANSITION */
index 1b752bc..20fd950 100644 (file)
 
 /**
  * SECTION: ges-timeline-transition
- * @short_description: Transition from one clip to another in a
- * #GESTimelineLayer
- *
- * Creates an object that mixes together the two underlying objects, A and B.
- * The A object is assumed to have a higher prioirity (lower number) than the
- * B object. At the transition in point, only A will be visible, and by the
- * end only B will be visible. 
- * 
- * The shape of the video transition depends on the value of the "vtype"
- * property. The default value is "crossfade". For audio, only "crossfade" is
- * supported.
- *
- * #GESSimpleTimelineLayer will automatically manage the priorities of sources
- * and transitions. If you use #GESTimelineTransitions in another type of
- * #GESTimelineLayer, you will need to manage priorities yourself.
+ * @short_description: Base classes for transitions
  */
 
+#include <ges/ges.h>
 #include "ges-internal.h"
-#include "ges-timeline-transition.h"
-#include "ges-track-video-transition.h"
-#include "ges-track-audio-transition.h"
 
 struct _GESTimelineTransitionPrivate
 {
@@ -48,172 +32,18 @@ struct _GESTimelineTransitionPrivate
   void *nothing;
 };
 
-enum
-{
-  PROP_VTYPE = 5,
-};
-
-G_DEFINE_TYPE (GESTimelineTransition, ges_timeline_transition,
+G_DEFINE_ABSTRACT_TYPE (GESTimelineTransition, ges_timeline_transition,
     GES_TYPE_TIMELINE_OPERATION);
 
-static GESTrackObject *ges_tl_transition_create_track_object (GESTimelineObject
-    * self, GESTrack * track);
-
-static void
-ges_timeline_transition_update_vtype_internal (GESTimelineObject * self,
-    GESVideoTransitionType value)
-{
-  GList *tmp, *trackobjects;
-  GESTimelineTransition *trself = (GESTimelineTransition *) self;
-
-  /* FIXME : We need a much less crack way to find the trackobject to change */
-  trackobjects = ges_timeline_object_get_track_objects (self);
-  for (tmp = trackobjects; tmp; tmp = tmp->next) {
-    GESTrackVideoTransition *obj;
-    if (GES_IS_TRACK_VIDEO_TRANSITION (tmp->data)) {
-      obj = (GESTrackVideoTransition *) tmp->data;
-      if (!ges_track_video_transition_set_type (obj, value))
-        goto beach;
-    }
-  }
-
-  trself->vtype = value;
-
-beach:
-  g_list_foreach (trackobjects, (GFunc) g_object_unref, NULL);
-  g_list_free (trackobjects);
-  return;
-}
-
-static void
-ges_timeline_transition_get_property (GObject * object,
-    guint property_id, GValue * value, GParamSpec * pspec)
-{
-  GESTimelineTransition *self = GES_TIMELINE_TRANSITION (object);
-  switch (property_id) {
-    case PROP_VTYPE:
-      g_value_set_enum (value, self->vtype);
-      break;
-    default:
-      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
-  }
-}
-
-static void
-ges_timeline_transition_set_property (GObject * object, guint property_id,
-    const GValue * value, GParamSpec * pspec)
-{
-  GESTimelineObject *self = GES_TIMELINE_OBJECT (object);
-
-  switch (property_id) {
-    case PROP_VTYPE:
-      ges_timeline_transition_update_vtype_internal (self,
-          g_value_get_enum (value));
-      break;
-    default:
-      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
-  }
-}
-
 static void
 ges_timeline_transition_class_init (GESTimelineTransitionClass * klass)
 {
-  GObjectClass *object_class = G_OBJECT_CLASS (klass);
-  GESTimelineObjectClass *timobj_class = GES_TIMELINE_OBJECT_CLASS (klass);
-
   g_type_class_add_private (klass, sizeof (GESTimelineTransitionPrivate));
-
-  object_class->get_property = ges_timeline_transition_get_property;
-  object_class->set_property = ges_timeline_transition_set_property;
-
-  /**
-   * GESTimelineTransition:vtype
-   *
-   * a #GESVideoTransitionType representing the wipe to use
-   */
-  g_object_class_install_property (object_class, PROP_VTYPE,
-      g_param_spec_enum ("vtype", "VType",
-          "The SMPTE video wipe to use, or 0 for crossfade",
-          GES_VIDEO_TRANSITION_TYPE_TYPE, GES_VIDEO_TRANSITION_TYPE_CROSSFADE,
-          G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
-
-
-  timobj_class->create_track_object = ges_tl_transition_create_track_object;
-  timobj_class->need_fill_track = FALSE;
 }
 
 static void
 ges_timeline_transition_init (GESTimelineTransition * self)
 {
-
   self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self,
       GES_TYPE_TIMELINE_TRANSITION, GESTimelineTransitionPrivate);
-
-  self->vtype = GES_VIDEO_TRANSITION_TYPE_NONE;
-}
-
-static GESTrackObject *
-ges_tl_transition_create_track_object (GESTimelineObject * obj,
-    GESTrack * track)
-{
-  GESTimelineTransition *transition = (GESTimelineTransition *) obj;
-  GESTrackObject *res;
-
-  GST_DEBUG ("Creating a GESTrackTransition");
-
-  if (track->type == GES_TRACK_TYPE_VIDEO) {
-    res = GES_TRACK_OBJECT (ges_track_video_transition_new ());
-    ges_track_video_transition_set_type ((GESTrackVideoTransition *) res,
-        transition->vtype);
-  }
-
-  else if (track->type == GES_TRACK_TYPE_AUDIO) {
-    res = GES_TRACK_OBJECT (ges_track_audio_transition_new ());
-  }
-
-  else {
-    GST_WARNING ("Transitions don't handle this track type");
-    return NULL;
-  }
-
-  return res;
-}
-
-/**
- * ges_timeline_transition_new:
- * @vtype: the type of transition to create
- *
- */
-
-GESTimelineTransition *
-ges_timeline_transition_new (GESVideoTransitionType vtype)
-{
-  return g_object_new (GES_TYPE_TIMELINE_TRANSITION, "vtype", (gint) vtype,
-      NULL);
-}
-
-/**
- * ges_timeline_transition_new_for_nick:
- * @nick: a string representing the type of transition to create
- */
-
-GESTimelineTransition *
-ges_timeline_transition_new_for_nick (gchar * nick)
-{
-  GEnumValue *value;
-  GEnumClass *klass;
-  GESTimelineTransition *ret = NULL;
-
-  klass = G_ENUM_CLASS (g_type_class_ref (GES_VIDEO_TRANSITION_TYPE_TYPE));
-  if (!klass)
-    return NULL;
-
-  value = g_enum_get_value_by_nick (klass, nick);
-  if (value) {
-    ret = g_object_new (GES_TYPE_TIMELINE_TRANSITION, "vtype",
-        (gint) value->value, NULL);
-  }
-
-  g_type_class_unref (klass);
-  return ret;
 }
index 97843de..c7c8507 100644 (file)
@@ -47,16 +47,11 @@ typedef struct _GESTimelineTransitionPrivate GESTimelineTransitionPrivate;
 
 /**
  * GESTimelineTransition:
- * @vtype: a #GESVideoTransitionType indicating the type of video transition
- * to apply.
  */
 struct _GESTimelineTransition {
   /*< private >*/
   GESTimelineOperation parent;
 
-  /*< public >*/
-  GESVideoTransitionType vtype;
-
   /*< private >*/
   GESTimelineTransitionPrivate *priv;
 
@@ -79,9 +74,6 @@ struct _GESTimelineTransitionClass {
 
 GType ges_timeline_transition_get_type (void);
 
-GESTimelineTransition *ges_timeline_transition_new (GESVideoTransitionType vtype);
-GESTimelineTransition *ges_timeline_transition_new_for_nick (char *nick);
-
 G_END_DECLS
 
 #endif /* _GES_TIMELINE_TRANSITION */
index ca2c963..bba0ddf 100644 (file)
@@ -27,7 +27,8 @@
 #include "ges-track-object.h"
 #include "ges-track-operation.h"
 
-G_DEFINE_TYPE (GESTrackOperation, ges_track_operation, GES_TYPE_TRACK_OBJECT);
+G_DEFINE_ABSTRACT_TYPE (GESTrackOperation, ges_track_operation,
+    GES_TYPE_TRACK_OBJECT);
 
 struct _GESTrackOperationPrivate
 {
index 84eaa0e..d43c5f9 100644 (file)
  *
  */
 
+#include <ges/ges.h>
 #include "ges-internal.h"
-#include "ges-track-object.h"
-#include "ges-track-transition.h"
-#include "ges-timeline-transition.h"
 
-G_DEFINE_TYPE (GESTrackTransition, ges_track_transition, GES_TYPE_TRACK_OBJECT);
+G_DEFINE_ABSTRACT_TYPE (GESTrackTransition, ges_track_transition,
+    GES_TYPE_TRACK_OBJECT);
 
 struct _GESTrackTransitionPrivate
 {
index 12d4096..90265b7 100644 (file)
  * @short_description: implements video crossfade transition
  */
 
+#include <ges/ges.h>
 #include "ges-internal.h"
-#include "ges-track-object.h"
-#include "ges-timeline-transition.h"
-#include "ges-track-video-transition.h"
 
 G_DEFINE_TYPE (GESTrackVideoTransition, ges_track_video_transition,
     GES_TYPE_TRACK_TRANSITION);
@@ -103,7 +101,7 @@ ges_track_video_transition_init (GESTrackVideoTransition * self)
   self->mixer = NULL;
   self->sinka = NULL;
   self->sinkb = NULL;
-  self->type = GES_VIDEO_TRANSITION_TYPE_NONE;
+  self->type = GES_VIDEO_STANDARD_TRANSITION_TYPE_NONE;
   self->start_value = 0.0;
   self->end_value = 0.0;
 }
@@ -199,7 +197,7 @@ ges_track_video_transition_create_element (GESTrackTransition * object)
   g_object_set (G_OBJECT (mixer), "background", 1, NULL);
   gst_bin_add (GST_BIN (topbin), mixer);
 
-  if (self->type != GES_VIDEO_TRANSITION_TYPE_CROSSFADE) {
+  if (self->type != GES_VIDEO_STANDARD_TRANSITION_TYPE_CROSSFADE) {
     self->sinka =
         (GstPad *) link_element_to_mixer_with_smpte (GST_BIN (topbin), iconva,
         mixer, self->type, NULL);
@@ -327,20 +325,20 @@ ges_track_video_transition_duration_changed (GESTrackObject * object,
 
 gboolean
 ges_track_video_transition_set_type (GESTrackVideoTransition * self,
-    GESVideoTransitionType type)
+    GESVideoStandardTransitionType type)
 {
   GST_DEBUG ("%p %d => %d", self, self->type, type);
 
   if (self->type && (self->type != type) &&
-      ((type == GES_VIDEO_TRANSITION_TYPE_CROSSFADE) ||
-          (self->type == GES_VIDEO_TRANSITION_TYPE_CROSSFADE))) {
+      ((type == GES_VIDEO_STANDARD_TRANSITION_TYPE_CROSSFADE) ||
+          (self->type == GES_VIDEO_STANDARD_TRANSITION_TYPE_CROSSFADE))) {
     GST_WARNING
         ("Changing between 'crossfade' and other types is not supported");
     return FALSE;
   }
 
   self->type = type;
-  if (self->smpte && (type != GES_VIDEO_TRANSITION_TYPE_CROSSFADE))
+  if (self->smpte && (type != GES_VIDEO_STANDARD_TRANSITION_TYPE_CROSSFADE))
     g_object_set (self->smpte, "type", (gint) type, NULL);
   return TRUE;
 }
index ec67d9b..6128c5c 100644 (file)
@@ -54,7 +54,7 @@ struct _GESTrackVideoTransition {
   GESTrackTransition parent;
   
   /*< private >*/
-  GESVideoTransitionType        type;
+  GESVideoStandardTransitionType        type;
  
   /* these enable video interpolation */
   GstController                 *controller;
@@ -95,7 +95,7 @@ GType ges_track_video_transition_get_type (void);
 
 gboolean
 ges_track_video_transition_set_type (GESTrackVideoTransition * self,
-GESVideoTransitionType type);
+GESVideoStandardTransitionType type);
 ;
 
 GESTrackVideoTransition* ges_track_video_transition_new (void);
index 479129b..84f2547 100644 (file)
@@ -56,6 +56,9 @@ typedef struct _GESTimelineFileSourceClass GESTimelineFileSourceClass;
 typedef struct _GESTimelineTransition GESTimelineTransition;
 typedef struct _GESTimelineTransitionClass GESTimelineTransitionClass;
 
+typedef struct _GESTimelineStandardTransition GESTimelineStandardTransition;
+typedef struct _GESTimelineStandardTransitionClass GESTimelineStandardTransitionClass;
+
 typedef struct _GESTimelineTestSource GESTimelineTestSource;
 typedef struct _GESTimelineTestSourceClass GESTimelineTestSourceClass;
 
index 6d3d15a..931b88a 100644 (file)
--- a/ges/ges.c
+++ b/ges/ges.c
@@ -49,7 +49,7 @@ ges_init (void)
   GES_TYPE_TIMELINE_TEST_SOURCE;
   GES_TYPE_TIMELINE_FILE_SOURCE;
   GES_TYPE_TIMELINE_TITLE_SOURCE;
-  GES_TYPE_TIMELINE_TRANSITION;
+  GES_TYPE_TIMELINE_STANDARD_TRANSITION;
   GES_TYPE_TIMELINE_OVERLAY;
 
   /* TODO: user-defined types? */
index 6a17ca1..fdfc59b 100644 (file)
--- a/ges/ges.h
+++ b/ges/ges.h
@@ -39,6 +39,7 @@
 #include <ges/ges-timeline-overlay.h>
 #include <ges/ges-timeline-text-overlay.h>
 #include <ges/ges-timeline-transition.h>
+#include <ges/ges-timeline-standard-transition.h>
 #include <ges/ges-track.h>
 #include <ges/ges-track-object.h>
 #include <ges/ges-track-source.h>
index 1ec3973..b6cd912 100644 (file)
@@ -130,13 +130,13 @@ GST_START_TEST (test_keyfile_save)
 
   GST_DEBUG ("Adding transition");
   source = (GESTimelineObject *)
-      ges_timeline_transition_new_for_nick ((gchar *) "bar-wipe-lr");
+      ges_timeline_standard_transition_new_for_nick ((gchar *) "bar-wipe-lr");
 
   g_object_set (G_OBJECT (source), "duration", (guint64) GST_SECOND / 2, NULL);
   ges_simple_timeline_layer_add_object (GES_SIMPLE_TIMELINE_LAYER (layer),
       source, -1);
 
-  KEY ("Object1", "type", "GESTimelineTransition");
+  KEY ("Object1", "type", "GESTimelineStandardTransition");
   KEY ("Object1", "start", "1500000000");
   KEY ("Object1", "in-point", "0");
   KEY ("Object1", "duration", "500000000");
@@ -537,7 +537,7 @@ static const gchar *data = "\n[General]\n"
     "volume=0\n"
     "\n"
     "[Object1]\n"
-    "type=GESTimelineTransition\n"
+    "type=GESTimelineStandardTransition\n"
     "start=1500000000\n"
     "in-point=0\n"
     "duration=500000000\n"
@@ -604,9 +604,9 @@ GST_START_TEST (test_keyfile_load)
       SIMPLE_LAYER_OBJECT ((GES_TYPE_TIMELINE_TEST_SOURCE), -1,
           "duration", (guint64) 2 * GST_SECOND);
 
-      SIMPLE_LAYER_OBJECT ((GES_TYPE_TIMELINE_TRANSITION), -1,
+      SIMPLE_LAYER_OBJECT ((GES_TYPE_TIMELINE_STANDARD_TRANSITION), -1,
           "duration", (guint64) GST_SECOND / 2,
-          "vtype", GES_VIDEO_TRANSITION_TYPE_BAR_WIPE_LR);
+          "vtype", GES_VIDEO_STANDARD_TRANSITION_TYPE_BAR_WIPE_LR);
 
       SIMPLE_LAYER_OBJECT ((GES_TYPE_TIMELINE_TEST_SOURCE), -1,
           "duration", (guint64) 2 * GST_SECOND);
index 1ec4209..fd44af3 100644 (file)
@@ -216,7 +216,7 @@ GST_START_TEST (test_gsl_with_transitions)
   GESTimelineLayer *layer;
   GESTrack *track;
   GESCustomTimelineSource *source1, *source2, *source3, *source4;
-  GESTimelineTransition *tr1, *tr2, *tr3, *tr4, *tr5;
+  GESTimelineStandardTransition *tr1, *tr2, *tr3, *tr4, *tr5;
   GESSimpleTimelineLayer *gstl;
   gboolean valid;
   gint count = 0;
@@ -276,23 +276,33 @@ GST_START_TEST (test_gsl_with_transitions)
 #define HALF_SECOND ((guint64) (0.5 * GST_SECOND))
 #define SECOND(a) ((guint64) (a * GST_SECOND))
 
-  tr1 = ges_timeline_transition_new (GES_VIDEO_TRANSITION_TYPE_CROSSFADE);
+  tr1 =
+      ges_timeline_standard_transition_new
+      (GES_VIDEO_STANDARD_TRANSITION_TYPE_CROSSFADE);
   g_object_set (tr1, "duration", HALF_SECOND, "start", (guint64) 42, NULL);
   fail_unless_equals_uint64 (GES_TIMELINE_OBJECT_DURATION (tr1), HALF_SECOND);
 
-  tr2 = ges_timeline_transition_new (GES_VIDEO_TRANSITION_TYPE_CROSSFADE);
+  tr2 =
+      ges_timeline_standard_transition_new
+      (GES_VIDEO_STANDARD_TRANSITION_TYPE_CROSSFADE);
   g_object_set (tr2, "duration", HALF_SECOND, "start", (guint64) 42, NULL);
   fail_unless_equals_uint64 (GES_TIMELINE_OBJECT_DURATION (tr2), HALF_SECOND);
 
-  tr3 = ges_timeline_transition_new (GES_VIDEO_TRANSITION_TYPE_CROSSFADE);
+  tr3 =
+      ges_timeline_standard_transition_new
+      (GES_VIDEO_STANDARD_TRANSITION_TYPE_CROSSFADE);
   g_object_set (tr3, "duration", HALF_SECOND, "start", (guint64) 42, NULL);
   fail_unless_equals_uint64 (GES_TIMELINE_OBJECT_DURATION (tr3), HALF_SECOND);
 
-  tr4 = ges_timeline_transition_new (GES_VIDEO_TRANSITION_TYPE_CROSSFADE);
+  tr4 =
+      ges_timeline_standard_transition_new
+      (GES_VIDEO_STANDARD_TRANSITION_TYPE_CROSSFADE);
   g_object_set (tr4, "duration", HALF_SECOND, "start", (guint64) 42, NULL);
   fail_unless_equals_uint64 (GES_TIMELINE_OBJECT_DURATION (tr4), HALF_SECOND);
 
-  tr5 = ges_timeline_transition_new (GES_VIDEO_TRANSITION_TYPE_CROSSFADE);
+  tr5 =
+      ges_timeline_standard_transition_new
+      (GES_VIDEO_STANDARD_TRANSITION_TYPE_CROSSFADE);
   g_object_set (tr5, "duration", HALF_SECOND, "start", (guint64) 42, NULL);
   fail_unless_equals_uint64 (GES_TIMELINE_OBJECT_DURATION (tr5), HALF_SECOND);
 
index fa4d943..4c184b1 100644 (file)
 
 #include <ges/ges.h>
 #include <gst/check/gstcheck.h>
-#include <ges/ges-timeline-transition.h>
-#include <ges/ges-track-video-transition.h>
-#include <ges/ges-track-audio-transition.h>
 
 /* This test uri will eventually have to be fixed */
 #define TEST_URI "blahblahblah"
 
 GST_START_TEST (test_transition_basic)
 {
-  GESTimelineTransition *tr1, *tr2;
+  GESTimelineStandardTransition *tr1, *tr2;
   GESTrackObject *trackobject;
   GESTrack *track;
 
@@ -38,11 +35,13 @@ GST_START_TEST (test_transition_basic)
   track = ges_track_video_raw_new ();
   fail_unless (track != 0);
 
-  tr1 = ges_timeline_transition_new (GES_VIDEO_TRANSITION_TYPE_CROSSFADE);
+  tr1 =
+      ges_timeline_standard_transition_new
+      (GES_VIDEO_STANDARD_TRANSITION_TYPE_CROSSFADE);
   fail_unless (tr1 != 0);
-  fail_unless (tr1->vtype == GES_VIDEO_TRANSITION_TYPE_CROSSFADE);
+  fail_unless (tr1->vtype == GES_VIDEO_STANDARD_TRANSITION_TYPE_CROSSFADE);
 
-  tr2 = ges_timeline_transition_new_for_nick ((gchar *) "bar-wipe-lr");
+  tr2 = ges_timeline_standard_transition_new_for_nick ((gchar *) "bar-wipe-lr");
   fail_unless (tr2 != 0);
   fail_unless (tr2->vtype == 1);
 
@@ -88,8 +87,8 @@ GST_START_TEST (test_transition_properties)
   ges_init ();
 
   object =
-      GES_TIMELINE_OBJECT (ges_timeline_transition_new
-      (GES_VIDEO_TRANSITION_TYPE_CROSSFADE));
+      GES_TIMELINE_OBJECT (ges_timeline_standard_transition_new
+      (GES_VIDEO_STANDARD_TRANSITION_TYPE_CROSSFADE));
 
   track = ges_track_video_raw_new ();
   fail_unless (track != NULL);
@@ -129,21 +128,22 @@ GST_START_TEST (test_transition_properties)
 
   /* test changing vtype */
   GST_DEBUG ("Setting to crossfade");
-  g_object_set (object, "vtype", GES_VIDEO_TRANSITION_TYPE_CROSSFADE, NULL);
-  assert_equals_int (GES_TIMELINE_TRANSITION (object)->vtype,
-      GES_VIDEO_TRANSITION_TYPE_CROSSFADE);
+  g_object_set (object, "vtype", GES_VIDEO_STANDARD_TRANSITION_TYPE_CROSSFADE,
+      NULL);
+  assert_equals_int (GES_TIMELINE_STANDARD_TRANSITION (object)->vtype,
+      GES_VIDEO_STANDARD_TRANSITION_TYPE_CROSSFADE);
   assert_equals_int (GES_TRACK_VIDEO_TRANSITION (trackobject)->type,
-      GES_VIDEO_TRANSITION_TYPE_CROSSFADE);
+      GES_VIDEO_STANDARD_TRANSITION_TYPE_CROSSFADE);
 
   /* Check that changing from crossfade to anything else fails (it should
    * still be using crossfade */
   GST_DEBUG ("Setting back to 1 (should fail)");
   g_object_set (object, "vtype", 1, NULL);
   /* FIXME : This should succeed */
-  assert_equals_int (GES_TIMELINE_TRANSITION (object)->vtype,
-      GES_VIDEO_TRANSITION_TYPE_CROSSFADE);
+  assert_equals_int (GES_TIMELINE_STANDARD_TRANSITION (object)->vtype,
+      GES_VIDEO_STANDARD_TRANSITION_TYPE_CROSSFADE);
   assert_equals_int (GES_TRACK_VIDEO_TRANSITION (trackobject)->type,
-      GES_VIDEO_TRANSITION_TYPE_CROSSFADE);
+      GES_VIDEO_STANDARD_TRANSITION_TYPE_CROSSFADE);
 
   GST_DEBUG ("Releasing track object");
   ges_timeline_object_release_track_object (object, trackobject);
@@ -159,7 +159,7 @@ GST_START_TEST (test_transition_properties)
    * type (in this case 1) */
   GST_DEBUG ("Setting to vtype:1");
   assert_equals_int (GES_TRACK_VIDEO_TRANSITION (trackobject)->type, 1);
-  assert_equals_int (GES_TIMELINE_TRANSITION (object)->vtype, 1);
+  assert_equals_int (GES_TIMELINE_STANDARD_TRANSITION (object)->vtype, 1);
 
   ges_timeline_object_release_track_object (object, trackobject);
   g_object_unref (object);
index 28d9ca0..ef26274 100644 (file)
@@ -1011,7 +1011,7 @@ app_move_selected_up (App * app)
   pos = g_list_index (objects, app->selected_objects->data);
 
   ges_simple_timeline_layer_move_object (GES_SIMPLE_TIMELINE_LAYER (app->layer),
-       GES_TIMELINE_OBJECT (app->selected_objects->data), pos - 1);
+      GES_TIMELINE_OBJECT (app->selected_objects->data), pos - 1);
 
   for (tmp = objects; tmp; tmp = tmp->next) {
     g_object_unref (tmp->data);
@@ -1028,7 +1028,7 @@ app_move_selected_down (App * app)
   pos = g_list_index (objects, app->selected_objects->data);
 
   ges_simple_timeline_layer_move_object (GES_SIMPLE_TIMELINE_LAYER (app->layer),
-       GES_TIMELINE_OBJECT (app->selected_objects->data), pos - 1);
+      GES_TIMELINE_OBJECT (app->selected_objects->data), pos - 1);
 
   for (tmp = objects; tmp; tmp = tmp->next) {
     g_object_unref (tmp->data);
@@ -1083,8 +1083,8 @@ app_add_transition (App * app)
 
   GST_DEBUG ("adding transition");
 
-  obj = GES_TIMELINE_OBJECT (ges_timeline_transition_new
-      (GES_VIDEO_TRANSITION_TYPE_CROSSFADE));
+  obj = GES_TIMELINE_OBJECT (ges_timeline_standard_transition_new
+      (GES_VIDEO_STANDARD_TRANSITION_TYPE_CROSSFADE));
   g_object_set (G_OBJECT (obj), "duration", GST_SECOND, NULL);
 
   ges_simple_timeline_layer_add_object (GES_SIMPLE_TIMELINE_LAYER
index f4eda41..c7184f8 100644 (file)
@@ -96,7 +96,7 @@ make_timeline (char *nick, double tdur, char *patha, float adur,
   GESTimelineObject *srca, *srcb;
   GESTimelinePipeline *pipeline;
   guint64 aduration, bduration, tduration, tstart;
-  GESTimelineTransition *tr = NULL;
+  GESTimelineStandardTransition *tr = NULL;
 
   pipeline = ges_timeline_pipeline_new ();
 
@@ -132,7 +132,7 @@ make_timeline (char *nick, double tdur, char *patha, float adur,
     g_print ("creating transition at %" GST_TIME_FORMAT " of %f duration (%"
         GST_TIME_FORMAT ")\n", GST_TIME_ARGS (tstart), tdur,
         GST_TIME_ARGS (tduration));
-    if (!(tr = ges_timeline_transition_new_for_nick (nick)))
+    if (!(tr = ges_timeline_standard_transition_new_for_nick (nick)))
       g_error ("invalid transition type %s\n", nick);
 
     g_object_set (tr,
index f00bf9d..4bc99cd 100644 (file)
@@ -234,7 +234,9 @@ create_timeline (int nbargs, gchar ** argv)
     }
 
     else if (!g_strcmp0 ("+transition", source)) {
-      obj = GES_TIMELINE_OBJECT (ges_timeline_transition_new_for_nick (arg0));
+      obj =
+          GES_TIMELINE_OBJECT (ges_timeline_standard_transition_new_for_nick
+          (arg0));
 
       if (!obj)
         g_error ("invalid transition type\n");
@@ -382,13 +384,14 @@ void
 print_transition_list (void)
 {
   GEnumClass *smpte_class;
-  GESTimelineTransition *tr;
-  GESTimelineTransitionClass *klass;
+  GESTimelineStandardTransition *tr;
+  GESTimelineStandardTransitionClass *klass;
   GParamSpec *pspec;
   GEnumValue *v;
 
-  tr = ges_timeline_transition_new (GES_VIDEO_TRANSITION_TYPE_CROSSFADE);
-  klass = GES_TIMELINE_TRANSITION_GET_CLASS (tr);
+  tr = ges_timeline_standard_transition_new
+      (GES_VIDEO_STANDARD_TRANSITION_TYPE_CROSSFADE);
+  klass = GES_TIMELINE_STANDARD_TRANSITION_GET_CLASS (tr);
 
   if ((pspec = g_object_class_find_property (G_OBJECT_CLASS (klass), "vtype"))) {