11 years agokinect_fetch_fw: mention wget in the internal documentation
Antonio Ospite [Sun, 27 Nov 2011 08:45:54 +0000 (09:45 +0100)]
kinect_fetch_fw: mention wget in the internal documentation

11 years agokinect_upload_fw: specify libraries after objects in the linking command
Antonio Ospite [Sat, 26 Nov 2011 23:34:57 +0000 (00:34 +0100)]
kinect_upload_fw: specify libraries after objects in the linking command

When some options, like -Wl,--as-needed, are passed to the compiler (and
then to the liker) the order of linking options becomes important:
libraries must be specified after the objects in the linking command.

The implicit rule used was more or less:
  kinect_upload_fw: kinect_upload_fw.o
      $(CC) $(LDFLAGS) $^ $(LOADLIBES) $(LDLIBS) -o $@

with LDFLAGS expanded before $^ (the objects); use LDLIBS to specify the
libraries instead, which is expanded after $^.

More details in

11 years agoAdd info about building kinect_upload_fw for MS Windows
Antonio Ospite [Fri, 4 Nov 2011 23:10:30 +0000 (00:10 +0100)]
Add info about building kinect_upload_fw for MS Windows

11 years agoUpdate .gitignore
Antonio Ospite [Fri, 4 Nov 2011 22:59:19 +0000 (23:59 +0100)]
Update .gitignore

Add endian and endian.h, add any *.o file and even *.exe ones as we are
going to add instructions about how to build kinect_upload_fw on MS
Windows too.

11 years agokinect_upload_fw: fix reading the firmware file on Windows
Antonio Ospite [Fri, 21 Oct 2011 20:19:37 +0000 (22:19 +0200)]
kinect_upload_fw: fix reading the firmware file on Windows

In MS Windows fread() behaves differently than on UNIX systems when
reading binary files if we do not specify "b" in the mode when opening
the file.

