ACK.

On 04/02/2012 09:42 AM, Yonit Halperin wrote:
rhbz #747313

Signed-off-by: Yonit Halperin<[email protected]>
---
  SpiceXPI/src/plugin/nsISpicec.idl        |    2 ++
  SpiceXPI/src/plugin/nsScriptablePeer.cpp |   16 +++++++++++++++-
  SpiceXPI/src/plugin/nsScriptablePeer.h   |    2 ++
  SpiceXPI/src/plugin/plugin.cpp           |   26 ++++++++++++++++++++++++++
  SpiceXPI/src/plugin/plugin.h             |   10 ++++++++++
  data/test.html                           |   12 ++++++++++++
  spice-protocol                           |    2 +-
  7 files changed, 68 insertions(+), 2 deletions(-)

diff --git a/SpiceXPI/src/plugin/nsISpicec.idl 
b/SpiceXPI/src/plugin/nsISpicec.idl
index 5fc4a29..d3d0699 100644
--- a/SpiceXPI/src/plugin/nsISpicec.idl
+++ b/SpiceXPI/src/plugin/nsISpicec.idl
@@ -61,6 +61,8 @@ interface nsISpicec : nsISupports {
      attribute unsigned short UsbListenPort;
      attribute boolean UsbAutoShare;
      attribute boolean Smartcard;
+    attribute string ColorDepth;
+    attribute string DisableEffects;

      void connect();
      void show();
diff --git a/SpiceXPI/src/plugin/nsScriptablePeer.cpp 
b/SpiceXPI/src/plugin/nsScriptablePeer.cpp
index 394ced8..caab9b7 100644
--- a/SpiceXPI/src/plugin/nsScriptablePeer.cpp
+++ b/SpiceXPI/src/plugin/nsScriptablePeer.cpp
@@ -79,6 +79,8 @@ NPIdentifier 
ScriptablePluginObject::m_id_no_taskmgr_execution;
  NPIdentifier ScriptablePluginObject::m_id_send_ctrlaltdel;
  NPIdentifier ScriptablePluginObject::m_id_usb_listen_port;
  NPIdentifier ScriptablePluginObject::m_id_usb_auto_share;
+NPIdentifier ScriptablePluginObject::m_id_color_depth;
+NPIdentifier ScriptablePluginObject::m_id_disable_effects;
  NPIdentifier ScriptablePluginObject::m_id_connect;
  NPIdentifier ScriptablePluginObject::m_id_show;
  NPIdentifier ScriptablePluginObject::m_id_disconnect;
@@ -129,6 +131,8 @@ void ScriptablePluginObject::Init()
      m_id_send_ctrlaltdel = NPN_GetStringIdentifier("SendCtrlAltDelete");
      m_id_usb_listen_port = NPN_GetStringIdentifier("UsbListenPort");
      m_id_usb_auto_share = NPN_GetStringIdentifier("UsbAutoShare");
+    m_id_color_depth = NPN_GetStringIdentifier("ColorDepth");
+    m_id_disable_effects = NPN_GetStringIdentifier("DisableEffects");
      m_id_connect = NPN_GetStringIdentifier("connect");
      m_id_show = NPN_GetStringIdentifier("show");
      m_id_disconnect = NPN_GetStringIdentifier("disconnect");
@@ -170,7 +174,9 @@ bool ScriptablePluginObject::HasProperty(NPIdentifier name)
             name == m_id_no_taskmgr_execution ||
             name == m_id_send_ctrlaltdel ||
             name == m_id_usb_listen_port ||
-           name == m_id_usb_auto_share);
+           name == m_id_usb_auto_share ||
+           name == m_id_color_depth ||
+           name == m_id_disable_effects);
  }

  bool ScriptablePluginObject::GetProperty(NPIdentifier name, NPVariant *result)
