    /*

    Copyright (C) 2000 Stefan Schimanski <1Stein@gmx.de>

    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; see the file COPYING.LIB.  If not, write to
    the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
    Boston, MA 02111-1307, USA.

    */

#include <artsflow.idl>

/* maybe put this into a Media module */
module Arts { // aRts Media Interfaces

/* can be removed when mcopidl can handle Format */
struct Format {
    boolean dummy;
};

interface MediaModule : SynthModule {
    /* ask module whether the format is supported
     * returns true if supported
     */ 
    boolean isSupported( Format fmt, string strm );

    /* let module propose a format by setting all still unset parameters    
     */
    Format proposeFormat( Format proposal, string strm );

    /* fixate format
     * return true if successfull
     */
    boolean setFormat( Format fmt, string strm );

    /* get set format
     * returns an empty or incomplete format if it isn't set yet 
     * otherwise it should be complete
     */
    Format getFormat( string strm );    
};

};
