<?xml version="1.0"?>
<!DOCTYPE gsdoc PUBLIC "-//GNUstep//DTD gsdoc 1.0.4//EN" "http://www.gnustep.org/gsdoc-1_0_4.dtd">
<gsdoc base="NSSound" up="Gui">
  <head>
    <title>NSSound</title>
    <author name="Enrico Sersale">
      <email address="enrico@imago.ro">
        enrico@imago.ro
      </email>
    </author>
    <abstract>Load, manipulate and play sounds</abstract>
    <copy>2002, 2009 Free Software Foundation, Inc.</copy>
  </head>
  <body>
    <front><contents /></front>
    <chapter>
      <heading>
        Software documentation for the NSSound class
      </heading>
      <class name="NSSound" super="NSObject" ovadd="1.0.0">
        <declared>AppKit/NSSound.h</declared>
        <conform>NSCoding</conform>
        <conform>NSCopying</conform>
        <desc>
          <em>Description forthcoming.</em>
        </desc>
        <ivariable type="NSArray*" name="_channelMapping" validity="protected" ovadd="1.0.0">
          <desc>
            <em>Warning</em> the underscore at the start of the
            name of this instance variable indicates that, even
            though it is not technically <em>private</em>, it is
            intended for internal use within the package, and
            you should not use the variable in other code.
          </desc>
        </ivariable>
        <ivariable type="NSData*" name="_data" validity="protected" ovadd="1.0.0">
          <desc>
            <em>Warning</em> the underscore at the start of the
            name of this instance variable indicates that, even
            though it is not technically <em>private</em>, it is
            intended for internal use within the package, and
            you should not use the variable in other code.
          </desc>
        </ivariable>
        <ivariable type="id" name="_delegate" validity="protected" ovadd="1.0.0">
          <desc>
            <em>Warning</em> the underscore at the start of the
            name of this instance variable indicates that, even
            though it is not technically <em>private</em>, it is
            intended for internal use within the package, and
            you should not use the variable in other code.
          </desc>
        </ivariable>
        <ivariable type="NSString*" name="_name" validity="protected" ovadd="1.0.0">
          <desc>
            <em>Warning</em> the underscore at the start of the
            name of this instance variable indicates that, even
            though it is not technically <em>private</em>, it is
            intended for internal use within the package, and
            you should not use the variable in other code.
          </desc>
        </ivariable>
        <ivariable type="BOOL" name="_onlyReference" validity="protected" ovadd="1.0.0">
          <desc>
            <em>Warning</em> the underscore at the start of the
            name of this instance variable indicates that, even
            though it is not technically <em>private</em>, it is
            intended for internal use within the package, and
            you should not use the variable in other code.
          </desc>
        </ivariable>
        <ivariable type="NSString*" name="_playbackDeviceIdentifier" validity="protected" ovadd="1.0.0">
          <desc>
            <em>Warning</em> the underscore at the start of the
            name of this instance variable indicates that, even
            though it is not technically <em>private</em>, it is
            intended for internal use within the package, and
            you should not use the variable in other code.
          </desc>
        </ivariable>
        <ivariable type="NSLock*" name="_playbackLock" validity="protected" ovadd="1.0.0">
          <desc>
            <em>Warning</em> the underscore at the start of the
            name of this instance variable indicates that, even
            though it is not technically <em>private</em>, it is
            intended for internal use within the package, and
            you should not use the variable in other code.
          </desc>
        </ivariable>
        <ivariable type="NSConditionLock*" name="_readLock" validity="protected" ovadd="1.0.0">
          <desc>
            <em>Warning</em> the underscore at the start of the
            name of this instance variable indicates that, even
            though it is not technically <em>private</em>, it is
            intended for internal use within the package, and
            you should not use the variable in other code.
          </desc>
        </ivariable>
        <ivariable type="BOOL" name="_shouldLoop" validity="protected" ovadd="1.0.0">
          <desc>
            <em>Warning</em> the underscore at the start of the
            name of this instance variable indicates that, even
            though it is not technically <em>private</em>, it is
            intended for internal use within the package, and
            you should not use the variable in other code.
          </desc>
        </ivariable>
        <ivariable type="BOOL" name="_shouldStop" validity="protected" ovadd="1.0.0">
          <desc>
            <em>Warning</em> the underscore at the start of the
            name of this instance variable indicates that, even
            though it is not technically <em>private</em>, it is
            intended for internal use within the package, and
            you should not use the variable in other code.
          </desc>
        </ivariable>
        <ivariable type="id&lt;GSSoundSink&gt;" name="_sink" validity="protected" ovadd="1.0.0">
          <desc>
            <em>Warning</em> the underscore at the start of the
            name of this instance variable indicates that, even
            though it is not technically <em>private</em>, it is
            intended for internal use within the package, and
            you should not use the variable in other code.
          </desc>
        </ivariable>
        <ivariable type="id&lt;GSSoundSource&gt;" name="_source" validity="protected" ovadd="1.0.0">
          <desc>
            <em>Warning</em> the underscore at the start of the
            name of this instance variable indicates that, even
            though it is not technically <em>private</em>, it is
            intended for internal use within the package, and
            you should not use the variable in other code.
          </desc>
        </ivariable>
        <method type="BOOL" factory="yes" ovadd="1.0.0">
          <sel>canInitWithPasteboard:</sel>
          <arg type="NSPasteboard*">pasteboard</arg>
          <desc>
            <em>Description forthcoming.</em>
          </desc>
        </method>
        <method type="id" factory="yes" ovadd="1.0.0">
          <sel>soundNamed:</sel>
          <arg type="NSString*">name</arg>
          <desc>
            <em>Description forthcoming.</em>
          </desc>
        </method>
        <method type="NSArray*" factory="yes" ovadd="1.0.0">
          <sel>soundUnfilteredFileTypes</sel>
          <desc>
            Provides an array of file types that NSSound can
            understand. The returning array may be directly
            passed to [NSOpenPanel -runModalForTypes:].
            <p>
              Built with libsndfile:
            </p>
            wav, aiff, aifc, aif, au, snd, mat, mat4, mat5, paf,
            sf, voc, w64, xi, caf, sd2, flac, ogg, oga
            <p>
              Built without libsndfile:
            </p>
            wav, aiff, aifc, aif, au, snd
          </desc>
        </method>
        <method type="NSArray*" factory="yes" ovadd="1.0.0">
          <sel>soundUnfilteredPasteboardTypes</sel>
          <desc>
            <em>Description forthcoming.</em>
          </desc>
        </method>
        <method type="NSArray*" factory="yes" ovadd="10.5.0">
          <sel>soundUnfilteredTypes</sel>
          <desc>
            <em>Description forthcoming.</em>
          </desc>
        </method>
        <method type="NSArray*" ovadd="10.5.0">
          <sel>channelMapping</sel>
          <desc>
            <em>Description forthcoming.</em>
          </desc>
        </method>
        <method type="NSTimeInterval" ovadd="10.5.0">
          <sel>currentTime</sel>
          <desc>
            Returns the current position of the audio playback.
          </desc>
        </method>
        <method type="id" ovadd="1.0.0">
          <sel>delegate</sel>
          <desc>
            Returns the receiver's delegate
          </desc>
        </method>
        <method type="NSTimeInterval" ovadd="10.5.0">
          <sel>duration</sel>
          <desc>
            Returns the length, in seconds, of the receiver.
          </desc>
        </method>
        <method type="id" init="yes" ovadd="1.0.0">
          <sel>initWithContentsOfFile:</sel>
          <arg type="NSString*">path</arg>
          <sel>byReference:</sel>
          <arg type="BOOL">byRef</arg>
          <desc>
            Initalizes the receiver object with the contents
            of file located at <var>path</var>. If <var>byRef</var>
            is set to <code>YES</code> only the name of the NSSound
            is encoded with
            <ref type="method" id="-encodeWithCoder:">
              -encodeWithCoder:
            </ref>
            ; if set to <code>NO</code> the data is encoded.
            <p>
              See Also:
            </p>
            <list>
              <item>
                <ref type="method" id="-initWithContentsOfURL:byReference:">-initWithContentsOfURL:byReference:</ref>
              </item>
              <item>
                <ref type="method" id="-initWithData:">
                  -initWithData:
                </ref>
              </item>
            </list>
          </desc>
        </method>
        <method type="id" init="yes" ovadd="1.0.0">
          <sel>initWithContentsOfURL:</sel>
          <arg type="NSURL*">url</arg>
          <sel>byReference:</sel>
          <arg type="BOOL">byRef</arg>
          <desc>
            Initializes the receiver object with the
            contents of the data located in <var>url</var>. If
            <var>byRef</var> is set to <code>YES</code> only the
            name of the NSSound is encoded with
            <ref type="method" id="-encodeWithCoder:">
              -encodeWithCoder:
            </ref>
            ; if set to <code>NO</code> the data is encoded.
            <p>
              See Also:
            </p>
            <list>
              <item>
                <ref type="method" id="-initWithContentsOfFile:byReference:">-initWithContentsOfFile:byReference:</ref>
              </item>
              <item>
                <ref type="method" id="-initWithData:">
                  -initWithData:
                </ref>
              </item>
            </list>
          </desc>
        </method>
        <method type="id" init="yes" ovadd="1.0.0">
          <sel>initWithData:</sel>
          <arg type="NSData*">data</arg>
          <desc>
            Initializes the receiver object with the
            contents of <var>data</var> with a valid magic
            number.
            <p>
              See Also:
            </p>
            <list>
              <item>
                <ref type="method" id="-initWithContentsOfFile:byReference:">-initWithContentsOfFile:byReference:</ref>
              </item>
              <item>
                <ref type="method" id="-initWithContentsOfURL:byReference:">-initWithContentsOfURL:byReference:</ref>
              </item>
            </list>
          </desc>
        </method>
        <method type="id" ovadd="1.0.0">
          <sel>initWithPasteboard:</sel>
          <arg type="NSPasteboard*">pasteboard</arg>
          <desc>
            <em>Description forthcoming.</em>
          </desc>
        </method>
        <method type="BOOL" ovadd="1.0.0">
          <sel>isPlaying</sel>
          <desc>
            <em>Description forthcoming.</em>
          </desc>
        </method>
        <method type="BOOL" ovadd="10.5.0">
          <sel>loops</sel>
          <desc>
            Returns the current loop property of the receiver.
            <code>YES</code> indicates this NSSound will restart
            once it reaches the end, otherwise <code>NO</code>.
          </desc>
        </method>
        <method type="NSString*" ovadd="1.0.0">
          <sel>name</sel>
          <desc>
            Returns the name of the receiver. Use
            <ref type="method" id="-setName:">
              -setName:
            </ref>
            to set the name.
          </desc>
        </method>
        <method type="BOOL" ovadd="1.0.0">
          <sel>pause</sel>
          <desc>
            Pauses audio playback.
            <p>
              Returns <code>NO</code> if receiver could not be
              paused or is already paused, and <code>YES</code>
              if receiver was successfully paused.
            </p>
          </desc>
        </method>
        <method type="BOOL" ovadd="1.0.0">
          <sel>play</sel>
          <desc>
            Start audio playback. Playback is done
            asynchronously.
            <p>
              Returns <code>NO</code> if receiver is already
              playing or if an error occurred, and
              <code>YES</code> if receiver was started
              successfully.
            </p>
          </desc>
        </method>
        <method type="NSString*" ovadd="10.5.0">
          <sel>playbackDeviceIdentifier</sel>
          <desc>
            <em>Description forthcoming.</em>
          </desc>
        </method>
        <method type="BOOL" ovadd="1.0.0">
          <sel>resume</sel>
          <desc>
            Resume audio playback after a
            <ref type="method" id="-pause">
              -pause
            </ref>
            .
            <p>
              Returns <code>NO</code> if receiver is already
              playing or if an error occurred, and
              <code>YES</code> if receiver was successfully
              restarted/resumed.
            </p>
          </desc>
        </method>
        <method type="void" ovadd="10.5.0">
          <sel>setChannelMapping:</sel>
          <arg type="NSArray*">channelMapping</arg>
          <desc>
            <em>Description forthcoming.</em>
          </desc>
        </method>
        <method type="void" ovadd="10.5.0">
          <sel>setCurrentTime:</sel>
          <arg type="NSTimeInterval">currentTime</arg>
          <desc>
            Sets the current time of the audio playback.
          </desc>
        </method>
        <method type="void" ovadd="1.0.0">
          <sel>setDelegate:</sel>
          <arg type="id">aDelegate</arg>
          <desc>
            Sets the receiver's delegate
          </desc>
        </method>
        <method type="void" ovadd="10.5.0">
          <sel>setLoops:</sel>
          <arg type="BOOL">loops</arg>
          <desc>
            Sets the loop property of the receiver.
            <code>YES</code> indicates this NSSound will restart
            once it reaches the end, otherwise <code>NO</code>.
          </desc>
        </method>
        <method type="BOOL" ovadd="1.0.0">
          <sel>setName:</sel>
          <arg type="NSString*">aName</arg>
          <desc>
            Sets the receiver's name. Method
            <ref type="method" id="-name">
              -name
            </ref>
            will return <var>aName</var>.
          </desc>
        </method>
        <method type="void" ovadd="10.5.0">
          <sel>setPlaybackDeviceIdentifier:</sel>
          <arg type="NSString*">playbackDeviceIdentifier</arg>
          <desc>
            <em>Description forthcoming.</em>
          </desc>
        </method>
        <method type="void" ovadd="10.5.0">
          <sel>setVolume:</sel>
          <arg type="float">volume</arg>
          <desc>
            Sets the <var>volume</var> of the receiver. Volume
            must be between 0.0 and 1.0.
          </desc>
        </method>
        <method type="BOOL" ovadd="1.0.0">
          <sel>stop</sel>
          <desc>
            Stop audio playback.
            <p>
              Return <code>YES</code> if receiver was
              successfully stopped.
            </p>
            <p>
              This method will close the playback device.
            </p>
          </desc>
        </method>
        <method type="float" ovadd="10.5.0">
          <sel>volume</sel>
          <desc>
            Returns the volume of the receiver. Volume will be
            between 0.0 and 1.0.
          </desc>
        </method>
        <method type="void" ovadd="1.0.0">
          <sel>writeToPasteboard:</sel>
          <arg type="NSPasteboard*">pasteboard</arg>
          <desc>
            <em>Description forthcoming.</em>
          </desc>
        </method>
      </class>
    </chapter>
    <chapter>
      <heading>
        Software documentation for the
        NSBundle(NSSoundAdditions) category
      </heading>
      <category name="NSSoundAdditions" class="NSBundle" ovadd="1.0.0">
        <declared>AppKit/NSSound.h</declared>
        <desc>
          <em>Description forthcoming.</em>
        </desc>
        <method type="NSString*" ovadd="1.0.0">
          <sel>pathForSoundResource:</sel>
          <arg type="NSString*">name</arg>
          <desc>
            <em>Description forthcoming.</em>
          </desc>
        </method>
      </category>
    </chapter>
    <chapter>
      <heading>
        Software documentation for the
        NSObject(NSSoundDelegate) informal
        protocol
      </heading>
      <category name="NSSoundDelegate" class="NSObject" ovadd="1.0.0">
        <declared>AppKit/NSSound.h</declared>
        <desc>
          <em>Description forthcoming.</em>
        </desc>
        <method type="void" ovadd="1.0.0">
          <sel>sound:</sel>
          <arg type="NSSound*">sound</arg>
          <sel>didFinishPlaying:</sel>
          <arg type="BOOL">aBool</arg>
          <desc>
            Method called when <var>sound</var> has finished
            playing. Currently this method is not called.
          </desc>
        </method>
      </category>
    </chapter>
  </body>
</gsdoc>
