[wfd] Support a low(er) power state by triggering PAUSE/RESUME.

Change-Id: Ibe42bfa73816bbfeb7e652d435254d0171b89727
related-to-bug: 7638150
diff --git a/media/libmedia/IRemoteDisplay.cpp b/media/libmedia/IRemoteDisplay.cpp
index da25a15..1e15434 100644
--- a/media/libmedia/IRemoteDisplay.cpp
+++ b/media/libmedia/IRemoteDisplay.cpp
@@ -23,6 +23,8 @@
 
 enum {
     DISPOSE = IBinder::FIRST_CALL_TRANSACTION,
+    PAUSE,
+    RESUME,
 };
 
 class BpRemoteDisplay: public BpInterface<IRemoteDisplay>
@@ -33,6 +35,20 @@
     {
     }
 
+    virtual status_t pause() {
+        Parcel data, reply;
+        data.writeInterfaceToken(IRemoteDisplay::getInterfaceDescriptor());
+        remote()->transact(PAUSE, data, &reply);
+        return reply.readInt32();
+    }
+
+    virtual status_t resume() {
+        Parcel data, reply;
+        data.writeInterfaceToken(IRemoteDisplay::getInterfaceDescriptor());
+        remote()->transact(RESUME, data, &reply);
+        return reply.readInt32();
+    }
+
     status_t dispose()
     {
         Parcel data, reply;
@@ -55,6 +71,21 @@
             reply->writeInt32(dispose());
             return NO_ERROR;
         }
+
+        case PAUSE:
+        {
+            CHECK_INTERFACE(IRemoteDisplay, data, reply);
+            reply->writeInt32(pause());
+            return OK;
+        }
+
+        case RESUME:
+        {
+            CHECK_INTERFACE(IRemoteDisplay, data, reply);
+            reply->writeInt32(resume());
+            return OK;
+        }
+
         default:
             return BBinder::onTransact(code, data, reply, flags);
     }