Quoting FOPEN(3) man page:

 ... the 'b' is ignored on all POSIX conforming systems, including
 Linux. (Other systems may treat text files and binary files
 differently, and adding the 'b' may be a good idea if you do I/O to a
 binary file and expect that your program may be ported to non-UNIX

11 years agokinect_upload_fw: fix a mingw32 compilation error
Antonio Ospite [Fri, 14 Oct 2011 19:57:12 +0000 (21:57 +0200)]
kinect_upload_fw: fix a mingw32 compilation error

When compiling with i586-mingw32msvci-g++ We get these errors:

kinect_upload_fw.c: In function ‘int main(int, char**)’:
kinect_upload_fw.c:236: error: jump to label ‘cleanup’
kinect_upload_fw.c:179: error:   from here
kinect_upload_fw.c:185: error:   crosses initialization of ‘uint32_t addr’
kinect_upload_fw.c:238: error: jump to label ‘fail_libusb_open’
kinect_upload_fw.c:155: error:   from here
kinect_upload_fw.c:185: error:   crosses initialization of ‘uint32_t addr’

Declaring and initializing a variable in the same statement after a goto
is allowed in C but not in C++; look at C++ specification Section 6.7
Paragraph 3.

Work around that by splitting 'addr' declaration and initialization.

11 years agokinect_upload_fw: fix generating endian.h before compiling kinect_upload_fw
Antonio Ospite [Thu, 13 Oct 2011 21:35:10 +0000 (23:35 +0200)]
kinect_upload_fw: fix generating endian.h before compiling kinect_upload_fw

Generate endian.h before compiling kinect_upload_fw, this is how it
should have been done from the start.

Until now the system-wide endian.h was being picked up instead, making
the whole compile-time-endian-detection mechanism useless; now we are
actually using it.

11 years agokinect_upload_fw: disable some compiler flags
Antonio Ospite [Thu, 13 Oct 2011 21:31:11 +0000 (23:31 +0200)]
kinect_upload_fw: disable some compiler flags

Disable some compiler flags to be more compatible with older setups:

  - vanilla libusb-1.0.8 makes compilation fail with -pedantic-errors

  - gcc versions older than 4.6 do not have -Wunused-but-set-variable

11 years agoAdd ChangeLog for v0.1 v0.1
Antonio Ospite [Wed, 12 Oct 2011 10:13:34 +0000 (12:13 +0200)]
Add ChangeLog for v0.1

11 years agokinect_upload_fw: fix a couple of minor warnings from 'sparse'
Antonio Ospite [Thu, 6 Oct 2011 12:49:01 +0000 (14:49 +0200)]
kinect_upload_fw: fix a couple of minor warnings from 'sparse'

Sparse is a Semantic Parser for C, it gives these warnings on

kinect_upload_fw.c:42:14: warning: symbol 'seq' was not declared. Should it be static?
kinect_upload_fw.c:149:26: warning: Using plain integer as NULL pointer

11 years agokinect_upload_fw: support architectures that are not little-endian
Antonio Ospite [Mon, 3 Oct 2011 14:22:36 +0000 (16:22 +0200)]
kinect_upload_fw: support architectures that are not little-endian

Add an endian.c program which will be used at compile time to generate
an endian.h file with the information about the endianness of the
architecture. This way we do not depend on any particular build system
to retrieve this information (libfreenect knows the endianness with the
help of Cmake, for instance).

This is inspired from the rdesktop project[1] and looks more portable
than relying on the system endian.h as its use is relatively new and not
standardized yet, even though there are proposals in that direction[2].

Finally fn_le32() implementation is ripped off from libfreenect.


11 years agokinect_fetch_fw: add a mechanism to check the integrity of the downloaded file
Antonio Ospite [Mon, 3 Oct 2011 13:55:28 +0000 (15:55 +0200)]
kinect_fetch_fw: add a mechanism to check the integrity of the downloaded file

11 years agokinect_fetch_fw: print error messages on stderr
Antonio Ospite [Mon, 3 Oct 2011 13:47:53 +0000 (15:47 +0200)]
kinect_fetch_fw: print error messages on stderr

11 years agokinect_upload_fw: really fix -Wformat warnings about sizeof()
Antonio Ospite [Fri, 30 Sep 2011 21:00:42 +0000 (23:00 +0200)]
kinect_upload_fw: really fix -Wformat warnings about sizeof()

Use "%zu" when printing the result of a sizeof(), this way the integer
conversion is done correctly taking into account the particular

On a PPC64 (PlayStation 3) we were getting:

kinect_upload_fw.c: In function ‘get_reply’:
kinect_upload_fw.c:99:3: warning: format ‘%lu’ expects argument of type ‘long unsigned int’, but argument 4 has type ‘unsigned int’ [-Wformat]
kinect_upload_fw.c: In function ‘main’:
kinect_upload_fw.c:169:3: warning: format ‘%lu’ expects argument of type ‘long unsigned int’, but argument 4 has type ‘unsigned int’ [-Wformat]
kinect_upload_fw.c:194:4: warning: format ‘%lu’ expects argument of type ‘long unsigned int’, but argument 4 has type ‘unsigned int’ [-Wformat]
kinect_upload_fw.c:220:3: warning: format ‘%lu’ expects argument of type ‘long unsigned int’, but argument 4 has type ‘unsigned int’ [-Wformat]

11 years agokinect_upload_fw: fix issues shown by valgrind --leak-check=full --show-reachable=yes
Antonio Ospite [Fri, 30 Sep 2011 11:59:17 +0000 (13:59 +0200)]
kinect_upload_fw: fix issues shown by valgrind --leak-check=full --show-reachable=yes

Fix a "possibly lost" issue due to a missing call to libusb_exit() when
exiting after libusb_open_device_with_vid_pid() fails.

Fix a "still reachable" issue due to a missing fclose().

11 years agokinect_upload_fw: cosmetic changes
Antonio Ospite [Fri, 30 Sep 2011 11:43:52 +0000 (13:43 +0200)]
kinect_upload_fw: cosmetic changes

  - Spaces after contitionals
  - Spaces after commas
  - Some newlines to increase readability
  - Print a error message to stderr

11 years agokinect_upload_fw: print more meaningful error message on failure
Antonio Ospite [Fri, 30 Sep 2011 11:38:42 +0000 (13:38 +0200)]
kinect_upload_fw: print more meaningful error message on failure

11 years agokinect_fetch_fw: return value from $() does not need to be quoted
Antonio Ospite [Fri, 30 Sep 2011 11:26:48 +0000 (13:26 +0200)]
kinect_fetch_fw: return value from $() does not need to be quoted

11 years agokinect_fetch_fw: make FW_DESTDIR an absolute path
Antonio Ospite [Fri, 30 Sep 2011 11:21:06 +0000 (13:21 +0200)]
kinect_fetch_fw: make FW_DESTDIR an absolute path

This allows passing relative paths as arguments and be sure they don't
end up being relative to the temporary directory.

Also remove the slash after DESTDIR to avoid double slash.

11 years agoChange description of kinect_fetch_fw
Antonio Ospite [Fri, 30 Sep 2011 10:54:46 +0000 (12:54 +0200)]
Change description of kinect_fetch_fw

11 years agoAdd more info in the README file
Antonio Ospite [Fri, 30 Sep 2011 09:31:01 +0000 (11:31 +0200)]
Add more info in the README file

11 years agokinect_upload_fw: fix a -Wstrict-aliasing warning
Antonio Ospite [Thu, 29 Sep 2011 21:20:26 +0000 (23:20 +0200)]
kinect_upload_fw: fix a -Wstrict-aliasing warning

kinect_upload_fw.c:87:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]

Use a union when there is the need to use the same memory for variables
of incompatible types (especially if they have different storage size).

