//Auto-generated by kalyptus. DO NOT EDIT.
namespace Qyoto {
    using System;
    [SmokeClass("QSound")]
    public class QSound : QObject, IDisposable {
        protected QSound(Type dummy) : base((Type) null) {}
        protected new void CreateProxy() {
            interceptor = new SmokeInvocation(typeof(QSound), this);
        }
        private static SmokeInvocation staticInterceptor = null;
        static QSound() {
            staticInterceptor = new SmokeInvocation(typeof(QSound), null);
        }
        public QSound(string filename, QObject parent) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("QSound$#", "QSound(const QString&, QObject*)", typeof(void), typeof(string), filename, typeof(QObject), parent);
        }
        public QSound(string filename) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("QSound$", "QSound(const QString&)", typeof(void), typeof(string), filename);
        }
        public int Loops() {
            return (int) interceptor.Invoke("loops", "loops() const", typeof(int));
        }
        public int LoopsRemaining() {
            return (int) interceptor.Invoke("loopsRemaining", "loopsRemaining() const", typeof(int));
        }
        public void SetLoops(int arg1) {
            interceptor.Invoke("setLoops$", "setLoops(int)", typeof(void), typeof(int), arg1);
        }
        public string FileName() {
            return (string) interceptor.Invoke("fileName", "fileName() const", typeof(string));
        }
        public bool IsFinished() {
            return (bool) interceptor.Invoke("isFinished", "isFinished() const", typeof(bool));
        }
        [Q_SLOT("void play()")]
        public void Play() {
            interceptor.Invoke("play", "play()", typeof(void));
        }
        [Q_SLOT("void stop()")]
        public void Stop() {
            interceptor.Invoke("stop", "stop()", typeof(void));
        }
        ~QSound() {
            interceptor.Invoke("~QSound", "~QSound()", typeof(void));
        }
        public new void Dispose() {
            interceptor.Invoke("~QSound", "~QSound()", typeof(void));
        }
        public static new string Tr(string s, string c) {
            return (string) staticInterceptor.Invoke("tr$$", "tr(const char*, const char*)", typeof(string), typeof(string), s, typeof(string), c);
        }
        public static new string Tr(string s) {
            return (string) staticInterceptor.Invoke("tr$", "tr(const char*)", typeof(string), typeof(string), s);
        }
        public static bool IsAvailable() {
            return (bool) staticInterceptor.Invoke("isAvailable", "isAvailable()", typeof(bool));
        }
        public static void Play(string filename) {
            staticInterceptor.Invoke("play$", "play(const QString&)", typeof(void), typeof(string), filename);
        }
        protected new IQSoundSignals Emit {
            get { return (IQSoundSignals) Q_EMIT; }
        }
    }

    public interface IQSoundSignals : IQObjectSignals {
    }
}
