rhbz #747313 Signed-off-by: Yonit Halperin <yhalp...@redhat.com> --- 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 -- 1.7.7.6 _______________________________________________ Spice-devel mailing list Spice-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/spice-devel