11 years agokinect_upload_fw: fix assigning a string literal to a 'char *'
Antonio Ospite [Thu, 29 Sep 2011 21:13:09 +0000 (23:13 +0200)]
kinect_upload_fw: fix assigning a string literal to a 'char *'

kinect_upload_fw.c:118:19: error: initialization discards ‘const’ qualifier from pointer target type

A string literals can be seen as "const char *" or as array of chars,
I like the second interpretation better.

11 years agokinect_upload_fw: fix -Wsign-compare and -Wpointer-sign
Antonio Ospite [Thu, 29 Sep 2011 21:11:21 +0000 (23:11 +0200)]
kinect_upload_fw: fix -Wsign-compare and -Wpointer-sign

kinect_upload_fw.c:99:25: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
kinect_upload_fw.c:188:4: error: pointer targets in passing argument 3 of ‘libusb_bulk_transfer’ differ in signedness [-Wpointer-sign]

11 years agokinect_upload_fw: fix -Wformat warnings
Antonio Ospite [Thu, 29 Sep 2011 21:09:48 +0000 (23:09 +0200)]
kinect_upload_fw: fix -Wformat warnings

kinect_upload_fw.c:92:3: warning: format ‘%d’ expects argument of type ‘int’, but argument 4 has type ‘long unsigned int’ [-Wformat]
kinect_upload_fw.c:157:3: warning: format ‘%d’ expects argument of type ‘int’, but argument 4 has type ‘long unsigned int’ [-Wformat]
kinect_upload_fw.c:182:4: warning: format ‘%d’ expects argument of type ‘int’, but argument 4 has type ‘long unsigned int’ [-Wformat]
kinect_upload_fw.c:208:3: warning: format ‘%d’ expects argument of type ‘int’, but argument 4 has type ‘long unsigned int’ [-Wformat]

11 years agokinect_upload_fw: fix -Wmissing-prototypes warning
Antonio Ospite [Thu, 29 Sep 2011 21:05:58 +0000 (23:05 +0200)]
kinect_upload_fw: fix -Wmissing-prototypes warning

kinect_upload_fw.c:60:6: warning: no previous prototype for ‘dump_bl_cmd’ [-Wmissing-prototypes]
kinect_upload_fw.c:67:5: warning: no previous prototype for ‘get_first_reply’ [-Wmissing-prototypes]
kinect_upload_fw.c:86:5: warning: no previous prototype for ‘get_reply’ [-Wmissing-prototypes]

GCC emits "missing-prototypes" argument for _public_ functions without a
prototype, making them static is the right fix here.

11 years agokinect_upload_fw: fix -Wold-style-definition warnings
Antonio Ospite [Thu, 29 Sep 2011 21:04:24 +0000 (23:04 +0200)]
kinect_upload_fw: fix -Wold-style-definition warnings

kinect_upload_fw.c:67:5: warning: old-style function definition [-Wold-style-definition]
kinect_upload_fw.c:86:5: warning: old-style function definition [-Wold-style-definition]

11 years agokinect_upload_fw: fix spacing in Makefile, use simple expansion to set bindir
Antonio Ospite [Thu, 29 Sep 2011 20:06:26 +0000 (22:06 +0200)]
kinect_upload_fw: fix spacing in Makefile, use simple expansion to set bindir

11 years agokinect_upload_fw: enable more warnings in Makefile
Antonio Ospite [Thu, 29 Sep 2011 20:05:35 +0000 (22:05 +0200)]
kinect_upload_fw: enable more warnings in Makefile

11 years agokinect_upload_fw: remove some trailing spaces
Antonio Ospite [Sat, 17 Sep 2011 19:46:55 +0000 (21:46 +0200)]
kinect_upload_fw: remove some trailing spaces

11 years agoMakefile: Add a rule to generate a GNU style Changelog
Antonio Ospite [Thu, 29 Sep 2011 16:19:23 +0000 (18:19 +0200)]
Makefile: Add a rule to generate a GNU style Changelog

Lintian, the Debian package checker issues a warning when the upstream
does not provide a Changelog, now we can easily generate one for tagged
release using "make changelog".

11 years agoAdd a .gitignore file
Antonio Ospite [Sun, 11 Sep 2011 22:49:16 +0000 (00:49 +0200)]
Add a .gitignore file

11 years agoInitial import of the other pieces of knect_audio_setup
Antonio Ospite [Sun, 11 Sep 2011 18:42:39 +0000 (20:42 +0200)]
Initial import of the other pieces of knect_audio_setup

11 years agoInitial import of kinect_upload_fw
Drew Fisher [Sun, 11 Sep 2011 18:35:19 +0000 (20:35 +0200)]
Initial import of kinect_upload_fw

kinect_upload_fw is a program to upload the Usb Audio Class firmware to
the Microsoft Kinect sensor device. Before the firmware is uploaded the
device shows up as a generic usb device with a bulk endpoint, after the
firmware upload a reenumeration takes place and a Usb Audio Class device
becomes available.