/*
    GDAM - Geoff & Dave's Audio Mixer
    Copyright (C) 1999    Dave Benson, Geoff Matters.

    This library is free software; you can redistribute it and/or
    modify it under the terms of the GNU Lesser 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
    Lesser General Public License for more details.

    You should have received a copy of the GNU Lesser 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

    Contact:
        daveb@ffem.org <Dave Benson>
        geoff@ugcs.caltech.edu <Geoff Matters>
*/
#ifndef __GDAM_MODEL_INFOMANAGER_H_
#define __GDAM_MODEL_INFOMANAGER_H_

#include "gdammodel.h"
#include "gdambeatinfo.h"
#include <gtk/gtkbutton.h>
#include <gtk/gtkradiobutton.h>

void            gdam_infomanager_add             (GdamModel*   to_manage);
void            gdam_infomanager_add_clone       (GdamModel*   to_manage,
					          GdamModel*   manage_as);
void            gdam_infomanager_set_bpm_driver  (GdamModel*   to_maintain,
                                                  GdamModel*   to_copy);
float           gdam_infomanager_get_desired_bpm (GdamModel*   model);
void            gdam_infomanager_set_desired_bpm (GdamModel*   model,
						  float            bpm);
void            gdam_infomanager_set_beat_fraction_driver 
						 (GdamModel*   to_maintain,
						  GdamModel*   to_copy);
void            gdam_infomanager_set_lead_model  (GdamModel*   leader);
/*  This allows a model to get the information it needs 
 *  to synch itself to its beat driver.  Returns success. */
gboolean	gdam_infomanager_get_sync_info	(GdamModel*   requester,
						 guint*		  driver_id,
						 GdamBeatInfo*	  driver_info);

#endif