@@ -220,6 +226,10 @@ bool ScriptablePluginObject::GetProperty(NPIdentifier 
name, NPVariant *result)
          INT32_TO_NPVARIANT(m_plugin->GetUsbListenPort(), *result);
      else if (name == m_id_usb_auto_share)
          BOOLEAN_TO_NPVARIANT(m_plugin->GetUsbAutoShare(), *result);
+    else if (name == m_id_color_depth)
+        STRINGZ_TO_NPVARIANT(m_plugin->GetColorDepth(), *result);
+    else if (name == m_id_disable_effects)
+        STRINGZ_TO_NPVARIANT(m_plugin->GetDisableEffects(), *result);
      else
          return false;

@@ -296,6 +306,10 @@ bool ScriptablePluginObject::SetProperty(NPIdentifier 
name, const NPVariant *val
          m_plugin->SetUsbListenPort(val);
      else if (name == m_id_usb_auto_share)
          m_plugin->SetUsbAutoShare(boolean);
+    else if (name == m_id_color_depth)
+        m_plugin->SetColorDepth(str.c_str());
+    else if (name == m_id_disable_effects)
+        m_plugin->SetDisableEffects(str.c_str());
      else
          return false;

diff --git a/SpiceXPI/src/plugin/nsScriptablePeer.h 
b/SpiceXPI/src/plugin/nsScriptablePeer.h
index 469a05e..44bd53c 100644
--- a/SpiceXPI/src/plugin/nsScriptablePeer.h
+++ b/SpiceXPI/src/plugin/nsScriptablePeer.h
@@ -96,6 +96,8 @@ private:
      static NPIdentifier m_id_send_ctrlaltdel;
      static NPIdentifier m_id_usb_listen_port;
      static NPIdentifier m_id_usb_auto_share;
+    static NPIdentifier m_id_color_depth;
+    static NPIdentifier m_id_disable_effects;
      static NPIdentifier m_id_connect;
      static NPIdentifier m_id_show;
      static NPIdentifier m_id_disconnect;
diff --git a/SpiceXPI/src/plugin/plugin.cpp b/SpiceXPI/src/plugin/plugin.cpp
index 25a098b..5596609 100644
--- a/SpiceXPI/src/plugin/plugin.cpp
+++ b/SpiceXPI/src/plugin/plugin.cpp
@@ -225,6 +225,8 @@ NPBool nsPluginInstance::init(NPWindow *aWindow)
      m_dynamic_menu.clear();
      m_number_of_monitors.clear();
      m_guest_host_name.clear();
+    m_color_depth.clear();
+    m_disable_effects.clear();

      m_fullscreen = PR_FALSE;
      m_smartcard = PR_FALSE;
@@ -482,6 +484,28 @@ void nsPluginInstance::SetUsbAutoShare(PRBool 
aUsbAutoShare)
      // when fixed in RHEVM
  }

