2005-12-18  Jan Schmidt  <thaytan@mad.scientist.com>

	reviewed by: <delete if not using a buddy>

	* parse/togra_statictexture.xml:
	* setup.py:
	* setup_new.py:
	* src/GstTexture.c: (C_PyGstTexture_New):
	* src/RenderControl.c: (timeout_handler), (unmap_event),
	(map_event), (visibility_notify_event), (_reshape),
	(C_PyRenderControl_New), (_init_gl_area), (PyRenderControl_New):
	* src/Util.c: (GetTime):
	* src/gst/gsttograsink.c: (gst_tograsink_get_times),
	(gst_tograsink_show), (if), (gst_tograsink_getcaps),
	(gst_tograsink_setcaps), (gst_tograsink_change_state),
	(gst_tograsink_class_init), (gst_tograsink_init),
	(gst_tograsink_dispose), (gst_tograsink_finalize),
	(gst_tograsink_get_type):
	* src/gst/gsttograsink.h:
	* src_new/C_PyRenderControl.c: (C_PyRenderControl_Init):
	* test/cube_gst.py:
	* test/sphere_movie.py:
	* test/texture-gst-cube.config:
	* test/texture-gst-cube.py:
	* test/texture-gst.py:
	* test/togra.py:
	* test/togragst.py:
	* test_new/bezier_interpolation.py:

2005-09-04  Jan Schmidt  <thaytan@mad.scientist.com>

	* Makefile:
	  use make -C for subdirs instead of funky cd && make && cd .. lines
	* parse/Makefile:
	  Use a quick grep command to fix up strange extra lines from CPP
	  here.

2005-08-12  Jan Schmidt  <thaytan@mad.scientist.com>

	* include/TograIncludes.h:
	* setup.py:
	* src/RenderControl.c: (gl_make_current), (_reshape),
	(C_PyRenderControl_New), (_init_gl_area),
	(C_PyRenderControl_SetAmbientLight), (C_PyRenderControl_NewLight),
	(C_PyRenderControl_DeleteLight):
	  Convert to gtkglext, because it's the new hotness.

2005-08-06  Jan Schmidt  <thaytan@mad.scientist.com>

	* src/GstTexture.c: (gsttexture_nextframe):
	  Fix signedness warning. Change GL_REPEAT to GL_CLAMP.
	* src/RenderControl.c:
	  In GTK build, return TRUE from the SingleStep idle handler
	  so that it keeps running.

2005-04-21  Jan Schmidt,,,  <thaytan@mad.scientist.com>

	* test/cube_gst.py:
	  Do Shane's change to restart streams at EOS, even though noone's
	  told me if my cube_gst_new changes work.

	* test/cube_gst_new.py:
          Actually commit changes, silly man	  

2005-04-19  Jan Schmidt  <thaytan@mad.scientist.com>

	* test/cube_gst_new.py:
	  Add a flag to kick off each stream as it comes in, instead of 
	  waiting for all 4 to preroll.

2005-04-18  Jan Schmidt  <thaytan@mad.scientist.com>

	* src/Logo.c: (C_PyLogo_Render):
	  Don't draw the texture when just picking, so DRI doesn't crash

2005-04-17  Jan Schmidt,,,  <thaytan@mad.scientist.com>

	* test/cube_gst_new.py:
	  Detect when the sound output cannot start and disable it.

2005-04-17  Jan Schmidt  <thaytan@mad.scientist.com>

	* test/cube_gst_new.py:
	  Do a bit more dancing about to hopefully avoid thread issues 
	* test/texture-gst-cube.py:
	  Make the number of steps in the audio volume changing easily
	  configurable. Fix a bug if there's more than 4 'file' lines in the
	  config.

