I have tried to fix the problems in this new patch. Thank you for the
review.
The agreement, however, puzzles me a little. Date seems not suitable for the
first blank according to the preceded text, but I can find no more phrase
for that.
Best wishes,
                                                            Yiwen
On Mon, Aug 18, 2008 at 2:06 PM, Yiwen Zhang <[EMAIL PROTECTED]> wrote:

>
>
> On 8/18/08, Adar Dembo <[EMAIL PROTECTED]> wrote:
>>
>> > This is my patch for 2008.08.08 release. This patch adds a
>> > simple "Record" panel to vmware-toolbox and "record" command
>> > to vmware-toolbox-cmd.
>> > I configured the build by "--without-procps --disable-unity",
>> >  since I didn't install the two packages.
>> > I have tested the patch on rhel5, suse10 and ubuntu7.04.
>>
>> Thanks! I haven't reviewed the entire patch yet, but here are some
>> suggestions to get started:
>> - Please clean up your patch and make it conform to the open-vm-tools
>> coding style. You can see the coding style here:
>> http://open-vm-tools.wiki.sourceforge.net/CodingStandards. If something
>> is unclear or ambiguous, feel free to ask. Some specific things I
>> immediately noticed:
>> - Configure  your editor to use levels of indentation sized to 3 spaces.
>> - No tabs; use an appropriate number of spaces instead.
>> - Continuation lines should obey the nesting of parenthesization.
>> - All arguments to new functions should have comment annotations next to
>> them (such as IN, OUT, or IN/OUT).
>> - New copyright preambles should be dated to 2008.
>> - The second line in the RecordCommand function header's "Side effects"
>> section needs more indentation.
>
>
> Thank you for your comment. I will double check.
>
> - I gather that you're familiar with the subcommands of the
>> BDOOR_CMD_STATELOGGER backdoor command through working with internal
>> engineers? I'm going to try and get the actual header documenting the
>> commands released so that you need not hard-code the values 1 and 2 in calls
>> to Record_Control.
>> - I think Record_Control should actually be in lib/guestApp/guestApp.c,
>> not in toolboxcmd-record.c. I'd rather that the GTK toolbox didn't depend on
>> any toolboxcmd* files, since the toolbox* and toolboxcmd* group of files can
>> be considered to be separate UI front-ends to a shared back-end.
>
>
> This is the point. I was trying to give it a proper place but I was not
> sure which lib it should be. Thanks.
>
> > I get the contribution agreement document, but I am not sure
>> > if paper form or electronic form is required.
>>
>> The agreement should be faxed or scanned and e-mailed.
>> http://open-vm-tools.sourceforge.net/contribute.php has more information;
>> choose whichever method is more convenient for you, and let me know if
>> neither are doable and we can work something else out.
>>
>> -------------------------------------------------------------------------
>> This SF.Net email is sponsored by the Moblin Your Move Developer's
>> challenge
>> Build the coolest Linux based applications with Moblin SDK & win great
>> prizes
>> Grand prize is a trip for two to an Open Source event anywhere in the
>> world
>> http://moblin-contest.org/redirect.php?banner_id=100&url=/
>> _______________________________________________
>> open-vm-tools-devel mailing list
>> open-vm-tools-devel@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/open-vm-tools-devel
>>
>
>
diff --git a/lib/guestApp/guestApp.c b/lib/guestApp/guestApp.c
index f319224..755cb89 100644
--- a/lib/guestApp/guestApp.c
+++ b/lib/guestApp/guestApp.c
@@ -1847,6 +1847,33 @@ GuestApp_RpcSendOneCPName(char const *cmd,  // IN: RPCI command
 }
 #endif
 
+/*
+ *-----------------------------------------------------------------------------
+ *
+ * GuestApp_ControlRecord --
+ *
+ *    Start or stop recording proccess, flagged by mode. 
+ *    mode 1 for start and mode 2 for stop.
+ *
+ * Results:
+ *    1 if the call is successful.
+ *
+ * Side effects:
+ *    Host VMware product starts or stops recording this vm.
+ *
+ *-----------------------------------------------------------------------------
+ */
+
+uint16
+GuestApp_ControlRecord(int32 mode) // IN: flag of starting or stopping recording
+{
+   Backdoor_proto bp;
+   bp.in.size = mode;
+   bp.in.cx.halfs.low = BDOOR_CMD_STATELOGGER;
+   Backdoor(&bp);
+   return bp.out.ax.halfs.low;
+}
+
 #ifdef __cplusplus
 }
 #endif
