ekiga r6013 - in trunk: . lib/engine/vidinput/mlogo lib/engine/vidinput/ptlib lib/engine/vidinput/skel
- From: mschneid svn gnome org
- To: svn-commits-list gnome org
- Subject: ekiga r6013 - in trunk: . lib/engine/vidinput/mlogo lib/engine/vidinput/ptlib lib/engine/vidinput/skel
- Date: Sat, 1 Mar 2008 18:10:39 +0000 (GMT)
Author: mschneid
Date: Sat Mar 1 18:10:39 2008
New Revision: 6013
URL: http://svn.gnome.org/viewvc/ekiga?rev=6013&view=rev
Log:
Added new signals when an input device is opened and closed.
Modified:
trunk/ChangeLog
trunk/lib/engine/vidinput/mlogo/vidinput-manager-mlogo.cpp
trunk/lib/engine/vidinput/ptlib/vidinput-manager-ptlib.cpp
trunk/lib/engine/vidinput/skel/vidinput-core.cpp
trunk/lib/engine/vidinput/skel/vidinput-core.h
trunk/lib/engine/vidinput/skel/vidinput-manager.h
Modified: trunk/lib/engine/vidinput/mlogo/vidinput-manager-mlogo.cpp
==============================================================================
--- trunk/lib/engine/vidinput/mlogo/vidinput-manager-mlogo.cpp (original)
+++ trunk/lib/engine/vidinput/mlogo/vidinput-manager-mlogo.cpp Sat Mar 1 18:10:39 2008
@@ -86,9 +86,11 @@
memset (background_frame + (current_state.width * current_state.height), 0x7f, (current_state.width*current_state.height) >> 2);
memset (background_frame + (current_state.width * current_state.height) + ((current_state.width*current_state.height) >> 2), 0x7f, (current_state.width*current_state.height) >> 2);
- current_state.opened = true;
-
m_Pacing.Restart();
+
+ current_state.opened = true;
+ runtime.run_in_main (sigc::bind (vidinputdevice_opened.make_slot (), current_state.vidinput_device, 127, 127, 127, 127, false));
+
return true;
}
@@ -97,6 +99,7 @@
PTRACE(4, "GMVidInputManager_mlogo\tClosing Moving Logo");
free (background_frame);
current_state.opened = false;
+ runtime.run_in_main (sigc::bind (vidinputdevice_closed.make_slot (), current_state.vidinput_device));
}
void GMVidInputManager_mlogo::get_frame_data (unsigned & width,
Modified: trunk/lib/engine/vidinput/ptlib/vidinput-manager-ptlib.cpp
==============================================================================
--- trunk/lib/engine/vidinput/ptlib/vidinput-manager-ptlib.cpp (original)
+++ trunk/lib/engine/vidinput/ptlib/vidinput-manager-ptlib.cpp Sat Mar 1 18:10:39 2008
@@ -43,10 +43,6 @@
GMVidInputManager_ptlib::GMVidInputManager_ptlib (Ekiga::ServiceCore & _core)
: core (_core), runtime (*(dynamic_cast<Ekiga::Runtime *> (_core.get ("runtime"))))
{
- current_state.colour = 127;
- current_state.brightness = 127;
- current_state.whiteness = 127;
- current_state.contrast = 127;
current_state.opened = false;
input_device = NULL;
expectedFrameSize = 0;
@@ -94,15 +90,17 @@
current_state.format = format;
return true;
}
-
+
return false;
}
bool GMVidInputManager_ptlib::open (unsigned width, unsigned height, unsigned fps)
{
+ PVideoDevice::VideoFormat pvideo_format;
+ int whiteness, brightness, colour, contrast, hue;
+
PTRACE(4, "GMVidInputManager_ptlib\tOpening Device " << current_state.vidinput_device.source << "/" << current_state.vidinput_device.device);
PTRACE(4, "GMVidInputManager_ptlib\tOpening Device with " << width << "x" << height << "/" << fps);
- PVideoDevice::VideoFormat pvideo_format;
current_state.width = width;
current_state.height = height;
@@ -133,11 +131,9 @@
return false;
}
- input_device->SetWhiteness(current_state.whiteness << 8);
- input_device->SetBrightness(current_state.brightness << 8);
- input_device->SetColour(current_state.colour << 8);
- input_device->SetContrast(current_state.contrast << 8);
+ input_device->GetParameters (&whiteness, &brightness, &colour, &contrast, &hue);
current_state.opened = true;
+ runtime.run_in_main (sigc::bind (vidinputdevice_opened.make_slot (), current_state.vidinput_device, (unsigned) whiteness >> 8, (unsigned) brightness >> 8, (unsigned) colour >> 8, (unsigned) contrast >> 8, true));
return true;
}
@@ -150,6 +146,7 @@
input_device = NULL;
}
current_state.opened = false;
+ runtime.run_in_main (sigc::bind (vidinputdevice_closed.make_slot (), current_state.vidinput_device));
}
void GMVidInputManager_ptlib::get_frame_data (unsigned & width,
@@ -169,38 +166,34 @@
if (input_device)
input_device->GetFrameData ((BYTE*)data, &I);
- if (I != expectedFrameSize)
+ if ((unsigned) I != expectedFrameSize)
PTRACE(1, "GMVidInputManager_ptlib\tExpected a frame of " << expectedFrameSize << " bytes but got " << I << " bytes");
}
void GMVidInputManager_ptlib::set_colour (unsigned colour)
{
PTRACE(4, "GMVidInputManager_ptlib\tSetting colour to " << colour);
- current_state.colour = colour;
if (input_device)
- input_device->SetColour(colour);
+ input_device->SetColour(colour << 8);
}
void GMVidInputManager_ptlib::set_brightness (unsigned brightness)
{
PTRACE(4, "GMVidInputManager_ptlib\tSetting brightness to " << brightness);
- current_state.brightness = brightness;
if (input_device)
- input_device->SetBrightness(brightness);
+ input_device->SetBrightness(brightness << 8);
}
void GMVidInputManager_ptlib::set_whiteness (unsigned whiteness)
{
PTRACE(4, "GMVidInputManager_ptlib\tSetting whiteness to " << whiteness);
- current_state.whiteness = whiteness;
if (input_device)
- input_device->SetWhiteness(whiteness);
+ input_device->SetWhiteness(whiteness << 8);
}
void GMVidInputManager_ptlib::set_contrast (unsigned contrast)
{
PTRACE(4, "GMVidInputManager_ptlib\tSetting contrast to " << contrast);
- current_state.contrast = contrast;
if (input_device)
- input_device->SetContrast(contrast);
+ input_device->SetContrast(contrast << 8);
}
Modified: trunk/lib/engine/vidinput/skel/vidinput-core.cpp
==============================================================================
--- trunk/lib/engine/vidinput/skel/vidinput-core.cpp (original)
+++ trunk/lib/engine/vidinput/skel/vidinput-core.cpp Sat Mar 1 18:10:39 2008
@@ -157,6 +157,8 @@
manager.error.connect (sigc::bind (sigc::mem_fun (this, &VidInputCore::on_error), &manager));
manager.vidinputdevice_added.connect (sigc::bind (sigc::mem_fun (this, &VidInputCore::on_vidinputdevice_added), &manager));
manager.vidinputdevice_removed.connect (sigc::bind (sigc::mem_fun (this, &VidInputCore::on_vidinputdevice_removed), &manager));
+ manager.vidinputdevice_opened.connect (sigc::bind (sigc::mem_fun (this, &VidInputCore::on_vidinputdevice_opened), &manager));
+ manager.vidinputdevice_closed.connect (sigc::bind (sigc::mem_fun (this, &VidInputCore::on_vidinputdevice_closed), &manager));
}
@@ -350,44 +352,32 @@
{
PWaitAndSignal m(var_mutex);
- for (std::set<VidInputManager *>::iterator iter = managers.begin ();
- iter != managers.end ();
- iter++) {
- (*iter)->set_colour (colour);
- }
+ if (current_manager)
+ current_manager->set_colour (colour);
}
void VidInputCore::set_brightness (unsigned brightness)
{
PWaitAndSignal m(var_mutex);
- for (std::set<VidInputManager *>::iterator iter = managers.begin ();
- iter != managers.end ();
- iter++) {
- (*iter)->set_brightness (brightness);
- }
+ if (current_manager)
+ current_manager->set_brightness (brightness);
}
void VidInputCore::set_whiteness (unsigned whiteness)
{
PWaitAndSignal m(var_mutex);
- for (std::set<VidInputManager *>::iterator iter = managers.begin ();
- iter != managers.end ();
- iter++) {
- (*iter)->set_whiteness (whiteness);
- }
+ if (current_manager)
+ current_manager->set_whiteness (whiteness);
}
void VidInputCore::set_contrast (unsigned contrast)
{
PWaitAndSignal m(var_mutex);
- for (std::set<VidInputManager *>::iterator iter = managers.begin ();
- iter != managers.end ();
- iter++) {
- (*iter)->set_contrast (contrast);
- }
+ if (current_manager)
+ current_manager->set_contrast (contrast);
}
void VidInputCore::on_error (VidInputErrorCodes error_code, VidInputManager *manager)
@@ -405,6 +395,18 @@
vidinputdevice_removed.emit (*manager, vidinput_device);
}
+void VidInputCore::on_vidinputdevice_opened (VidInputDevice vidinput_device,
+ unsigned colour, unsigned brightness, unsigned whiteness, unsigned contrast, bool modifyable,
+ VidInputManager *manager)
+{
+ vidinputdevice_opened.emit (*manager, vidinput_device, colour, brightness, whiteness, contrast, modifyable);
+}
+
+void VidInputCore::on_vidinputdevice_closed (VidInputDevice vidinput_device, VidInputManager *manager)
+{
+ vidinputdevice_closed.emit (*manager, vidinput_device);
+}
+
void VidInputCore::internal_open (unsigned width, unsigned height, unsigned fps)
{
PTRACE(4, "VidInputCore\tOpening device with " << width << "x" << height << "/" << fps );
Modified: trunk/lib/engine/vidinput/skel/vidinput-core.h
==============================================================================
--- trunk/lib/engine/vidinput/skel/vidinput-core.h (original)
+++ trunk/lib/engine/vidinput/skel/vidinput-core.h Sat Mar 1 18:10:39 2008
@@ -175,11 +175,17 @@
sigc::signal<void, VidInputManager &, VidInputErrorCodes> error;
sigc::signal<void, VidInputManager &, VidInputDevice> vidinputdevice_added;
sigc::signal<void, VidInputManager &, VidInputDevice> vidinputdevice_removed;
+ sigc::signal<void, VidInputManager &, VidInputDevice, unsigned, unsigned, unsigned, unsigned, bool> vidinputdevice_opened;
+ sigc::signal<void, VidInputManager &, VidInputDevice> vidinputdevice_closed;
private:
void on_error (VidInputErrorCodes error_code, VidInputManager *manager);
void on_vidinputdevice_added (VidInputDevice vidinput_device, VidInputManager *manager);
void on_vidinputdevice_removed (VidInputDevice vidinput_device, VidInputManager *manager);
+ void on_vidinputdevice_opened (VidInputDevice vidinput_device,
+ unsigned colour, unsigned brightness, unsigned whiteness, unsigned contrast, bool modifyable,
+ VidInputManager *manager);
+ void on_vidinputdevice_closed (VidInputDevice vidinput_device, VidInputManager *manager);
void internal_open (unsigned width, unsigned height, unsigned fps);
void internal_close();
Modified: trunk/lib/engine/vidinput/skel/vidinput-manager.h
==============================================================================
--- trunk/lib/engine/vidinput/skel/vidinput-manager.h (original)
+++ trunk/lib/engine/vidinput/skel/vidinput-manager.h Sat Mar 1 18:10:39 2008
@@ -56,10 +56,6 @@
VidInputDevice vidinput_device;
VideoFormat format;
int channel;
- int colour;
- int whiteness;
- int brightness;
- int contrast;
};
@@ -109,6 +105,8 @@
sigc::signal<void, VidInputErrorCodes> error;
sigc::signal<void, VidInputDevice> vidinputdevice_added;
sigc::signal<void, VidInputDevice> vidinputdevice_removed;
+ sigc::signal<void, VidInputDevice, unsigned, unsigned, unsigned, unsigned, bool> vidinputdevice_opened;
+ sigc::signal<void, VidInputDevice> vidinputdevice_closed;
protected:
ManagerState current_state;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]