package com.distantfuture.castcompanionlibrary.lib.cast.callbacks;
import com.google.android.gms.cast.ApplicationMetadata;
import com.google.android.gms.cast.CastDevice;
import com.google.android.gms.common.api.Status;
public interface IDataCastConsumer extends IBaseCastConsumer {
/**
* Called when the application is successfully launched or joined. Upon successful connection, a
* session ID is returned. <code>wasLaunched</code> indicates if the application was launched or
* joined.
*
* @param appMetadata
* @param applicationStatus
* @param sessionId
* @param wasLaunched
*/
public void onApplicationConnected(ApplicationMetadata appMetadata, String applicationStatus, String sessionId, boolean wasLaunched);
/**
* Called when the current application has stopped
*
* @param errorCode
*/
public void onApplicationDisconnected(int errorCode);
/**
* Called when an attempt to stop a receiver application has failed.
*
* @param errorCode
*/
public void onApplicationStopFailed(int errorCode);
/**
* Called when an application launch has failed. Failure reason is captured in the
* <code>errorCode</code> argument. Here is a list of possible values:
* <ul>
* <li>4 : Application not found
* <li>5 : Application not currently running
* <li>6 : Application already running
* </ul>
* If this method returns <code>true</code>, then the library will provide an error dialog to
* inform the user. Clients can extend this method and return <code>false</code> to handle the
* error message themselves.
*
* @param errorCode
* @return <code>true</code> if you want the library handle the error message
*/
public boolean onApplicationConnectionFailed(int errorCode);
/**
* Called when application status changes. The argument is built by the receiver
*
* @param appStatus
*/
public void onApplicationStatusChanged(String appStatus);
/**
* Called when the device's volume is changed. Note not to mix that with the stream's volume
*
* @param value
* @param isMute
*/
public void onVolumeChanged(double value, boolean isMute);
/**
* Called when a message is received from a given {@link CastDevice} for a given
* <code>namespace</code>.
*
* @param castDevice
* @param namespace
* @param message
*/
public void onMessageReceived(CastDevice castDevice, String namespace, String message);
/**
* Called when there is an error sending a message.
*
* @param status The status of the result
*/
public void onMessageSendFailed(Status status);
/**
* Called when this callback is removed from the Cast object.
*
* @param castDevice The castDevice from where the message originated.
* @param namespace The associated namespace of the removed listener.
*/
public void onRemoved(CastDevice castDevice, String namespace);
}