diff --git a/lib/include/guestApp.h b/lib/include/guestApp.h
index 9a4eada..fa93922 100644
--- a/lib/include/guestApp.h
+++ b/lib/include/guestApp.h
@@ -195,6 +195,8 @@ WCHAR *GuestApp_GetDictEntryDefaultW(GuestApp_Dict *dict,
 Bool GuestApp_FindProgram(const char *program);
 #endif
 
+uint16
+GuestApp_ControlRecord(int32 mode); //  IN
 #ifdef __cplusplus
 }
 #endif
diff --git a/toolbox/Makefile.am b/toolbox/Makefile.am
index c8e082d..a00c1eb 100644
--- a/toolbox/Makefile.am
+++ b/toolbox/Makefile.am
@@ -63,6 +63,7 @@ if HAVE_X11
    vmware_toolbox_SOURCES += toolboxOptions.c
    vmware_toolbox_SOURCES += toolboxScripts.c
    vmware_toolbox_SOURCES += toolboxShrink.c
+   vmware_toolbox_SOURCES += toolboxRecord.c
 
 # Here's something wacky: automake will muck up the translation of this
 # conditional if it is indented. For more details, see:
@@ -106,6 +107,7 @@ vmware_toolbox_cmd_SOURCES += toolboxcmd-scripts.c
 vmware_toolbox_cmd_SOURCES += toolboxcmd-shrink.c
 vmware_toolbox_cmd_SOURCES += toolboxcmd-stat.c
 vmware_toolbox_cmd_SOURCES += toolboxcmd-time.c
+vmware_toolbox_cmd_SOURCES += toolboxcmd-record.c
 
 if HAVE_ICU
    vmware_toolbox_cmd_LDADD += @ICU_LIBS@
diff --git a/toolbox/Makefile.in b/toolbox/Makefile.in
index db516c0..fef3790 100644
--- a/toolbox/Makefile.in
+++ b/toolbox/Makefile.in
@@ -71,13 +71,14 @@ binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
 PROGRAMS = $(bin_PROGRAMS)
 am__vmware_toolbox_SOURCES_DIST = debugStdio.c toolbox-gtk.c \
 	toolboxAbout.c toolboxDevices.c toolboxOptions.c \
-	toolboxScripts.c toolboxShrink.c
+	toolboxScripts.c toolboxShrink.c toolboxRecord.c 
 @[EMAIL PROTECTED] = debugStdio.$(OBJEXT) \
 @HAVE_X11_TRUE@	toolbox-gtk.$(OBJEXT) toolboxAbout.$(OBJEXT) \
 @HAVE_X11_TRUE@	toolboxDevices.$(OBJEXT) \
 @HAVE_X11_TRUE@	toolboxOptions.$(OBJEXT) \
 @HAVE_X11_TRUE@	toolboxScripts.$(OBJEXT) \
[EMAIL PROTECTED]@	toolboxShrink.$(OBJEXT)
[EMAIL PROTECTED]@	toolboxShrink.$(OBJEXT)  \
[EMAIL PROTECTED]@ toolboxRecord.$(OBJEXT) 
 vmware_toolbox_OBJECTS = $(am_vmware_toolbox_OBJECTS)
 am__DEPENDENCIES_1 =
 @[EMAIL PROTECTED] =  \
@@ -86,7 +87,8 @@ am__DEPENDENCIES_1 =
 am_vmware_toolbox_cmd_OBJECTS = debugStdio.$(OBJEXT) \
 	toolbox-cmd.$(OBJEXT) toolboxcmd-devices.$(OBJEXT) \
 	toolboxcmd-scripts.$(OBJEXT) toolboxcmd-shrink.$(OBJEXT) \
