/// <summary>
 /// Initializes a new instance of the <see cref="SessionCreatedEventArgs"/> class.
 /// </summary>
 /// <param name="newSession">The <see cref="AudioSessionControl"/> object of the audio session that was created.</param>
 /// <exception cref="System.ArgumentNullException"><paramref name="newSession"/> must not be null.</exception>
 public SessionCreatedEventArgs(AudioSessionControl newSession)
 {
     if (newSession == null)
     {
         throw new ArgumentNullException("newSession");
     }
     NewSession = newSession;
 }
Example #2
0
 /// <summary>
 /// The GetAudioSessionControl method retrieves an audio session control.
 /// </summary>
 /// <param name="audioSessionGuid">If the GUID does not identify a session that has been previously opened, the call opens a new but empty session. If the value is Guid.Empty, the method assigns the stream to the default session.</param>
 /// <param name="streamFlags">Specifies the status of the flags for the audio stream.</param>
 /// <returns>HRESULT</returns>
 public unsafe int GetAudioSessionControlNative(Guid audioSessionGuid, int streamFlags, out AudioSessionControl sessionControl)
 {
     sessionControl = null;
     IntPtr ptr = IntPtr.Zero;
     int result = InteropCalls.CallI(_basePtr, &audioSessionGuid, streamFlags, &ptr, ((void**)(*(void**)_basePtr))[3]);
     if (ptr != IntPtr.Zero)
         sessionControl = new AudioSessionControl(ptr);
     return result;
 }
Example #3
0
        /// <summary>
        /// The GetAudioSessionControl method retrieves an audio session control.
        /// </summary>
        /// <param name="audioSessionGuid">If the GUID does not identify a session that has been previously opened, the call opens a new but empty session. If the value is Guid.Empty, the method assigns the stream to the default session.</param>
        /// <param name="streamFlags">Specifies the status of the flags for the audio stream.</param>
        /// <returns>HRESULT</returns>
        public unsafe int GetAudioSessionControlNative(Guid audioSessionGuid, int streamFlags, out AudioSessionControl sessionControl)
        {
            sessionControl = null;
            IntPtr ptr    = IntPtr.Zero;
            int    result = InteropCalls.CallI(_basePtr, &audioSessionGuid, streamFlags, &ptr, ((void **)(*(void **)_basePtr))[3]);

            if (ptr != IntPtr.Zero)
            {
                sessionControl = new AudioSessionControl(ptr);
            }
            return(result);
        }
Example #4
0
 /// <summary>
 /// Notifies the registered processes that the audio session has been created.
 /// </summary>
 /// <param name="newSession">Pointer to the <see cref="AudioSessionControl"/> object of the audio session that was created.</param>
 /// <returns>HRESULT</returns>
 int IAudioSessionNotification.OnSessionCreated([In] IntPtr newSession)
 {
     if (SessionCreated != null)
     {
         var sessionControl = new AudioSessionControl(newSession);
         //make sure, the reference can be used within our application
         //in order to prevent the instance from being released, add a reference
         //if it won't be used in our application (eventhandlers and so on), the
         //destructor will release the instance.
         ((IUnknown)sessionControl).AddRef();
         SessionCreated(this, new SessionCreatedEventArgs(sessionControl));
     }
     return((int)HResult.S_OK);
 }
 public SessionCreatedEventArgs(AudioSessionControl newSession)
 {
     if (newSession == null)
         throw new ArgumentNullException("newSession");
     NewSession = newSession;
 }