2005-04-17  Shane Stephens,,,  <shane.stephens@gmail.com>

	* include/interfaces.h:
		Added "position" element to Logo
	* src/Logo.c: (C_PyLogo_New), (PyLogo_SetPositioning),
	(PyLogo_GetAttr), (C_PyLogo_Render):
		The Logo class now has a "positioning" concept - it can
		be left|centered|right, top|centered|bottom, or by param (in
		both x and y).  This allows screen-size relative positioning
		for simple cases.
	* test/TograConstants.py:
		Use this handy python file for nasty constants
	* test/texture-gst-cube.py:
		Set logo positioning using the Logo class's relative stuff

2005-04-17  Jan Schmidt  <thaytan@mad.scientist.com>

	* test/lca.png:
	    Update logo from LCA guys
	* test/texture-gst-cube.py:
	    Change expected width for positioning to 1000

2005-04-17  Jan Schmidt  <thaytan@mad.scientist.com>

	* test/texture-gst-cube.py:
	  Calculate some gain values based on some sinusoid and
	  decibel stuff as the cube rotates

2005-04-17  Shane Stephens,,,  <shane.stephens@gmail.com>

	* include/interfaces.h:
		Added typedef for new "Logo" class
	* setup.py:
		Added Logo source file to compiled list
	* src/InterpolatedPath.c:
	(PyInterpolatedPath_SetNotificationInterval),
	(PyInterpolatedPath_SetIterationScheme):
		Removed some unused variable warnings
	* src/RenderControl.c: (getScreenWidth), (getScreenHeight),
	(PyGetWidth), (PyGetHeight):
		Added functions to get screen width and height.  NOTE:
			These ONLY work once the screen is realised (in GTK),
			so they WON'T work during scene setup.  I'd like
			to fix this, but I'm not sure how right at the
			moment.
	* src/Togra.c:
		Added Logo class to Togra interface
	* test/texture-gst-cube.py:
		Modified LCA logo code to use new Logo class.  This results
		in a guaranteed 1:1 mapping of the image at a guaranteed
		screen position.
	* test/togra.py:
		Changed name of Logo to TograLogo so that it doesn't conflict
		with new class.

2005-04-17  Jan Schmidt,,,  <thaytan@mad.scientist.com>

	* test/cube_gst_new.py:
	  Unlink the pads slightly differently, so we're not racing 
	  against decodebin removing ghostpads
	  
	* test/texture-gst-cube.py:
	  Tweak the volume settings to -5.849 and -15.849 dB (66% and 33%
	  volume respectively if my calculations are right)

2005-04-17  Jan Schmidt,,,  <thaytan@mad.scientist.com>

	* test/texture-gst-cube.py:
	    Use a logarithmic rise/falloff for gain.

2005-04-16  Shane Stephens,,,  <shane.stephens@gmail.com>

	* test/texture-gst-cube.py:
	    Added 16 points at which volume changes.  Should now appear to 
	    change roughly correctly as the cube rotates.  It's only linear,
	    but hey, our ears suck at that kind of thing anyway.

2005-04-16  Jan Schmidt,,,  <thaytan@mad.scientist.com>

	* test/cube_gst_new.py:
            Add error and EOS handling. Restart streams after EOS, or 
	    if it was successfully playing when an error occured (ie, got
	    disconnected)
	* test/texture-gst-cube.py:
	    set PYGTK_USE_GIL_STATE_API env var to enable alternate 
	    threading handling in PyGTK

2005-04-16  Jan Schmidt  <thaytan@mad.scientist.com>

	* test/cube_gst_new.py:
	    Make the preroll queues (and playback buffers)
	    a little bigger. Add a brief sleep before enabling the output
	    sinks to let caps negotiation settle. Silly racy gstreamer 0.8
	    architecture :-P

2005-04-16  Jan Schmidt  <thaytan@mad.scientist.com>

	* src/RenderControl.c: (C_PyRenderControl_New):
	    Cast gtk_window to avoid compiler warning

2005-04-16  Jan Schmidt,,,  <thaytan@mad.scientist.com>
	* src/RenderControl.c: (C_PyRenderControl_InternalStep):
	  Release python interpreter lock while swapping buffers

	* test/cube_gst_new.py:
	  New GStreamer code including sound output

	* test/texture-gst-cube.py:
	  Use the new gstreamer code