-	toolboxcmd-stat.$(OBJEXT) toolboxcmd-time.$(OBJEXT)
+	toolboxcmd-stat.$(OBJEXT) toolboxcmd-time.$(OBJEXT) \
+	toolboxcmd-record.$(OBJEXT)
 vmware_toolbox_cmd_OBJECTS = $(am_vmware_toolbox_cmd_OBJECTS)
 vmware_toolbox_cmd_DEPENDENCIES = ../libguestlib/libguestlib.la \
 	../lib/guestInfo/libGuestInfo.a ../lib/guestApp/libGuestApp.a \
@@ -279,7 +281,7 @@ COMMON = ../lib/conf/libConf.a ../lib/eventManager/libEventManager.a \
 @[EMAIL PROTECTED] = debugStdio.c toolbox-gtk.c \
 @HAVE_X11_TRUE@	toolboxAbout.c toolboxDevices.c \
 @HAVE_X11_TRUE@	toolboxOptions.c toolboxScripts.c \
[EMAIL PROTECTED]@	toolboxShrink.c
[EMAIL PROTECTED]@	toolboxShrink.c toolboxRecord.c
 @HAVE_ICU_FALSE@@[EMAIL PROTECTED] = $(LINK)
 @HAVE_ICU_TRUE@@[EMAIL PROTECTED] = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \
 @HAVE_ICU_TRUE@@HAVE_X11_TRUE@                         $(LIBTOOLFLAGS) --mode=link $(CXX) $(AM_CXXFLAGS) \
@@ -290,7 +292,7 @@ vmware_toolbox_cmd_LDADD = ../libguestlib/libguestlib.la \
 	$(COMMON) $(am__append_3)
 vmware_toolbox_cmd_SOURCES = debugStdio.c toolbox-cmd.c \
 	toolboxcmd-devices.c toolboxcmd-scripts.c toolboxcmd-shrink.c \
-	toolboxcmd-stat.c toolboxcmd-time.c
+	toolboxcmd-stat.c toolboxcmd-time.c toolboxcmd-record.c
 @[EMAIL PROTECTED] = $(LINK)
 @[EMAIL PROTECTED] = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \
 @HAVE_ICU_TRUE@                             $(LIBTOOLFLAGS) --mode=link $(CXX) \
@@ -384,6 +386,8 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @[EMAIL PROTECTED]/$(DEPDIR)/[EMAIL PROTECTED]@
 @AMDEP_TRUE@@am__include@ @[EMAIL PROTECTED]/$(DEPDIR)/[EMAIL PROTECTED]@
 @AMDEP_TRUE@@am__include@ @[EMAIL PROTECTED]/$(DEPDIR)/[EMAIL PROTECTED]@
[EMAIL PROTECTED]@@am__include@ @[EMAIL PROTECTED]/$(DEPDIR)/[EMAIL PROTECTED]@
[EMAIL PROTECTED]@@am__include@ @[EMAIL PROTECTED]/$(DEPDIR)/[EMAIL PROTECTED]@
 
 .c.o:
 @am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
diff --git a/toolbox/toolbox-cmd.c b/toolbox/toolbox-cmd.c
index 0b4887e..a3dd0a4 100644
--- a/toolbox/toolbox-cmd.c
+++ b/toolbox/toolbox-cmd.c
@@ -71,11 +71,13 @@ static int DiskCommand(char **argv, int argc);
 static int StatCommand(char **argv, int argc);
 static int ScriptCommand(char **argv, int argc);
 static int TimeSyncCommand(char **argv, int argc);
+static int RecordCommand(char **argv, int argc);
 static void DeviceHelp(char *progName);
 static void DiskHelp(char *progName);
 static void ScriptHelp(char *progName);
 static void StatHelp(char *progName);
 static void TimeSyncHelp(char *progName);
+static void RecordHelp(char *progName);
 static void ToolboxCmdHelp(char *progName);
 static const CmdTable * ParseCommand(char **argv, int argc);
 static Bool CheckArgumentLength(char **argv, int argc);
@@ -91,6 +93,7 @@ static const CmdTable commands[] = {
    { "disk", DiskCommand, TRUE, DiskHelp},
    { "stat", StatCommand, FALSE, StatHelp},
    { "device", DeviceCommand, FALSE, DeviceHelp},
+   { "record", RecordCommand, FALSE, RecordHelp},
    { "help", HelpCommand, FALSE, ToolboxCmdHelp},
    { NULL, } };
 
@@ -185,7 +188,8 @@ ToolboxCmdHelp(char *progName)
           "   device\n"
           "   script\n"
           "   disk\n"
