add: if (value == MIX_INITIAL) { mixSDL_SourceRewind_internal (src); } else { fprintf (stderr, "mixSDL_Sourcei(MIX_SOURCE_STATE): " "unsupported state, call ignored\n"); }
context: mixSDL_Sourcei (mixSDL_Object srcobj, mixSDL_SourceProp pname,		mixSDL_IntVal value){	mixSDL_Source *src = (mixSDL_Source *) srcobj;	if (!src)	{		mixSDL_SetError (MIX_INVALID_NAME);#ifdef DEBUG		fprintf (stderr, "mixSDL_Sourcei() called with null source\n");#endif		return;	}	mixSDL_LockMutex (src_mutex);	if (src->magic != mixSDL_srcMagic)	{		mixSDL_SetError (MIX_INVALID_NAME);#ifdef DEBUG		fprintf (stderr, "mixSDL_Sourcei(): not a source\n");#endif	}	else	{		switch (pname)		{		case MIX_LOOPING:			src->looping = value;			break;		case MIX_BUFFER:			{				mixSDL_Buffer *buf = (mixSDL_Buffer *) value;				if (src->cqueued > 0)					mixSDL_SourceUnqueueAll (src);								if (buf && !mixSDL_CheckBufferState (buf, "mixSDL_Sourcei"))					break;				src->firstqueued = buf;				src->nextqueued = src->firstqueued;				src->lastqueued = src->nextqueued;				if (src->lastqueued)					src->lastqueued->next = 0;				src->cqueued = 1;			}			break;		case MIX_SOURCE_STATE:#ifdef DEBUG			fprintf (stderr, "mixSDL_Sourcei() called "					"with MIX_SOURCE_STATE. call ignored\n");#endif			break;		default:			mixSDL_SetError (MIX_INVALID_ENUM);			fprintf (stderr, "mixSDL_Sourcei() called "					"with unsupported property %u\n", pname);		}	}	mixSDL_UnlockMutex (src_mutex);}