2005-04-15  Jan Schmidt  <thaytan@mad.scientist.com>

	* test/cube_gst_new.py:
          More modifications for sound output

2005-04-15  Jan Schmidt,,,  <thaytan@mad.scientist.com>

	* test/cube_gst_new.py:
	  Random changes to break stuff badly. Use cube_gst.py unless you like
	  blank cubes

	* test/texture-gst-cube.py:
	  Use ctd's lca logo

	* test/lca.png:
	  ctd's new logo

2005-04-14  Jan Schmidt,,,  <thaytan@mad.scientist.com>

	* test/cube_gst_new.py:
	  Keep the outputs in READY state until we finish rolling
	  the inputs.

2005-04-14  Jan Schmidt  <thaytan@mad.scientist.com>

	* test/cube_gst.py:
	    Add change_vol placeholder
	* test/cube_gst_new.py:
	    Version which does audio
	* test/texture-gst-cube.py:
	    Step change the audio volume as the cube spins. Needs to be
	    more granular

2005-04-14  Shane Stephens,,,  <shane.stephens@gmail.com>

	* test/texture-gst-cube.py:
		Removed 2 sources of click-bugs:
			(1) I wasn't discriminating between events for the
				logo and events for the video cube properly
			(2) I wasn't returning after handling logo events
				anyway
		Both of which leads me to believe we need a better event
			framework.  Any ideas?
	* test/togra.py:
		Prevented the logo from being moved while it's already
			moving.  The "move" function now returns 0 if
			the move wasn't allowed.

2005-04-14  Shane Stephens,,,  <shane.stephens@gmail.com>

	* src/RenderControl.c: (_init_gl_area):
		Enabled alpha blending, disabled polygon smoothing, for the
		LCA demo.
		We'll need input options for these eventually, I'm thinking.
	* test/texture-gst-cube.py:
		Added LCA logo, AND, TRANSPARENT Togra logo. Whee.

2005-04-13  Jan Schmidt  <thaytan@mad.scientist.com>

	* test/texture-gst-cube.py:
	  Prepare for sound output too

	* test/texture-gst-flat.py:
	  Make the quad bigger for movie watching

2005-04-13  Shane Stephens,,,  <shane.stephens@gmail.com>

	* src/Matrix.c: (C_PyMatrix_MultiplyVector),
	(PyMatrix_MultiplyVector):
		Vector multiplication code - actually, this isn't
		tested as I realised I didn't need it.
	* test/texture-gst-cube.config:
		Added LOGO option
	* test/texture-gst-cube.py:
		Added logo.  Press 'm'!
	* test/togra.py:
		Some tweaks.

2005-04-13  Shane Stephens,,,  <shane.stephens@gmail.com>

	* include/interfaces.h:
		Added some extra elements to the status object for paths
	* src/InterpolatedPath.c: (C_PyInterpolatedPath_GenerateTransform),
	(PyInterpolatedPath_SetNotificationInterval),
	(PyInterpolatedPath_SetIterationScheme),
	(PyInterpolatedPath_SetDelay), (C_PyInterpolatedPath_Register):
		Some tweaks to InterpolatedPath to make it work better
	* test/texture-gst-cube.py:
		DON'T USE THIS YET it's not ready :)
	* test/togra.py:
		Made a logo "class" with nifty movement function

2005-04-12  Jan Schmidt,,,  <thaytan@mad.scientist.com>

	* src/RenderControl.c: (C_PyRenderControl_New):
	  Use gst_window_set_default_size, so the window can
	  be shrunk.