-          "   stat\n\n"
+          "   stat\n"
+          "   record\n\n"
           "For additional information please visit http://www.vmware.com/support/\n\n";,
           progName, progName, progName, progName);
 }
@@ -313,6 +317,32 @@ StatHelp(char *progName) // IN: The name of the program obtained from argv[0]
           "   cpulimit: Prints cput limit\n", progName);
 }
 
+/*
+ *-----------------------------------------------------------------------------
+ *
+ * StatHelp --
+ *
+ *      Prints the help for the stat command.
+ *
+ * Results:
+ *      None.
+ *
+ * Side effects:
+ *      None.
+ *
+ *-----------------------------------------------------------------------------
+ */
+
+static void
+RecordHelp(char *progName) // IN: The name of the program obtained from argv[0]
+{
+   printf("record: control recording process inside guest\n"
+          "Usage: %s record <subcommand>\n\n"
+          "Subcommands\n"
+          "   start: start recording\n"
+          "   stop: stop recording\n", progName);
+}
+
 
 /*
  *-----------------------------------------------------------------------------
@@ -582,7 +612,40 @@ TimeSyncCommand(char **argv, // IN: command line arguments
    return EX_USAGE;
 }
 
+/*
+ *-----------------------------------------------------------------------------
+ *
+ * RecordCommand --
+ *
+ *      Parse and Handle recording commands.
+ *
+ * Results:
+ *      Returns EXIT_SUCCESS on success.
+ *      Returns the appropriate exit code errors.
+ *
+ * Side effects:
+ *      Might start and stop recording, guest os may be suspended
+ *      to wait for the recording panel in host.
+ *
+ *-----------------------------------------------------------------------------
+ */
 
+static int
+RecordCommand(char **argv, // IN: Command line arguments
+              int argc)    // IN: Length of command line argumenst
+{
+   if (CheckArgumentLength(argv, argc)) {
+      if (strcmp(argv[optind], "start") == 0) {
+         return Record_StartRecording();
+      } else if (strcmp(argv[optind], "stop") == 0) {
+         return Record_StopRecording();
+      } else {
+         fprintf(stderr, "Unknown subcommand");
+      }
+   }
+   RecordHelp(argv[0]);
+   return EX_USAGE;
+}
 /*
  *-----------------------------------------------------------------------------
  *
diff --git a/toolbox/toolbox-gtk.c b/toolbox/toolbox-gtk.c
index a49bd55..1bedcec 100644
--- a/toolbox/toolbox-gtk.c
+++ b/toolbox/toolbox-gtk.c
@@ -586,16 +586,20 @@ ToolsMain_Create(void)
 
 #ifdef GTK2
    gtk_notebook_append_page(GTK_NOTEBOOK(notebookMain), Scripts_Create(ToolsMain),
-                         gtk_label_new_with_mnemonic(TAB_LABEL_SCRIPTS));
+                            gtk_label_new_with_mnemonic(TAB_LABEL_SCRIPTS));
    gtk_notebook_append_page(GTK_NOTEBOOK(notebookMain), Shrink_Create(ToolsMain),
                             gtk_label_new_with_mnemonic(TAB_LABEL_SHRINK));
+   gtk_notebook_append_page(GTK_NOTEBOOK(notebookMain), Record_Create(ToolsMain),
+                            gtk_label_new_with_mnemonic(TAB_LABEL_RECORD));
    gtk_notebook_append_page(GTK_NOTEBOOK(notebookMain), About_Create(ToolsMain),
                             gtk_label_new_with_mnemonic(TAB_LABEL_ABOUT));
 #else
    gtk_notebook_append_page(GTK_NOTEBOOK(notebookMain), Scripts_Create(ToolsMain),
-                         gtk_label_new(TAB_LABEL_SCRIPTS));
+                            gtk_label_new(TAB_LABEL_SCRIPTS));
    gtk_notebook_append_page(GTK_NOTEBOOK(notebookMain), Shrink_Create(ToolsMain),
                             gtk_label_new(TAB_LABEL_SHRINK));
+   gtk_notebook_append_page(GTK_NOTEBOOK(notebookMain), Record_Create(ToolsMain),
+                            gtk_lable_new(TAB_LABEL_RECORD));
    gtk_notebook_append_page(GTK_NOTEBOOK(notebookMain), About_Create(ToolsMain),
                             gtk_label_new(TAB_LABEL_ABOUT));
 #endif
diff --git a/toolbox/toolboxCmdInt.h b/toolbox/toolboxCmdInt.h
index f3a8f0c..2cfbc9b 100644
--- a/toolbox/toolboxCmdInt.h
+++ b/toolbox/toolboxCmdInt.h
@@ -80,4 +80,10 @@ int Stat_GetMemorySwapped(void);
 int Stat_GetMemoryLimit(void);
 int Stat_GetMemoryReservation(void);
 
+/*
+ * Record commands
+ */
+Bool Record_StartRecording(void);
+Bool Record_StopRecording(void);
+
 #endif /*_TOOLBOX_CMD_H_*/
