aboutsummaryrefslogtreecommitdiffstats
path: root/src
AgeCommit message (Collapse)AuthorFilesLines
2018-11-18Update autotools file to version 1.16.1Mauro Carvalho Chehab1-20/+57
As we ship Camorama with those files, and a new check there is needed, let's first update them from autoreconf -vfi, before doing any other changes. Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
2018-09-21Reset frame counters when the camera changesMauro Carvalho Chehab1-0/+5
Different cameras may have different frame rates. Reset the values when a camera is changed, as it doesn't make sense to keep using the values from the previous one. Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
2018-09-21Refresh translation files after the recent changesMauro Carvalho Chehab1-1/+1
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
2018-09-21Set the scale and window name when switching to a cameraMauro Carvalho Chehab2-3/+3
Different cameras may have different scales and names. Set it when switching between cameras. Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
2018-09-21Place the new "Change Camera" option before resolution settingsMauro Carvalho Chehab1-4/+1
Instead of placing it together with the resolution changes, after the separator, add it earlier. With that, it now will remain at the same place after switching between cameras. Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
2018-09-21Fix maximum resolution on scalable camerasMauro Carvalho Chehab1-1/+1
When the camera is scalable, right now it shows the max res as 3/4 of the real one. Fix it. Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
2018-09-21Add an item to allow switching cameras in realtimeMauro Carvalho Chehab5-107/+204
When camorama detects multiple cameras, it should now be possible to swich between them in real time without stopping it. Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
2018-09-21Move the select device dialog logit to callbacks.cMauro Carvalho Chehab3-234/+256
As we intend to be able to select another device anytime, via a callback, move the logic associated with device selection to the callbacks.c. As a side effect, it makes the main.c cleaner. Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
2018-09-21Add a dialog to optionally select the video deviceMauro Carvalho Chehab4-19/+118
The first time camorama is started, or if it doesn't find the previously used camera, it will now open a dialog allowing the user to choose the camera. Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
2018-09-20Get rid of a duplicated timeout functionMauro Carvalho Chehab3-39/+13
Right now, it doesn't matter if it is either using read() or mmap() interface. For both, the frame read logic is called internally at the Gtk loop. So, simplify the logic. Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
2018-09-20Better order video devicesMauro Carvalho Chehab1-20/+42
In order to prepare for a new widget that would allow changing the video device dynamically, re-order the video devices in a way what would help the user to select the right device to be watched. Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
2018-09-20Video devices: improve the detection logicMauro Carvalho Chehab1-21/+76
The previous detection logic were unable to exclude devices that weren't provide video capture streams. It were also checking if the device is really a V4L based at the device name. The new logic now uses VIDIOC_QUERYCAP to check if the device is really a V4L2 and checks if the specific device node is capable of doing video capture. There's one big advantage with this strategy: if udev decides to not follow the usual convention, this will still work. Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
2018-09-20v4l: use device_caps instead of capabilitiesMauro Carvalho Chehab1-3/+3
The capabilities field stores the capabilities of the device as a hole, and not only the specific devnode that it was opened. What's desired there is to check if the specific devnode supports read(), mmap() and it is a capture device. Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
2018-09-20v4l: remove uneeded debug messagesMauro Carvalho Chehab1-11/+5
There's no reason why printing a GUI message and a debug message with the same contents. Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
2018-09-19Better handle V4L2 device namesMauro Carvalho Chehab1-13/+100
Instead of blindly rely on whatever is passed via command line or stored at GSettings, check against valid media devices, by seeking for them at /dev. Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
2018-09-19Use GSettings instead of Gconf-2Mauro Carvalho Chehab7-159/+98
While it works fine, Gconf was deprecated in favor of Gsettings. Replace its usage inside camorama. Please notice that the changed notifications for the values are not used here. Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
2018-09-18preserve last used resolution if not changed via command lineschemasMauro Carvalho Chehab3-3/+14
Store the last used resolution at Gconf's schema. This way, when camorama is restarted, it will re-use it. Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
2018-09-18Do more fixes at Camorama's schemaMauro Carvalho Chehab1-22/+23
There was still a mismatch between Camorama's schema file and the interface used internally. Sync them. Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
2018-09-18v4l: get maximum fps for each resolution and displayMauro Carvalho Chehab3-6/+36
Most modern cameras allow to get the maximum number of frames per second for each resolution. Add support for it. Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
2018-09-07callbacks: prevent destroying the preferences widgetMauro Carvalho Chehab3-0/+12
The preferences widget's logic is to hide/unride. Intercept the destroy signal, in order to prevent it to be distroyed if one clicks at the (X) button of the widget. Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
2018-09-07callbacks: Avoid leaking memoryMauro Carvalho Chehab1-4/+8
Be sure to free memory when replacing a value and avoid memory leaks. Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
2018-09-07interface.h: rename Gconf2 keysMauro Carvalho Chehab4-83/+97
Using KEY<number> makes harder to identify the meaning of it, as KEY* macros are also used at Linux input/evdev subsystem. Also, when something changes there, we start by having numbers skipped or needing to place stuff out of order. Finally, "PATH" is a terrible name, as it usually means the environment var. So, rename everything inside interface.h, in order to make easier to use them, and clearer that they're related to Gconf2. While here, get rid of "date_format", as it is not used anywhere. Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
2018-09-07main: Store camera deviceMauro Carvalho Chehab1-0/+2
We have a key to store the camera device. Currently, it is only read from Gconf. It is useful to remember the last used device, so store it. Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
2018-09-07main: add some g_free() in order to reduce memleak warningsMauro Carvalho Chehab1-8/+21
Running valgrind with gtk apps really sucks, as gtk doesn't really care about freeing stuff at the end. So, lots of leaks are reported by tools like valgrind. Let's at least free the stuff allocated at main.c at close_app() callback, in order to clean the mess a little bit. It should be noticed that gconf_client_get_string() already returns an allocated string, so no need to call g_strdup(). Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
2018-09-07Optimize global widgetsMauro Carvalho Chehab3-5/+5
main_window is defined but never used; prefswindow is used, but, while it is set at camorama-window, it doesn't use it itself. Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
2018-09-07add the compatibility bits needed to build it with gtk 4Mauro Carvalho Chehab1-0/+18
Now that we don't use gtk_init_*() anymore, there are just a few minor changes required at the source code in order to make it build with Gtk 4. Please notice that there's a small hack there: originally, the popup menu required mouse button 3. I was unable to discover how to get it with gtk 4. As the other buttons are unused, with the new code, any mouse button will open the popup effects window. Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
2018-09-07Change GtkHScale to GtkScaleMauro Carvalho Chehab2-11/+11
GtkHScale doesn't exist on Gtk 4. As GtkScale works fine since Gtk 2, use it. Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
2018-09-07Add backward support for gtk2Mauro Carvalho Chehab4-1/+37
Support for gtk3 is too new. It is worth keeping support for gtk2 for a while, specially since the code changes to keep it are small. Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
2018-09-07main: make it use gtk_application_new() & friendsMauro Carvalho Chehab5-35/+56
As with gtk 4 there's no way to pass command line arguments anymore to gtk_init, we need to change the logic, in order to use g_application() instead. It should be noticed that g_application() is not supported by gtk 2. So, this patch will temporarely break compatibility with it. The next patch will restore. I opted to add the backward compat on a separate patch as it makes easier to later drop gtk 2 compat, after we test gtk 3 support for a while. Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
2018-09-06Allow having different UIs depending on Gtk versionMauro Carvalho Chehab3-4/+6
On Gtk3, several Widgets got obsoleted, being replaced by a different wigdet. For now, keep both gtk2 and gtk3 versions identical, e. g.: copied: camorama.ui -> camorama-gtk3.ui renamed: camorama.ui -> camorama-gtk2.ui The next patch will replace the obsolete widgets. Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
2018-09-06fileio: don't try to mount if remote update is disabledfixesMauro Carvalho Chehab1-0/+4
The current logic tries to do a remote mount even when remote mount is not used. Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
2018-09-06gtk_menu_popup() is deprecated on gtk 3.22Mauro Carvalho Chehab1-0/+6
Use gtk_menu_popup_at_pointer() if gtk is 3.22 or upper. Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
2018-09-06get rid of the unused xpm_label_box() functionMauro Carvalho Chehab2-23/+0
This function is not used anywhere and produces a warning with gtk 3. So, get rid of it. Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
2018-09-06main: use gdk_monitor_get_geometry() on newer Gtk 3Mauro Carvalho Chehab1-2/+18
Since Gtk 3.22, width/height should be obtained per monitor. So, do that, using the default monitor. Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
2018-09-06Remove the tray iconMauro Carvalho Chehab9-160/+6
There is a somewhat complex logic here that just adds a camorama icon to the tray bar. The only action it provides is that a click makes the window to minimize. That's too much effort for too little gain. As the API it uses is deprecated on gtk 3 in favor of Gnotification, it sounds better to just get rid of it for good. Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
2018-09-05camorama-window: fix tray iconMauro Carvalho Chehab2-22/+12
The tray icon logic is currently broken. Fix it. Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
2018-09-05add support for scaling the image with cairoMauro Carvalho Chehab5-20/+47
It is easy to scale the image with cairo. Add support for it. For now, it reserves about 2/3 of the screen for the image stream display, keeping 1/3 reserved for the interface. It probably makes sense to add ways for the user to change the scale. It should be noticed that the snapshots won't be affected for the scale; will keep using the image resolution. Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
2018-09-05callbacks: fix apply_filters() logicMauro Carvalho Chehab1-5/+5
The filters should work with RGB data. If data is on YUV420, they should be converted first to RGB before filtered. Please notice that this shouldn't happen, in practice, as libv4l will always provide a RGB output, but, if something changes there, it may end doing a wrong thing. So, better to fix. Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
2018-09-05callbacks: use a callback to draw at GtkDrawingAreagtk3_improvementsMauro Carvalho Chehab4-41/+69
Gtk 3 supports wayland, but there's a catch: while the current code works properly with X11, it doesn't draw anything inside the GtkDrawingArea on Wayland. The fix is trivial, but incompatible with Gtk2: instead of updating the drawing aea inside the main loop, a callback has to be used in order to handle gtk draw logic. As, at least for now, we want to keep supporting Gtk 2, let's add a compatibility code. That fixes drawing with Wayland. Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
2018-09-05callbacks: Optimize cairo logic for Gtk 3Mauro Carvalho Chehab1-2/+24
With Gtk 3, we don't need to implement the funtion gdk_cairo_surface_create_from_pixbuf() ourselves, as it is available there. So, just call the right function. Also, with Gtk 3.22 and above, the old way of calling gdk_cairo_create() is obsolete, as all windows already have it. So, instead, just instance it. That supresses a deprecated function warning: callbacks.c:604:5: warning: ‘gdk_cairo_create’ is deprecated: Use 'gdk_window_begin_draw_frame() and gdk_drawing_context_get_cairo_context()' instead [-Wdeprecated-declarations] cr = gdk_cairo_create(window); ^~ In file included from /usr/include/gtk-3.0/gdk/gdk.h:33, from /usr/include/gtk-3.0/gtk/gtk.h:30, from v4l.h:24, from callbacks.h:4, from callbacks.c:1: /usr/include/gtk-3.0/gdk/gdkcairo.h:35:12: note: declared here cairo_t * gdk_cairo_create (GdkWindow *window); ^~~~~~~~~~~~~~~~ While here, add a missing surface destroy in order to avoid possible memory leaks. Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
2018-09-04v4l: fix some troubles due to unsigned int on resolutionsdist_improvementsMauro Carvalho Chehab2-5/+5
Changeset af1f1940a636 ("Do some code cleanups") caused a regression when setting the resolution, as x and y could be a negative value in the past. Fix it. Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
2018-09-04callbacks: don't print resolution by defaultMauro Carvalho Chehab1-1/+2
This is a debug message. Only print when needed. Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
2018-09-04callback: Fix some issues at the about dialogMauro Carvalho Chehab1-9/+9
The documenters dialog is useless, as there's about no Camorama documentation, and this was never used. Also, when the dialog is called, a warning is produced, because it doesn't find the right object. So, instead, implement a destroy callback. Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
2018-09-04Unify coding styleMauro Carvalho Chehab23-5595/+5682
The coding style of Camorama is a mess. It doesn't consistently follow the same style. Unify it by applying a coding style close to the Linux Kernel. There is an exception, however: here, we'll use indent with 4, and won't use tabs. Rationale for using the Kernel style: 1) The checkpatch.pl script there can do lots of cleanups; 2) There used to be a lindent line (with I still have here), with do several other style cleanups. So, most of the changes can happen on a more automatic way. Still, care should be taken with static constants, as Kernel initializes them with zeros, while userspace don't. Accidentally, I'm more familiar with this style, with makes easier for me to contribute :-D No functional changes. Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
2018-09-04callbacks: get rid of some dead codeMauro Carvalho Chehab1-6/+0
There are two warnings here related to some threshold filter. Well, the threshold filters are already modeled using the same way as the other filters. So, there's no need for an extra call there. Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
2018-09-04callbacks: fix the notification functionsMauro Carvalho Chehab3-16/+16
As warned by gcc, the way it is, those functions do nothing, as they're not passing a pointer to the data that should be updated. Fix them. Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
2018-09-04callbacks: get rid of unsused GconfClientMauro Carvalho Chehab1-52/+0
Those functions set the client, but never use it. Get rid of those dead code. Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
2018-09-04Don't use gdk-pixbuf-xlib-2.0 anymoreMauro Carvalho Chehab3-13/+1
Since we moved to Cairo, this is not needed. Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
2018-09-04Use g_list_free_full() convenience functionMauro Carvalho Chehab1-4/+2
That helps to get rid of two warnings. Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
2018-09-04Enable warnings when building CamoramaMauro Carvalho Chehab2-0/+7
There are lots of warnings that are disabled when building camorama. Enable them, as they may show real bugs. Yet, as we still have lots of such warnings, don't threat warnings as errors. Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>

Privacy Policy