+/* attribute string ColorDepth; */
+char *nsPluginInstance::GetColorDepth() const
+{
+    return stringCopy(m_color_depth);
+}
+
+void nsPluginInstance::SetColorDepth(const char *aColorDepth)
+{
+    m_color_depth = aColorDepth;
+}
+
+/* attribute string DisableEffects; */
+char *nsPluginInstance::GetDisableEffects() const
+{
+    return stringCopy(m_disable_effects);
+}
+
+void nsPluginInstance::SetDisableEffects(const char *aDisableEffects)
+{
+    m_disable_effects = aDisableEffects;
+}
+
  void nsPluginInstance::WriteToPipe(const void *data, uint32_t size)
  {
      m_external_controller.Write(data, size);
@@ -668,6 +692,8 @@ void nsPluginInstance::Connect()
          SendStr(CONTROLLER_CA_FILE, m_trust_store_file.c_str());
          SendStr(CONTROLLER_HOST_SUBJECT, m_host_subject.c_str());
          SendStr(CONTROLLER_HOTKEYS, m_hot_keys.c_str());
+        SendValue(CONTROLLER_COLOR_DEPTH, atoi(m_color_depth.c_str()));
+        SendStr(CONTROLLER_DISABLE_EFFECTS, m_disable_effects.c_str());
          SendMsg(CONTROLLER_CONNECT);
          SendMsg(CONTROLLER_SHOW);

diff --git a/SpiceXPI/src/plugin/plugin.h b/SpiceXPI/src/plugin/plugin.h
index 42e2a2d..acba031 100644
--- a/SpiceXPI/src/plugin/plugin.h
+++ b/SpiceXPI/src/plugin/plugin.h
@@ -159,7 +159,15 @@ public:
      /* attribute boolean UsbAutoShare; */
      PRBool GetUsbAutoShare() const;
      void SetUsbAutoShare(PRBool aUsbAutoShare);
+
+    /* attribute ing color depth; */
+    char *GetColorDepth() const;
+    void SetColorDepth(const char *aColorDepth);

+    /* attribute ing disable effects; */
+    char *GetDisableEffects() const;
+    void SetDisableEffects(const char *aDisableEffects);
+
      NPObject *GetScriptablePeer();

  private:
@@ -202,6 +210,8 @@ private:
      PRBool m_no_taskmgr_execution;
      PRBool m_send_ctrlaltdel;
      std::map<std::string, std::string>  m_language;
+    std::string m_color_depth;
+    std::string m_disable_effects;

      NPObject *m_scriptable_peer;
      std::string m_tmp_dir;
diff --git a/data/test.html b/data/test.html
index 860851f..ff7743b 100644
--- a/data/test.html
+++ b/data/test.html
@@ -114,6 +114,8 @@ function setConnectVars()
        if(document.getElementById("UsbListenPortToggled").checked == true) { embed.UsbListenPort = 
parseInt( document.getElementById("UsbListenPort").value ); } else { embed.UsbListenPort = 
""; }
        if(document.getElementById("UsbAutoShareToggled").checked == true) { embed.UsbAutoShare = 
document.getElementById("UsbAutoShare").checked; } else { embed.UsbAutoShare = ""; }
        if(document.getElementById("SmartcardToggled").checked == true) { embed.Smartcard = 
document.getElementById("Smartcard").checked; } else { embed.Smartcard = ""; }
+       if(document.getElementById("ColorDepthToggled").checked == true) { embed.ColorDepth = 
document.getElementById("ColorDepth").value; } else { embed.ColorDepth = ""; }
+       if(document.getElementById("DisableEffectsToggled").checked == true) { embed.DisableEffects 
= document.getElementById("DisableEffects").value; } else { embed.DisableEffects = ""; }
  }

  function show()
@@ -242,6 +244,16 @@ function toggle(checkboxID)
  <td>  <input id="Smartcard" type="checkbox" /></td>
  </tr>
  <tr>
+<td><input type="checkbox" id="ColorDepthToggled" onclick="toggle('ColorDepthToggled', 
'ColorDepth')" /></td>
+<td>Color Depth:</td>
+<td>  <input id="ColorDepth" type="text" size="30" disabled /></td>
+</tr>
+<tr>
+<td><input type="checkbox" id="DisableEffectsToggled" 
onclick="toggle('DisableEffectsToggled', 'DisableEffects')" /></td>
+<td>Disable Effects:</td>
+<td>  <input id="DisableEffects" type="text" size="30" disabled /></td>
+</tr>
+<tr>
  <td><input type="checkbox" id="LanguageStringsSectionToggled" 
onclick="toggle('LanguageStringsSectionToggled', 'LanguageStringsSection')" checked /></td>
  <td>*Language Strings - section:</td>
  <td>  <input id="LanguageStringsSection" type="input" size="30" /></td>
diff --git a/spice-protocol b/spice-protocol
index d5edafd..8cf92f0 160000
--- a/spice-protocol
+++ b/spice-protocol
@@ -1 +1 @@
-Subproject commit d5edafd28ab762b1b5f663aec449d3e3743f1184
+Subproject commit 8cf92f042312e50b2ff186b28356053aeac9e04c
_______________________________________________
Spice-devel mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/spice-devel

Reply via email to