diff --git a/toolbox/toolboxGtkInt.h b/toolbox/toolboxGtkInt.h
index 3f9c42f..1cb1d78 100644
--- a/toolbox/toolboxGtkInt.h
+++ b/toolbox/toolboxGtkInt.h
@@ -48,12 +48,14 @@
 #define TAB_LABEL_DEVICES "De_vices"
 #define TAB_LABEL_SCRIPTS "Scri_pts"
 #define TAB_LABEL_SHRINK "Shrin_k"
+#define TAB_LABEL_RECORD "_Record"
 #define TAB_LABEL_ABOUT "Abo_ut"
 #else
 #define TAB_LABEL_OPTIONS "Options"
 #define TAB_LABEL_DEVICES "Devices"
 #define TAB_LABEL_SCRIPTS "Scripts"
 #define TAB_LABEL_SHRINK "Shrink"
+#define TAB_LABEL_RECORD "Record"
 #define TAB_LABEL_ABOUT "About"
 #endif
 
@@ -69,6 +71,7 @@ GtkWidget* Devices_Create(GtkWidget* mainWnd);
 GtkWidget* Options_Create(GtkWidget* mainWnd);
 GtkWidget* Scripts_Create(GtkWidget* mainWnd);
 GtkWidget* Shrink_Create(GtkWidget* mainWnd);
+GtkWidget* Record_Create(GtkWidget* mainWnd);
 
 void Options_OnTimeSyncToggled(gpointer btn, gpointer data);
 void Devices_OnDeviceToggled(gpointer btn, gpointer data);