2005-04-12  Shane Stephens,,,  <shane.stephens@gmail.com>

	* src/InterpolatedPath.c: (C_PyInterpolatedPath_GenerateTransform):
		Fixed case where last tick in a set is close to the maximum
		time (previously these ticks weren't being generated)
	* test/texture-gst-cube.py:
		Cleaned up a lot, added dynamic texture resizing for
		performance improvements
	

2005-04-12  Shane Stephens,,,  <shane.stephens@gmail.com>

	* include/Messages.h:
		Added a second message type
	* include/interfaces.h:
		Modifications to the IP Status object to support nicer
		property setting and regular callbacks
	* src/GstTexture.c: (gsttexture_nextframe):
		The clean regeneration stuff that I didn't seem to get from
		Jan
	* src/InterpolatedPath.c: (C_PyInterpolatedPath_GenerateTransform),
	(PyInterpolatedPath_SetNotificationInterval),
	(PyInterpolatedPath_SetIterationScheme),
	(PyInterpolatedPath_SetCallback), (C_PyInterpolatedPath_Register):
		Modifications to the IP Status object to support nicer
		property setting and regular callbacks
	* src/TransformContainer.c: (C_PyTransformContainer_Append),
	(PyTransformContainer_Append),
	(PyTransformContainer_GetItemHandle):
		Modifications to return a handle on the Status object
		when setting a transform
	* test/texture-gst-cube.config:
	* test/texture-gst-cube.py:
		Not really for release - this currently sets all texture
		resolutions every time a cube corner is hit

2005-04-12  Jan Schmidt  <thaytan@mad.scientist.com>

	* src/GstTexture.c: (gsttexture_nextframe):
	  When the incoming frame size changes, cleanly regenerate
	  the texture

2005-04-11  Shane Stephens,,,  <set EMAIL_ADDRESS environment variable>

	reviewed by: <delete if not using a buddy>

	* src/GstTexture.c: (gsttexture_nextframe):
		Added resolution change logic
	* src/gst/gsttograsink.c: (gst_tograsink_chain):
		Removed print statement
	* test/cube_gst.py:
		This is the cube spinny gst stuff.  I wanted to keep it 
		seperate because it's a hack at the moment
	* test/texture-gst-cube.py:
		This now changes resolution when you press 'r'


2005-04-11  Jan Schmidt <thaytan@mad.scientist.com>
	* REQUIREMENTS:
	    A list of all of the bits needed to compile Togra that we could
	    remember

	* src/RenderControl.c: (C_PyRenderControl_New), (_init_gl_area),
	(C_PyRenderControl_KBFunc), (C_PyRenderControl_MouseFunc),
	(PyRenderControl_SetAttr):
	  Readability changes.

	* src/gst/gsttograsink.c: (gst_tograsink_set_property),
	(gst_tograsink_get_property), (gst_tograsink_chain),
	(gst_tograsink_getcaps), (gst_tograsink_sink_link),
	(gst_tograsink_init):
	* src/gst/gsttograsink.h:
	  Changing the width/height gobject properties should now
	  renegotiate the frame size.
	* test/texture-gst-cube.config:
	* test/texture-gst-cube.py:
	  Use a config file so LCA people don't have to remember long
	  cmd lines.

2005-04-09  Jan Schmidt <thaytan@mad.scientist.com>

	* src/RenderControl.c: (_init_gl_area),
	(C_PyRenderControl_MouseFunc), (C_PyRenderControl_MotionFunc),
	(PyRenderControl_SetAttr):
	  Finish implementing GTK mode mouse functions. Note the value of
	  'args[1]' passed to the mouseFunc is now reversed, 1 == pressed 0 ==
	  released. Both GLUT and GTK mode conform to this meaning now.
	* test/NewGraphMixinTest6.py:
	* test/ProtoNewGraphs.py:
	* test/Tracker.py:
	* test/dynamic_surface_gst2.py:
	* test/texture-gst-cube.py:
	  Fixup mouse functions for reversed meaning of the button
	  press/release value.

	* test/texture-gst.py:
	* test/togragst.py:
	  Add new FILE_WITH_AUDIO AutoGstTexture type that also outputs 
	  to alsasink.

2005-04-08  Shane Stephens,,,  <shane.stephens@gmail.com>

	* src/RenderControl.c: (_reshape), (C_PyRenderControl_New),
	(_init_gl_area), (C_PyRenderControl_SetAmbientLight),
	(C_PyRenderControl_NewLight), (C_PyRenderControl_DeleteLight),
	(C_PyRenderControl_SetBackColour), (C_PyRenderControl_Pick):
		Added some extra gtk_gl_area_make_current calls
		Made sure all gtk_gl_area_make_current calls were definitely
			referencing gl_area
	* test/texture-gst-cube.py:
		Shrunk the part of the texture in use SLIGHTLY so that
			antialiasing doesn't produce edge artifacts

2005-04-06  Shane Stephens,,,  <shane.stephens@gmail.com>

	* src/RenderControl.c: (_reshape), (C_PyRenderControl_KBFunc):
		Removed conflicts (this should basically be Jan's version)
	* test/texture-gst-cube.py:
		Added nicer discrimination feature when all the feeds are the
		same (i.e. for testing)
	* test/togragst.py:
		Added ability to externally construct custom stream types 
		from strings (HACK)

2005-04-06  Jan Schmidt,,,  <thaytan@mad.scientist.com>
	* setup.py:
	    Add GTK_DISABLE_DEPRECATED to the compile line
	* include/interfaces.h:
	* src/DynamicSurface.c: (C_PyDynamicSurface_Render),
	(PyDynamicSurface_Call):
	* src/LightObject.c: (C_PyLightObject_Render):
	* src/ProtoRender.c:
	* src/Render.c: (C_PyRender_Render), (PyRender_Call):
	* src/RenderControl.c: (_reshape), (C_PyRenderControl_New),
	(_init_gl_area), (C_PyRenderControl_KBFunc):
	* src/StaticSurface.c: (C_PyStaticSurface_Render),
	(PyStaticSurface_Call):
	    Fix up compiler warnings by adding the picking parameter
	    to all the IRender implementations

2005-04-05  Jan Schmidt,,,  <thaytan@mad.scientist.com>
	* setup.py:
	* src/GstTexture.c: (do_init_pygobject), (C_PyGstTexture_New),
	(PyGstTexture_New), (PyGstTexture_Free), (gsttexture_nextframe),
	(C_PyGstTexture_GetSink), (PyGstTexture_GetSink),
	(PyGstTexture_GetAttr):
	  Instead of building a managing a fix set of pipelines, 
	  GstTexture now just exports a TograSink via the getSink method
          for use in externally built pipelines.

	* src/gst/togragst.c:
	* src/gst/togragst.h:
	  No longer needed.

	* test/dynamic_surface_gst.py:
	* test/dynamic_surface_gst2.py:
	* test/dynamic_surface_gst3.py:
	* test/dynamic_surface_gst4.py:
	* test/sphere_movie.py:
	* test/texture-gst-cube.py:
	* test/texture-gst-flat.py:
	* test/texture-gst.py:
	* test/texture-gst1.py:
	  Update to use the functions in togragst for building
	  pipelines

	* test/togragst.py:
	  Helper class which builds and runs pipelines

2005-04-05  Jan Schmidt,,,  <thaytan@mad.scientist.com>

	* Makefile:
	    add GTK and GLUT targets. 'make GTK' works.
	    default target is GTK.

2005-04-05  Shane Stephens,,,	<shane.stephens@gmail.com>


	* include/RenderControl.h:
		Added fullscreen flag to init function
	* include/TograIncludes.h:
	* setup.py:
		Added support for building GLUT or nonGLUT version.
		Use 
			python setup.py build GLUT 
		to use old version
	* src/RenderControl.c: (_delete_event), (_destroy), (_reshape),
	(C_PyRenderControl_New), (_init_gl_area), (PyRenderControl_New),
	(C_PyRenderControl_KBFunc), (C_PyRenderControl_MouseFunc),
	(C_PyRenderControl_InternalStep), (C_PyRenderControl_Run),
	(C_PyRenderControl_Stop), (PyRenderControl_SetAttr):
		support for gtk-glarea.  This is not yet complete (no mouse
		motion, it should just return a glarea but returns a window,
		etc.).  It works well enough to run most current demos in
		though.
	* test/funkycube.py:
		now fullscreens
	* test/texture-gst-cube.py:
		now fullscreens

2005-04-05  Jan Schmidt,,,  <thaytan@mad.scientist.com>

	* src/gst/gsttograsink.c: (gst_tograsink_chain):
	  Debug output

	* test/texture-gst-cube.py:
	  Make the cube occupy more room

2005-04-05  Jan Schmidt  <thaytan@mad.scientist.com>

	* src/GstTexture.c: (gsttexture_nextframe):
	* src/gst/gsttograsink.c: (gst_tograsink_chain),
	(gst_tograsink_get_buffer), (gst_tograsink_class_init),
	(gst_tograsink_init), (gst_tograsink_finalize):
	* src/gst/gsttograsink.h:
	* src/gst/togragst.c: (togra_gst_handle_frame),
	(build_pipeline_from_str), (build_pipeline_dvd),
	(build_pipeline_goom), (build_pipeline_file),
	(togra_gst_player_new), (togra_gst_player_get_frame):
	* src/gst/togragst.h:
	  Rewrite buffer passing from the GstTograSink so
	  we don't copy the framebuffer memory except to put
	  it into texture memory.

2005-04-04  Shane Stephens  <shane.stephens@gmail.com>

	* prepare-ChangeLog.pl:
	everyone should use this cool tool to generate changelogs!
	* test/texture-gst-cube.py:
	now it spins in whichever direction is shorter when you click

2005-04-04  Jan Schmidt  <thaytan@mad.scientist.com>

	* test/texture-gst1.py:
	Example from a while ago that extends test/texture-gst.py
	to draw a separate moofie on each face of the cube

2005-04-04  Shane Stephens  <shane.stephens@gmail.com>

	* include/interfaces.h:
	* src/Container.c: (C_PyContainer_do_render),
	(C_PyContainer_Render), (PyContainer_Call):
	* src/Reflect.c: (C_PyReflect_Render):
	* src/RenderControl.c: (C_PyRenderControl_InternalStep),
	(C_PyRenderControl_Pick):
	* src/StaticRender.c: (C_PyStaticRender_Render),
	(PyStaticRender_Call):
	Add picking parameter to the Render call so we can
	not draw textures when rendering for picking.

2005-04-04  Jan Schmidt  <thaytan@mad.scientist.com>

	* include/TograDebug.h:
	* src/Container.c: (C_PyContainer_Compile), (C_PyContainer_Render):
	* src/Material.c: (_C_PyMaterial_SetMaterial):
	* src/StaticRender.c: (C_PyStaticRender_Compile),
	(C_PyStaticRender_Render):
	Add TPRINTF vararg macro for DEBUG_VERBOSE output. Prints to stderr,
	so stuff gets flushed.
	Change some debug printf's to use it.

2005-04-04  Jan Schmidt  <thaytan@mad.scientist.com>

	* Makefile:
	    We can just call setup.py now
	* setup.py:
	    Add pkg-config stuff to the build system
	* src/Container.c: (C_PyContainer_Compile), (C_PyContainer_Render):
	* src/RenderControl.c: (C_PyRenderControl_Pick):
	* src/StaticRender.c: (C_PyStaticRender_Compile),
	(C_PyStaticRender_Render):
	* src/StaticSurface.c: (C_PyStaticSurface_Compile),
	(C_PyStaticSurface_Render):
	* src/TransformContainer.c:
	(C_PyTransformContainer_GenerateTransform),
	(C_PyTransformContainer_TransformByMe):
	    Fix various debug
	* src/gst/Makefile:
	    Remove unnecessary makefile

2005-04-03  Jan Schmidt  <thaytan@mad.scientist.com>

	* src/gst/togragst.c: (togra_gst_handle_frame),
	(build_pipeline_goom), (build_pipeline_file):
	Use decodebin instead of spider. Change the pipeline
	for goom playback.

