Antonio Ospite [Wed, 29 Jun 2016 16:56:49 +0000 (18:56 +0200)]
HACKING.asciidoc: mention libxcb1-dev as a build dependency
Without libxcb1-dev am7xxx-play can't figure out the screen dimensions.
Antonio Ospite [Sat, 9 Jan 2016 12:18:40 +0000 (13:18 +0100)]
Fix a missing parenthesis in some output strings
Antonio Ospite [Sat, 9 Jan 2016 12:17:49 +0000 (13:17 +0100)]
am7xxx-modeswitch: adjust comment formatting
Antonio Ospite [Wed, 18 Nov 2015 15:52:39 +0000 (16:52 +0100)]
NEWS: fix a typo s/am7xx-play/am7xxx-play/
Antonio Ospite [Tue, 17 Nov 2015 17:42:39 +0000 (18:42 +0100)]
am7xxx: bump _POSIX_C_SOURCE to 200112L for lroundf()
The library code uses lroundf() from math.h but some compilers may warn
about an implicit definition of it, so make sure it it actually
available by following the requirements from the LROUND(3) man page.
Antonio Ospite [Tue, 17 Nov 2015 17:41:18 +0000 (18:41 +0100)]
am7xxx: remove a useless empty line
Antonio Ospite [Tue, 17 Nov 2015 15:37:28 +0000 (16:37 +0100)]
Release version 0.1.6
Antonio Ospite [Tue, 17 Nov 2015 15:30:35 +0000 (16:30 +0100)]
Refresh contrib/performance/0001-Instrument-code-with-fps-meter.patch
Antonio Ospite [Tue, 17 Nov 2015 14:46:15 +0000 (15:46 +0100)]
Strip trailing spaces here and there
Antonio Ospite [Tue, 17 Nov 2015 12:21:31 +0000 (13:21 +0100)]
am7xxx-play: fix warning about deprecated fields in the output codec
.../examples/am7xxx-play.c:238:2:
warning: ‘lmin’ is deprecated [-Wdeprecated-declarations]
output_codec_ctx->mb_lmin = output_codec_ctx->lmin = output_codec_ctx->qmin * FF_QP2LAMBDA;
^
.../examples/am7xxx-play.c:239:2:
warning: ‘lmax’ is deprecated [-Wdeprecated-declarations]
output_codec_ctx->mb_lmax = output_codec_ctx->lmax = output_codec_ctx->qmax * FF_QP2LAMBDA;
^
Antonio Ospite [Tue, 17 Nov 2015 12:10:40 +0000 (13:10 +0100)]
am7xxx-play: don't dump the last frame unconditionally
Stop dumping the last frame unconditionally in DEBUG mode, it's not the
expected behavior; instead add an option to explicitly enable dumping
the last frame but still leave this active only in DEBUG mode.
Antonio Ospite [Tue, 17 Nov 2015 09:47:36 +0000 (10:47 +0100)]
am7xxx-play: fix runtime warnings from ffmpeg
ffmpeg emits warnings at runtime about some AVFrame fields not being
set:
[mjpeg @ 0x669040] AVFrame.format is not set
[mjpeg @ 0x669040] AVFrame.width or height is not set
This happens in a loop so the message is repeated over and over and
becomes annoying, fix this by setting the missing values.
Antonio Ospite [Tue, 17 Nov 2015 09:43:46 +0000 (10:43 +0100)]
TODO: add some ideas for minor enhancements
Antonio Ospite [Tue, 17 Nov 2015 09:41:58 +0000 (10:41 +0100)]
am7xxx-play: fix an error message, we now use am7xxx_send_image_async()
Antonio Ospite [Sat, 7 Nov 2015 21:33:03 +0000 (22:33 +0100)]
Fix some format string warnings from clang
Building with clang gives some format string warnings as below, fix them
by using the correct format string when printing out the values.
.../libam7xxx/src/am7xxx.c:804:38: warning:
format specifies type 'unsigned char' but the argument has type 'int'
[-Wformat]
(*dev)->desc->configuration, current_configuration);
^~~~~~~~~~~~~~~~~~~~~
.../libam7xxx/src/am7xxx.c:65:85: note:
expanded from macro 'debug'
#define debug(ctx, ...) log_message(ctx, AM7XXX_LOG_DEBUG, __func__, 0, __VA_ARGS__)
^
1 warning generated.
[...]
.../libam7xxx/examples/am7xxx-modeswitch.c:75:5:
warning: format specifies type 'unsigned char' but the argument has type
'int' [-Wformat]
AM7XXX_STORAGE_CONFIGURATION);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
.../libam7xxx/examples/am7xxx-modeswitch.c:26:38:
note: expanded from macro 'AM7XXX_STORAGE_CONFIGURATION'
#define AM7XXX_STORAGE_CONFIGURATION 1
^
.../libam7xxx/examples/am7xxx-modeswitch.c:87:4:
warning: format specifies type 'unsigned char' but the argument has type
'int' [-Wformat]
AM7XXX_STORAGE_INTERFACE);
^~~~~~~~~~~~~~~~~~~~~~~~
.../libam7xxx/examples/am7xxx-modeswitch.c:27:38:
note: expanded from macro 'AM7XXX_STORAGE_INTERFACE'
#define AM7XXX_STORAGE_INTERFACE 0
^
.../libam7xxx/examples/am7xxx-modeswitch.c:104:4:
warning: format specifies type 'unsigned char' but the argument has type
'int' [-Wformat]
AM7XXX_STORAGE_CONFIGURATION, current_configuration);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
.../libam7xxx/examples/am7xxx-modeswitch.c:26:38:
note: expanded from macro 'AM7XXX_STORAGE_CONFIGURATION'
#define AM7XXX_STORAGE_CONFIGURATION 1
^
.../libam7xxx/examples/am7xxx-modeswitch.c:104:34:
warning: format specifies type 'unsigned char' but the argument has type
'int' [-Wformat]
AM7XXX_STORAGE_CONFIGURATION, current_configuration);
^~~~~~~~~~~~~~~~~~~~~
4 warnings generated.
Andreas Cadhalpun [Sun, 1 Nov 2015 23:00:00 +0000 (00:00 +0100)]
am7xxx-play: Replace deprecated FFmpeg API symbol PIX_FMT_NV12
PIX_FMT_NV12 is not going to be available in ffmpeg 2.9 so prepare for
that by using AV_PIX_FMT_NV12, which BTW has been available for quite
some time already.
Antonio Ospite [Wed, 8 Jul 2015 09:26:13 +0000 (11:26 +0200)]
am7xxx: put some spaces around operators
Antonio Ospite [Fri, 26 Jun 2015 08:25:26 +0000 (10:25 +0200)]
am7xxx-modeswitch: fix the Length field in the switch command
The switch_command is a USB storage message, the bulk_cb_wrap structure
from include/linux/usb/storage.h in the Linux kernel shows the fields
meanings:
struct bulk_cb_wrap {
__le32 Signature; /* contains 'USBC' */
__u32 Tag; /* unique per command id */
__le32 DataTransferLength; /* size of data */
__u8 Flags; /* direction in bit 0 */
__u8 Lun; /* LUN normally 0 */
__u8 Length; /* length of the CDB */
__u8 CDB[16]; /* max command */
};
In switch_command the data in CDB is 16 bytes long (0x10), so using 0x0c
was wrong, it worked on some devices but it did not on others.
Use the correct value.
Thanks-to: Balasubramanian S <sbala214@gmail.com>
Antonio Ospite [Wed, 10 Jun 2015 11:30:09 +0000 (13:30 +0200)]
am7xxx: remove a redundant debug message in open_device()
The calling function will show an error for the same condition.
Antonio Ospite [Wed, 10 Jun 2015 11:16:02 +0000 (13:16 +0200)]
am7xxx: use debug() instead of fatal() in add_new_device()
We are guaranteed that ctx is non-null by a previous check.
Antonio Ospite [Wed, 10 Jun 2015 10:51:38 +0000 (12:51 +0200)]
am7xxx: rename the "function" argument of log_message() to "function_name"
This express better the meaning of the variable.
Antonio Ospite [Wed, 10 Jun 2015 10:42:39 +0000 (12:42 +0200)]
am7xxx: split declaration and initialization of the "transferred" variable
This makes it clearer than we mean to initialize the variable to
0 before _each_ libusb_bulk_transfer() call.
Antonio Ospite [Wed, 10 Jun 2015 10:41:57 +0000 (12:41 +0200)]
am7xxx-modeswitch: add a blank line for readability
Antonio Ospite [Wed, 10 Jun 2015 10:38:21 +0000 (12:38 +0200)]
am7xxx-modeswitch: set USB configuration following libusb documentation
For the details see: http://libusb.sourceforge.net/api-1.0/caveats.html
Antonio Ospite [Wed, 10 Jun 2015 10:22:57 +0000 (12:22 +0200)]
am7xxx-modeswitch: reorder declarations of variables
Antonio Ospite [Wed, 10 Jun 2015 10:21:41 +0000 (12:21 +0200)]
am7xxx-modeswitch: remove unneeded assignment
Antonio Ospite [Wed, 10 Jun 2015 10:18:49 +0000 (12:18 +0200)]
am7xxx-modeswitch: improve messages relative to libusb failures
Antonio Ospite [Wed, 10 Jun 2015 10:12:22 +0000 (12:12 +0200)]
am7xxx-modeswitch: use LIBUSB_LOG_LEVEL_INFO instead of a magic number
Antonio Ospite [Wed, 10 Jun 2015 10:09:31 +0000 (12:09 +0200)]
am7xxx-modeswitch: use libusb_set_auto_detach_kernel_driver()
Antonio Ospite [Wed, 10 Jun 2015 10:07:20 +0000 (12:07 +0200)]
am7xxx: print an error message when libusb_init fails
Antonio Ospite [Wed, 10 Jun 2015 09:05:46 +0000 (11:05 +0200)]
am7xxx: improve the comment about setting a new configuration
Explain better why it is not needed to detach all kernel drivers in most
situations.
Antonio Ospite [Wed, 10 Jun 2015 09:03:58 +0000 (11:03 +0200)]
am7xxx: clarify a comment about copying data in send_data_async()
Antonio Ospite [Mon, 20 Apr 2015 15:19:10 +0000 (17:19 +0200)]
am7xxx: release the interface when needed in open_device()
Release the interface when bailing out of open_device() after the
interface has been claimed.
Antonio Ospite [Mon, 20 Apr 2015 15:09:19 +0000 (17:09 +0200)]
am7xxx: check the return value of libusb_get_configuration()
libusb_get_configuration() can still fail after the device has been
opened, so check its actual return value before trusting the returned
current_configuration.
Antonio Ospite [Mon, 20 Apr 2015 14:42:02 +0000 (16:42 +0200)]
am7xxx: fix the error path of the second configuration check
Return a negative error value when the configuration check done after
claiming the interface fails, and also fix the output messages.
Antonio Ospite [Mon, 20 Apr 2015 14:32:04 +0000 (16:32 +0200)]
am7xxx: add comment about detaching kernel drivers before setting configuration
Antonio Ospite [Mon, 20 Apr 2015 14:30:53 +0000 (16:30 +0200)]
am7xxx: add some spaces in a comment
Antonio Ospite [Mon, 20 Apr 2015 14:28:47 +0000 (16:28 +0200)]
am7xxx: fix the coding style used to represent pointers
Antonio Ospite [Sun, 25 Jan 2015 23:20:20 +0000 (00:20 +0100)]
am7xxx: use libusb_error_name to print the return value of libusb calls
This makes the debug output more useful.
Antonio Ospite [Sun, 25 Jan 2015 23:05:27 +0000 (00:05 +0100)]
am7xxx: detach kernel driver before claiming the interface
This is needed on some systems like Ubuntu 14.04, but apparently not on
Debian ones.
Thanks-to: Andrea Console <andreaconsole@gmail.com>
Antonio Ospite [Sun, 25 Jan 2015 23:00:25 +0000 (00:00 +0100)]
am7xxx: use a saner approach when setting the USB configuration
Follow the advices from
http://libusb.sourceforge.net/api-1.0/caveats.html
Antonio Ospite [Sun, 25 Jan 2015 22:42:42 +0000 (23:42 +0100)]
am7xxx: when listing possible return values use "or" in place of "and"
Antonio Ospite [Sun, 25 Jan 2015 22:40:35 +0000 (23:40 +0100)]
am7xxx: mention open_device() in the comment about scan_devices()
Antonio Ospite [Sun, 25 Jan 2015 22:27:37 +0000 (23:27 +0100)]
am7xxx: clean up the exit path in open_device()
Antonio Ospite [Sun, 25 Jan 2015 22:23:33 +0000 (23:23 +0100)]
am7xxx: comment on the loop termination in SCAN_OP_OPEN_DEVICE mode
Antonio Ospite [Sun, 25 Jan 2015 22:12:03 +0000 (23:12 +0100)]
am7xxx: factor out an open_device() function from scan_devices()
This reduces the indentation level and makes the code more readable, now
it will be easier to improve open_device().
Antonio Ospite [Sun, 25 Jan 2015 21:12:27 +0000 (22:12 +0100)]
am7xxx: make a comment clearer about SCAN_OP_OPEN_DEVICE
Antonio Ospite [Sun, 25 Jan 2015 20:34:13 +0000 (21:34 +0100)]
TODO: add another item about the style used in cmake files
Antonio Ospite [Sun, 25 Jan 2015 20:33:34 +0000 (21:33 +0100)]
doc/lsusb_dumps: add lsusb_Philips-PicoPix-1020.log
Antonio Ospite [Tue, 30 Dec 2014 22:47:04 +0000 (23:47 +0100)]
examples: fix handling optional libraries in target_link_libraries()
am7xxx-play can compile just fine without XCB, but cmake was being
overly strict when XCB was missing.
Antonio Ospite [Sat, 22 Nov 2014 23:03:08 +0000 (00:03 +0100)]
am7xxx-play: improve a comment
Antonio Ospite [Sat, 22 Nov 2014 22:58:36 +0000 (23:58 +0100)]
am7xxx-play: fix a possible case of use before initialization
The got_packet variable is assigned inside an internal "if" of the while
loop, but it is also used in the checks at the end of the while loop,
and it is possible to get to this part before having ever assigned the
variable, so in order to behave correctly initialize the variable before
the loop starts.
Antonio Ospite [Wed, 5 Nov 2014 10:38:19 +0000 (11:38 +0100)]
doc: update Doxyfile.in
In particular this fixes the following warnings from doxygen:
Warning: Tag `XML_SCHEMA' at line 235 of file `Doxyfile.in' has become obsolete.
This tag has been removed.
Warning: Tag `XML_DTD' at line 236 of file `Doxyfile.in' has become obsolete.
This tag has been removed.
Antonio Ospite [Mon, 7 Jul 2014 13:53:22 +0000 (15:53 +0200)]
examples: the examples were always meant to be all under GPL-3+
Antonio Ospite [Thu, 15 May 2014 10:44:07 +0000 (12:44 +0200)]
Release version 0.1.5
Antonio Ospite [Thu, 15 May 2014 10:33:41 +0000 (12:33 +0200)]
HACKING.asciidoc: update Windows cross-build section to use libav10
Antonio Ospite [Mon, 12 May 2014 21:02:28 +0000 (23:02 +0200)]
am7xxx-play: port to libav10
Antonio Ospite [Thu, 8 May 2014 10:59:02 +0000 (12:59 +0200)]
Update email address and copyright years
Antonio Ospite [Thu, 8 May 2014 10:37:44 +0000 (12:37 +0200)]
contrib/performance/README: fix some typos
Antonio Ospite [Thu, 8 May 2014 10:27:23 +0000 (12:27 +0200)]
cosmetics: remove some trailing spaces
Antonio Ospite [Thu, 8 May 2014 10:26:04 +0000 (12:26 +0200)]
README.asciidoc: update instructions to test libam7xxx on Windows
Antonio Ospite [Thu, 8 May 2014 10:15:16 +0000 (12:15 +0200)]
HACKING.asciidoc: update the build instructions for Windows
Antonio Ospite [Thu, 8 May 2014 09:37:34 +0000 (11:37 +0200)]
am7xxx: don't use partial designated initializers
Compilers may warn about missing fields in initializers when more checks
are enabled with STRICT_COMPILATION_CHECKS=ON:
.../src/am7xxx.c:1131:31: error: missing field 'direction' initializer [-Werror,-Wmissing-field-initializers]
struct am7xxx_header h = { 0 };
^
1 error generated.
Antonio Ospite [Thu, 8 May 2014 09:22:31 +0000 (11:22 +0200)]
am7xxx: add a portable_endian.h
Add a portable_endian.h to define platform specific implementations for
the functions found on most unix-like systems in endian.h.
Antonio Ospite [Wed, 7 May 2014 19:40:44 +0000 (21:40 +0200)]
Merge branch 'zoom-tele-picopix'
Antonio Ospite [Wed, 7 May 2014 16:05:11 +0000 (18:05 +0200)]
am7xxx-play: allow setting the AM7XXX_ZOOM_TELE zoom mode
Antonio Ospite [Wed, 7 May 2014 16:04:16 +0000 (18:04 +0200)]
picoproj: allow setting the AM7XXX_ZOOM_TELE zoom mode
Antonio Ospite [Wed, 7 May 2014 16:01:58 +0000 (18:01 +0200)]
am7xxx: implement the set_zoom_mode() operation for the PicoPix 2055
Apparently AM7XXX_ZOOM_ORIGINAL and AM7XXX_ZOOM_TELE are the only
supported zoom modes on the PicoPix 2055.
Antonio Ospite [Wed, 7 May 2014 15:59:30 +0000 (17:59 +0200)]
am7xxx: add support for a new AM7XXX_ZOOM_TELE zoom mode
Some PicoPix projectors support a different zoom mode than the Acer
C110, in this mode the image uses a different lens distortion but the
frame aspect ratio does not change.
Antonio Ospite [Wed, 7 May 2014 15:46:50 +0000 (17:46 +0200)]
am7xxx: add a msleep() implementation in tools.[ch]
Antonio Ospite [Wed, 4 Dec 2013 10:32:26 +0000 (11:32 +0100)]
Merge branch 'powermode-PicoPix2055'
Antonio Ospite [Thu, 28 Nov 2013 14:23:04 +0000 (15:23 +0100)]
am7xxx: add support for setting the power mode on the PicoPix 2055
Antonio Ospite [Thu, 28 Nov 2013 14:13:12 +0000 (15:13 +0100)]
am7xxx: dump fields of unknown packet types
Allow dumping the payload fields as generic header_data, this is useful
when the packet type cannot be handled explicitly because the meaning of
the data is not known.
Antonio Ospite [Thu, 28 Nov 2013 13:57:09 +0000 (14:57 +0100)]
am7xxx: factor out a send_command() function
Some packet types do not carry any header_data and thus they can be seen
as commands issued to the device.
Add a send_command() function to handle such packet types, others of
them are going to be added in future commits.
Antonio Ospite [Thu, 28 Nov 2013 12:49:52 +0000 (13:49 +0100)]
am7xxx: switch from device quirks to device ops
Define device specific operations in order to allow supporting different
implementation of a given operation by different device models.
For instance this will be used to add an alternative implementation of
the 'set_power_mode' operation for the Philips/SagemCom PicoPix 2055
projector.
For now device specific callbacks are used only for the 'set_power_mode'
and 'set_zoom_mode' operations.
Antonio Ospite [Mon, 18 Nov 2013 13:41:42 +0000 (14:41 +0100)]
doc/lsusb_dumps: add lsusb_Philips-PicoPix-2055.log
Antonio Ospite [Mon, 18 Nov 2013 13:38:26 +0000 (14:38 +0100)]
doc/lsusb_dumps: strip trailing spaces
This makes it easier to compare different files with diff.
Antonio Ospite [Mon, 18 Nov 2013 13:35:37 +0000 (14:35 +0100)]
doc/man: misc fixes to man pages
The help text in particular was copied from the output of the '-h'
option which was referring to "this help message", this was OK on the
command line but it sounds a little off in a man page.
Antonio Ospite [Wed, 30 Oct 2013 09:41:06 +0000 (10:41 +0100)]
CMakeLists.txt: define DEBUG=1 only when CMAKE_BUILD_TYPE=Debug
When building with CMAKE_BUILD_TYPE=RelWithDebInfo the development debug
code should not be enabled, so don't define DEBUG=1 in DEBUG_FLAGS as
this will end up being both in CMAKE_C_FLAGS_DEBUG and
CMAKE_C_FLAGS_RELWITHDEBINFO.
Instead define DEBUG=1 only for CMAKE_C_FLAGS_DEBUG so it gets used only
when CMAKE_BUILD_TYPE=Debug.
Antonio Ospite [Sun, 13 Oct 2013 13:50:11 +0000 (15:50 +0200)]
HACKING.asciidoc: fix the url of the avcodec_encode_video2 patch
Antonio Ospite [Sat, 7 Sep 2013 15:30:28 +0000 (17:30 +0200)]
am7xxx-play: cosmetics, fix coding style
Antonio Ospite [Sat, 3 Aug 2013 13:14:34 +0000 (15:14 +0200)]
am7xxx: add quirks for Philips/Sagemcom PicoPix 2055
The Philips/Sagemcom PicoPix 2055 does not support some operations:
- setting the power mode confuses the firmware
- setting the zoom mode has no effect whatsoever
Disable these operations.
Thanks-to: Luca Bompani
Antonio Ospite [Sun, 28 Jul 2013 21:22:15 +0000 (23:22 +0200)]
NEWS: fix a typo s/mode/more/
Antonio Ospite [Sun, 28 Jul 2013 09:15:18 +0000 (11:15 +0200)]
Release version 0.1.4
Antonio Ospite [Sat, 27 Jul 2013 23:11:42 +0000 (01:11 +0200)]
contrib: add some benchmarking data about am7xxx_send_image_async
Antonio Ospite [Sat, 27 Jul 2013 22:50:30 +0000 (00:50 +0200)]
am7xxx-play: fix a crash when a packet cannot be encoded
Antonio Ospite [Sat, 27 Jul 2013 22:38:13 +0000 (00:38 +0200)]
am7xxx-play: don't initialize variables when not needed
Antonio Ospite [Sat, 27 Jul 2013 22:19:04 +0000 (00:19 +0200)]
TODO: mention that atoi() must go away
Antonio Ospite [Sat, 27 Jul 2013 22:10:08 +0000 (00:10 +0200)]
picoproj: get rid of exit(), return more meaningful values to userspace
Maybe the values returned by picoproj will never be used, but it is
better to use a clean style in example code.
Antonio Ospite [Sat, 27 Jul 2013 21:47:26 +0000 (23:47 +0200)]
HACKING.asciidoc: add commands to compile with clang
Antonio Ospite [Sat, 27 Jul 2013 21:44:45 +0000 (23:44 +0200)]
HACKING.asciidoc: add an example of testing am7xxx-play with valgrind
This will make testing easier as the line can be copied and pasted.
Antonio Ospite [Sat, 27 Jul 2013 21:36:08 +0000 (23:36 +0200)]
doc: update Doxyfile.in
Antonio Ospite [Sat, 27 Jul 2013 21:27:01 +0000 (23:27 +0200)]
contrib: add a udev rule to invoke am7xxx-modeswitch
This will be useful on embedded systems like RaspberryPi or BeagleBone
where users may not want the whole usb-modeswitch package to be
installed just for libam7xxx.
Antonio Ospite [Sat, 27 Jul 2013 21:25:34 +0000 (23:25 +0200)]
Rename am7xxx_mode_switch to am7xxx-modeswitch
The new name matches more closely the name of the binary used in recent
usb-modeswitch versions.
Antonio Ospite [Sat, 27 Jul 2013 21:02:34 +0000 (23:02 +0200)]
TODO: mention that data types could be improved in the API
Antonio Ospite [Sat, 27 Jul 2013 21:01:16 +0000 (23:01 +0200)]
picoporj: fix another -Wshorten-64-to-32 warning from clang
../examples/picoproj.c:196:8: error: implicit conversion loses integer precision: 'size_t'
(aka 'unsigned long') to 'int' [-Werror,-Wshorten-64-to-32]
ret = fread(image, size, 1, image_fp);
~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Antonio Ospite [Sat, 27 Jul 2013 20:55:53 +0000 (22:55 +0200)]
picoproj: silence a -Wshorten-64-to-32 warning from clang
../examples/picoproj.c:187:12: error: implicit conversion loses integer precision: '__off_t' (aka 'long')
to 'unsigned int' [-Werror,-Wshorten-64-to-32]
size = st.st_size;
~ ~~~^~~~~~~
Antonio Ospite [Sat, 27 Jul 2013 20:53:19 +0000 (22:53 +0200)]
CMakeLists.txt: disable -Wsign-conversion warnings
Antonio Ospite [Sat, 27 Jul 2013 19:33:28 +0000 (21:33 +0200)]
am7xxx: fix a clang warning
../src/am7xxx.c:685:16: error: implicit conversion loses integer precision: 'ssize_t' (aka 'long') to 'int'
[-Werror,-Wshorten-64-to-32]
num_devices = libusb_get_device_list(ctx->usb_context, &list);
~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
libusb_get_device_list() returns ssize_t, just use it for the num_devices
variable.
Antonio Ospite [Sat, 27 Jul 2013 18:55:48 +0000 (20:55 +0200)]
examples: silence a couple of clang warnings
Silence a couple of warnings given when compiling with clang:
../examples/am7xxx-play.c:764:28: warning: will never be executed [-Wunreachable-code]
AM7XXX_ZOOM_ORIGINAL, AM7XXX_ZOOM_TEST);
^~~~~~~~~~~~~~~~
../examples/am7xxx-play.c:748:24: warning: will never be executed [-Wunreachable-code]
AM7XXX_POWER_OFF, AM7XXX_POWER_TURBO);
2 warnings generated.
../examples/picoproj.c:142:28: warning: will never be executed [-Wunreachable-code]
AM7XXX_ZOOM_ORIGINAL, AM7XXX_ZOOM_TEST);
^~~~~~~~~~~~~~~~
../examples/picoproj.c:127:24: warning: will never be executed [-Wunreachable-code]
AM7XXX_POWER_OFF, AM7XXX_POWER_TURBO);
2 warnings generated.
The warnings refer to the default case of a switch statement over an
enum variable, clang fails to understand that the default case can still
be reached because any integer value can be assigned to the enum
variables via the atoi() function. Work around the warning.
The behavior is also documented here:
http://lists.cs.uiuc.edu/pipermail/cfe-dev/2012-September/024174.html
In general assigning arbitrary values to enum variables will just be
weird; using enums in read mode is always safe tho.