diff --git a/toolbox/toolboxRecord.c b/toolbox/toolboxRecord.c
new file mode 100644
index 0000000..84bec08
--- /dev/null
+++ b/toolbox/toolboxRecord.c
@@ -0,0 +1,125 @@
+/*********************************************************
+ * Copyright (C) 2008 VMware, Inc. All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as published
+ * by the Free Software Foundation version 2.1 and no later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE.  See the Lesser GNU General Public
+ * License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA.
+ *
+ *********************************************************/
+
+/*
+ * toolboxRecord.c --
+ *
+ *     The record tab for the linux gtk toolbox.
+ */
+
+#include "toolboxGtkInt.h"
+
+static void Record_OnStart(gpointer, gpointer);
+static void Record_OnStop(gpointer, gpointer);
+
+/*
+ *-----------------------------------------------------------------------------
+ *
+ * Record_Create  --
+ *
+ *      Create, layout, and init the Record tab UI and all its widgets.
+ *
+ * Results:
+ *      The Record tab widget (it's a vbox).
+ *
+ * Side effects:
+ *      None.
+ *
+ *-----------------------------------------------------------------------------
+ */
+GtkWidget*
+Record_Create(GtkWidget* mainWnd)
+{
+   GtkWidget* recordtab;
+   GtkWidget* hbox[2];
+   GtkWidget* startbtn;
+   GtkWidget* stopbtn;
+   recordtab = gtk_vbox_new(FALSE, 50);
+   gtk_widget_show(recordtab);
+   hbox[0] = gtk_hbox_new(FALSE, 10);
+   hbox[1] = gtk_hbox_new(FALSE, 10);
+   gtk_widget_show(hbox[0]);
+   gtk_widget_show(hbox[1]);
+   gtk_box_pack_start(GTK_BOX(recordtab), hbox[0], FALSE, FALSE, 0);
+   gtk_box_pack_start(GTK_BOX(recordtab), hbox[1], FALSE, FALSE, 0);
+#ifdef GTK2
+   startbtn = gtk_button_new_with_mnemonic("Sta_rt");
+   stopbtn = gtk_button_new_with_mnemonic("S_top");
+#else
+   startbtn = gtk_button_new_with_label("Start");
+   stopbtn = gtk_button_new_with_label("Stop");
+#endif
+   gtk_widget_show(startbtn);
+   gtk_box_pack_start(GTK_BOX(hbox[1]), startbtn, FALSE, FALSE, 10);
+   gtk_widget_set_usize(startbtn, 70, 25);
+   gtk_signal_connect(GTK_OBJECT(startbtn), "clicked",
+                      GTK_SIGNAL_FUNC(Record_OnStart), NULL);
+   gtk_widget_show(stopbtn);
+   gtk_box_pack_end(GTK_BOX(hbox[1]), stopbtn, FALSE, FALSE, 10);
+   gtk_widget_set_usize(stopbtn, 70, 6);
+   gtk_signal_connect(GTK_OBJECT(stopbtn), "clicked",
+                      GTK_SIGNAL_FUNC(Record_OnStop), NULL);
+   return recordtab;
+}
+
+/*
+ *-----------------------------------------------------------------------------
+ *
+ * Record_OnStart --
+ *
+ *      Callback for the gtk signal "clicked" on the Record tab's start
+ *      button. 
+ *
+ * Results:
+ *      None.
+ *
+ * Side effects:
+ *      Host VMware product starts recording this vm.
+ *
+ *-----------------------------------------------------------------------------
+ */
+void
+Record_OnStart(gpointer btn,    // IN: unused
+               gpointer data)   // IN: unused
+{
+   GuestApp_ControlRecord(1);
+}
+
+/*
+ *-----------------------------------------------------------------------------
+ *
+ * Record_OnStop --
+ *
+ *      Callback for the gtk signal "clicked" on the Record tab's stop
+ *      button. 
+ *
+ * Results:
+ *      None.
+ *
+ * Side effects:
+ *      Host VMware product stops recording this vm.
+ *
+ *-----------------------------------------------------------------------------
+ */
+void
+Record_OnStop(gpointer btn,    // IN: unused
+              gpointer data)   // IN: unused
+{
+   GuestApp_ControlRecord(2);
+}
+
diff --git a/toolbox/toolboxcmd-record.c b/toolbox/toolboxcmd-record.c
new file mode 100644
index 0000000..7ebd2d3
--- /dev/null
+++ b/toolbox/toolboxcmd-record.c
@@ -0,0 +1,70 @@
+/*********************************************************
+ * Copyright (C) 2008 VMware, Inc. All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as published
+ * by the Free Software Foundation version 2.1 and no later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE.  See the Lesser GNU General Public
+ * License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA.
+ *
+ *********************************************************/
+
+/*
+ * toolboxcmd-record.c --
+ *
+ *     Record operations for toolbox command line console.
+ */
+
+#include "toolboxCmdInt.h"
+
+/*
+ *-----------------------------------------------------------------------------
+ *
+ * Record_StartRecording --
+ *
+ *      Start recording proccess. 
+ *
+ * Results:
+ *      TRUE if the call is successful, FALSE otherwise.
+ *
+ * Side effects:
+ *      Host VMware product starts recording this vm.
+ *
+ *-----------------------------------------------------------------------------
+ */
+
+Bool
+Record_StartRecording(void) 
+{
+   return (GuestApp_ControlRecord(1) == 1);
+}
+
+/*
+ *-----------------------------------------------------------------------------
+ *
+ * Record_StopRecording --
+ *
+ *      Stop recording proccess, 
+ *
+ * Results:
+ *      TRUE if the call is successful, FALSE otherwise.
+ *
+ * Side effects:
+ *      Host VMware product stops recording this vm.
+ *
+ *-----------------------------------------------------------------------------
+ */
+
+Bool
+Record_StopRecording(void)
+{
+   return (GuestApp_ControlRecord(2) == 1);
+}
+
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
open-vm-tools-devel mailing list
open-vm-tools-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/open-vm-tools-devel

Reply via email to