diff --git a/build/jam/OptionalBuildFeatures b/build/jam/OptionalBuildFeatures index 789c4e908e..8cdc51972b 100644 --- a/build/jam/OptionalBuildFeatures +++ b/build/jam/OptionalBuildFeatures @@ -12,9 +12,9 @@ if [ IsOptionalHaikuImagePackageAdded OpenSSL ] { } if $(HAIKU_GCC_VERSION[1]) >= 4 { - HAIKU_OPENSSL_PACKAGE = openssl-1.0.0e-x86-gcc4-2011-09-08.zip ; + HAIKU_OPENSSL_PACKAGE = openssl-1.0.0j-x86-gcc4-2012-06-19.zip ; } else { - HAIKU_OPENSSL_PACKAGE = openssl-1.0.0e-x86-gcc2-2011-09-09.zip ; + HAIKU_OPENSSL_PACKAGE = openssl-1.0.0j-x86-gcc2-2012-06-19.zip ; } local baseURL = http://haiku-files.org/files/optional-packages ; @@ -337,11 +337,11 @@ if $(TARGET_ARCH) = x86 { local freetypeBaseURL = http://haiku-files.org/files/optional-packages/lib ; if $(TARGET_ARCH) = ppc || $(TARGET_ARCH) = x86 { if $(TARGET_ARCH) = ppc { - HAIKU_FREETYPE_FILE = freetype-2.4.6-ppc-gcc4-2012-03-17.zip ; + HAIKU_FREETYPE_FILE = freetype-2.4.9-ppc-gcc4-2012-06-26.zip ; } else if $(HAIKU_GCC_VERSION[1]) >= 4 { - HAIKU_FREETYPE_FILE = freetype-2.4.6-x86-gcc4-2012-03-15.zip ; + HAIKU_FREETYPE_FILE = freetype-2.4.9-x86-gcc4-2012-06-15.zip ; } else { - HAIKU_FREETYPE_FILE = freetype-2.4.6-x86-gcc2-2012-03-15.zip ; + HAIKU_FREETYPE_FILE = freetype-2.4.9-x86-gcc2-2012-06-19.zip ; } local freetypeZipFile = [ DownloadFile $(HAIKU_FREETYPE_FILE) @@ -361,7 +361,7 @@ if $(TARGET_ARCH) = ppc || $(TARGET_ARCH) = x86 { : extracted-freetype ] ; HAIKU_FREETYPE_CURRENT_LIB = [ ExtractArchive $(HAIKU_FREETYPE_DIR) : - common/lib/libfreetype.so.6.7.1 + common/lib/libfreetype.so.6.8.1 : $(freetypeZipFile) : extracted-freetype ] ; Depends $(HAIKU_FREETYPE_LIB) $(HAIKU_FREETYPE_CURRENT_LIB) : $(HAIKU_FREETYPE_HEADERS_DEPENDENCY) ; @@ -385,7 +385,7 @@ if [ IsOptionalHaikuImagePackageAdded TagLib ] { } local baseURL = http://haiku-files.org/files/optional-packages ; -HAIKU_TAGLIB_PACKAGE = taglib-1.6.3-r1a2-x86-gcc2-2010-04-25.zip ; +HAIKU_TAGLIB_PACKAGE = taglib-1.6.3-r1a3-x86-gcc2-2011-05-20.zip ; HAIKU_TAGLIB_URL = $(baseURL)/$(HAIKU_TAGLIB_PACKAGE) ; if $(HAIKU_BUILD_FEATURE_TAGLIB) { diff --git a/build/jam/OptionalLibPackages b/build/jam/OptionalLibPackages index 82042787c3..e2f58aa5e4 100644 --- a/build/jam/OptionalLibPackages +++ b/build/jam/OptionalLibPackages @@ -227,78 +227,78 @@ if [ IsOptionalHaikuImagePackageAdded SDLLibs ] { Echo "No optional package SDLLibs available for $(TARGET_ARCH)" ; } else if $(HAIKU_GCC_VERSION[1]) >= 4 { InstallOptionalHaikuImagePackage - libsdl-1.2-hg-r1a3-x86-gcc4-2011-05-29.zip - : $(baseURL)/lib/libsdl-1.2-hg-r1a3-x86-gcc4-2011-05-29.zip ; + libsdl-1.2.15-x86-gcc4-2012-05-31.zip + : $(baseURL)/lib/libsdl-1.2.15-x86-gcc4-2012-05-31.zip ; InstallOptionalHaikuImagePackage - guilib-1.2.1-r1a3-x86-gcc4-2011-05-26.zip - : $(baseURL)/lib/guilib-1.2.1-r1a3-x86-gcc4-2011-05-26.zip ; + guilib-1.2.1-x86-gcc4-2012-05-31.zip + : $(baseURL)/lib/guilib-1.2.1-x86-gcc4-2012-05-31.zip ; InstallOptionalHaikuImagePackage - sdl-gfx-2.0.22-r1a3-x86-gcc4-2011-05-26.zip - : $(baseURL)/lib/sdl-gfx-2.0.22-r1a3-x86-gcc4-2011-05-26.zip ; + sdl-gfx-2.0.23-x86-gcc4-2011-05-31.zip + : $(baseURL)/lib/sdl-gfx-2.0.23-x86-gcc4-2012-05-31.zip ; InstallOptionalHaikuImagePackage - sdl-image-1.2.10-r1a3-x86-gcc4-2011-05-26.zip - : $(baseURL)/lib/sdl-image-1.2.10-r1a3-x86-gcc4-2011-05-26.zip ; + sdl-image-1.2.12-x86-gcc4-2012-05-31.zip + : $(baseURL)/lib/sdl-image-1.2.12-x86-gcc4-2011-05-31.zip ; InstallOptionalHaikuImagePackage - sdl-mixer-1.2.11-r1a3-x86-gcc4-2011-05-26.zip - : $(baseURL)/lib/sdl-mixer-1.2.11-r1a3-x86-gcc4-2011-05-26.zip ; + sdl-mixer-1.2.11-x86-gcc4-2012-05-31.zip + : $(baseURL)/lib/sdl-mixer-1.2.11-x86-gcc4-2012-05-31.zip ; InstallOptionalHaikuImagePackage - sdl-net-1.2.7-r1a3-x86-gcc4-2011-05-26.zip - : $(baseURL)/lib/sdl-net-1.2.7-r1a3-x86-gcc4-2011-05-26.zip ; + sdl-net-1.2.8-x86-gcc4-2012-05-31.zip + : $(baseURL)/lib/sdl-net-1.2.8-x86-gcc4-2012-05-31.zip ; InstallOptionalHaikuImagePackage - sdl-sound-1.0.3-r1a3-x86-gcc4-2011-05-26.zip - : $(baseURL)/lib/sdl-sound-1.0.3-r1a3-x86-gcc4-2011-05-26.zip ; + sdl-sound-1.0.3-x86-gcc4-2012-05-31.zip + : $(baseURL)/lib/sdl-sound-1.0.3-x86-gcc4-2012-05-31.zip ; InstallOptionalHaikuImagePackage sdl-rtf-0.1.0-r1a3-x86-gcc4-2011-05-26.zip : $(baseURL)/lib/sdl-rtf-0.1.0-r1a3-x86-gcc4-2011-05-26.zip ; InstallOptionalHaikuImagePackage - sdl-ttf-2.0.10-r1a3-x86-gcc4-2011-05-26.zip - : $(baseURL)/lib/sdl-ttf-2.0.10-r1a3-x86-gcc4-2011-05-26.zip ; + sdl-ttf-2.0.11-x86-gcc4-2012-05-31.zip + : $(baseURL)/lib/sdl-ttf-2.0.11-x86-gcc4-2012-05-31.zip ; InstallOptionalHaikuImagePackage - sge-030809-r1a3-x86-gcc4-2011-05-26.zip - : $(baseURL)/lib/sge-030809-r1a3-x86-gcc4-2011-05-26.zip ; + sge-030809-x86-gcc4-2012-05-31.zip + : $(baseURL)/lib/sge-030809-x86-gcc4-2012-05-31.zip ; InstallOptionalHaikuImagePackage - smjpeg-0.2.1-r1a3-x86-gcc4-2011-05-26.zip - : $(baseURL)/lib/smjpeg-0.2.1-r1a3-x86-gcc4-2011-05-26.zip ; + smjpeg-0.2.1-x86-gcc4-2012-05-31.zip + : $(baseURL)/lib/smjpeg-0.2.1-x86-gcc4-2012-05-31.zip ; InstallOptionalHaikuImagePackage - smpeg-0.4.5-r1a3-x86-gcc4-2011-05-26.zip - : $(baseURL)/lib/smpeg-0.4.5-r1a3-x86-gcc4-2011-05-26.zip ; + smpeg-0.4.5-x86-gcc4-2011-05-31.zip + : $(baseURL)/lib/smpeg-0.4.5-x86-gcc4-2012-05-31.zip ; } else { InstallOptionalHaikuImagePackage - libsdl-1.2-hg-r1a3-x86-gcc2-2011-05-29.zip - : $(baseURL)/lib/libsdl-1.2-hg-r1a3-x86-gcc2-2011-05-29.zip ; + libsdl-1.2.15-x86-gcc2-2012-06-24.zip + : $(baseURL)/lib/libsdl-1.2.15-x86-gcc2-2012-06-24.zip ; InstallOptionalHaikuImagePackage - guilib-1.2.1-r1a3-x86-gcc2-2011-05-19.zip - : $(baseURL)/lib/guilib-1.2.1-r1a3-x86-gcc2-2011-05-19.zip ; + guilib-1.2.1-x86-gcc2-2012-06-24.zip + : $(baseURL)/lib/guilib-1.2.1-x86-gcc2-2012-06-24.zip ; InstallOptionalHaikuImagePackage - sdl-gfx-2.0.22-r1a3-x86-gcc2-2011-05-19.zip - : $(baseURL)/lib/sdl-gfx-2.0.22-r1a3-x86-gcc2-2011-05-19.zip ; + sdl-gfx-2.0.23-x86-gcc2-2012-06-24.zip + : $(baseURL)/lib/sdl-gfx-2.0.23-x86-gcc2-2012-06-24.zip ; InstallOptionalHaikuImagePackage - sdl-image-1.2.10-x86-r1a3-x86-gcc2-2011-05-19.zip - : $(baseURL)/lib/sdl-image-1.2.10-r1a3-x86-gcc2-2011-05-19.zip ; + sdl-image-1.2.12-x86-x86-gcc2-2012-06-24.zip + : $(baseURL)/lib/sdl-image-1.2.12-x86-gcc2-2012-06-24.zip ; InstallOptionalHaikuImagePackage - sdl-mixer-1.2.11-r1a3-x86-gcc2-2011-05-19.zip - : $(baseURL)/lib/sdl-mixer-1.2.11-r1a3-x86-gcc2-2011-05-19.zip ; + sdl-mixer-1.2.11-x86-gcc2-2012-06-25.zip + : $(baseURL)/lib/sdl-mixer-1.2.11-x86-gcc2-2012-06-25.zip ; InstallOptionalHaikuImagePackage - sdl-net-1.2.7-r1a3-x86-gcc2-2011-05-19.zip - : $(baseURL)/lib/sdl-net-1.2.7-r1a3-x86-gcc2-2011-05-19.zip ; + sdl-net-1.2.8-x86-gcc2-2012-06-24.zip + : $(baseURL)/lib/sdl-net-1.2.8-x86-gcc2-2012-06-24.zip ; InstallOptionalHaikuImagePackage - sdl-sound-1.0.3-r1a3-x86-gcc2-2011-05-19.zip - : $(baseURL)/lib/sdl-sound-1.0.3-r1a3-x86-gcc2-2011-05-19.zip ; + sdl-sound-1.0.3-x86-gcc2-2012-06-24.zip + : $(baseURL)/lib/sdl-sound-1.0.3-x86-gcc2-2012-06-24.zip ; InstallOptionalHaikuImagePackage sdl-rtf-0.1.0-r1a3-x86-gcc2-2011-05-20.zip : $(baseURL)/lib/sdl-rtf-0.1.0-r1a3-x86-gcc2-2011-05-20.zip ; InstallOptionalHaikuImagePackage - sdl-ttf-2.0.10-r1a3-x86-gcc2-2011-05-19.zip - : $(baseURL)/lib/sdl-ttf-2.0.10-r1a3-x86-gcc2-2011-05-19.zip ; + sdl-ttf-2.0.11-x86-gcc2-2012-06-24.zip + : $(baseURL)/lib/sdl-ttf-2.0.11-x86-gcc2-2012-06-24.zip ; InstallOptionalHaikuImagePackage - sge-030809-r1a3-x86-gcc2-2011-05-19.zip - : $(baseURL)/lib/sge-030809-r1a3-x86-gcc2-2011-05-19.zip ; + sge-030809-x86-gcc2-2012-06-24.zip + : $(baseURL)/lib/sge-030809-x86-gcc2-2012-06-24.zip ; InstallOptionalHaikuImagePackage - smjpeg-0.2.1-r1a3-x86-gcc2-2011-05-19.zip - : $(baseURL)/lib/smjpeg-0.2.1-r1a3-x86-gcc2-2011-05-19.zip ; + smjpeg-0.2.1-x86-gcc2-2012-06-24.zip + : $(baseURL)/lib/smjpeg-0.2.1-x86-gcc2-2012-06-24.zip ; InstallOptionalHaikuImagePackage - smpeg-0.4.5-r1a3-x86-gcc2-2011-05-20.zip - : $(baseURL)/lib/smpeg-0.4.5-r1a3-x86-gcc2-2011-05-20.zip ; + smpeg-0.4.5-x86-gcc2-2012-06-24.zip + : $(baseURL)/lib/smpeg-0.4.5-x86-gcc2-2012-06-24.zip ; } } diff --git a/build/jam/OptionalPackageDependencies b/build/jam/OptionalPackageDependencies index a706c5387f..92d475d54d 100644 --- a/build/jam/OptionalPackageDependencies +++ b/build/jam/OptionalPackageDependencies @@ -17,6 +17,7 @@ OptionalPackageDependencies Development : DevelopmentBase Perl ; OptionalPackageDependencies DevelopmentPowerPC : DevelopmentMin ; OptionalPackageDependencies GetText : LibIconv ; OptionalPackageDependencies Git : Expat Curl OpenSSL LibIconv ; +OptionalPackageDependencies GitDoc : Man Git ; OptionalPackageDependencies ICU-devel : DevelopmentBase ; OptionalPackageDependencies LibLayout : DevelopmentBase ; OptionalPackageDependencies Man : Groff ; diff --git a/build/jam/OptionalPackages b/build/jam/OptionalPackages index 533fd73bcb..c1639dfb28 100644 --- a/build/jam/OptionalPackages +++ b/build/jam/OptionalPackages @@ -50,6 +50,7 @@ if $(HAIKU_ADD_ALTERNATIVE_GCC_LIBS) = 1 # friss - RSS/ATOM/... feeds reader # GetText - a framework to help produce multi-lingual messages. # Git - the distributed version control system +# GitDoc - documentation for the distributed version control system # GPerf - the perfect hash function generator. # Groff - text formatter used for man pages # ICU-devel - the headers and lib-links for ICU (for development) @@ -122,13 +123,13 @@ if [ IsOptionalHaikuImagePackageAdded APR ] { Echo "No optional package APR available for $(TARGET_ARCH)" ; } else if $(HAIKU_GCC_VERSION[1]) >= 4 { InstallOptionalHaikuImagePackage - apr-1.4.5-x86-gcc4-2011-08-03.zip - : $(baseURL)/apr-1.4.5-x86-gcc4-2011-08-03.zip + apr-1.4.6-x86-gcc4-2012-06-19.zip + : $(baseURL)/apr-1.4.6-x86-gcc4-2012-06-19.zip : : true ; } else { InstallOptionalHaikuImagePackage - apr-1.4.5-x86-gcc2-2011-08-02.zip - : $(baseURL)/apr-1.4.5-x86-gcc2-2011-08-02.zip + apr-1.4.6-x86-gcc2-2012-06-19.zip + : $(baseURL)/apr-1.4.6-x86-gcc2-2012-06-19.zip : : true ; } } @@ -140,13 +141,13 @@ if [ IsOptionalHaikuImagePackageAdded APR-util ] { Echo "No optional package APR-util available for $(TARGET_ARCH)" ; } else if $(HAIKU_GCC_VERSION[1]) >= 4 { InstallOptionalHaikuImagePackage - apr-util-1.3.12-x86-gcc4-2011-08-03.zip - : $(baseURL)/apr-util-1.3.12-x86-gcc4-2011-08-03.zip + apr-util-1.4.1-x86-gcc4-2012-06-19.zip + : $(baseURL)/apr-util-1.4.1-x86-gcc4-2012-06-19.zip : : true ; } else { InstallOptionalHaikuImagePackage - apr-util-1.3.12-x86-gcc2-2011-08-02.zip - : $(baseURL)/apr-util-1.3.12-x86-gcc2-2011-08-02.zip + apr-util-1.4.1-x86-gcc2-2012-06-19.zip + : $(baseURL)/apr-util-1.4.1-x86-gcc2-2012-06-19.zip : : true ; } } @@ -173,11 +174,11 @@ if [ IsOptionalHaikuImagePackageAdded Bazaar ] { if $(TARGET_ARCH) != x86 { Echo "No optional package Bazaar available for $(TARGET_ARCH)" ; } else if $(HAIKU_GCC_VERSION[1]) >= 4 { - InstallOptionalHaikuImagePackage bzr-2.6b1-x86-gcc4-2012-03-30.zip - : $(baseURL)/bzr-2.6b1-x86-gcc4-2012-03-30.zip ; + InstallOptionalHaikuImagePackage bzr-2.5.1-x86-gcc4-2012-06-22.zip + : $(baseURL)/bzr-2.5.1-x86-gcc4-2012-06-22.zip ; } else { - InstallOptionalHaikuImagePackage bzr-2.6b1-x86-gcc2-2012-03-31.zip - : $(baseURL)/bzr-2.6b1-x86-gcc2-2012-03-31.zip ; + InstallOptionalHaikuImagePackage bzr-2.5.1-x86-gcc2-2012-06-22.zip + : $(baseURL)/bzr-2.5.1-x86-gcc2-2012-06-22.zip ; } } @@ -408,12 +409,12 @@ if [ IsOptionalHaikuImagePackageAdded CDRecord ] { Echo "No optional package CDRecord available for $(TARGET_ARCH)" ; } else if $(HAIKU_GCC_VERSION[1]) >= 4 { InstallOptionalHaikuImagePackage - cdrtools-3.01a01-r1a3-x86-gcc4-2011-05-23.zip - : $(baseURL)/cdrtools-3.01a01-r1a3-x86-gcc4-2011-05-23.zip ; + cdrtools-3.01a06-x86-gcc4-2012-06-19.zip + : $(baseURL)/cdrtools-3.01a06-x86-gcc4-2012-06-19.zip ; } else { InstallOptionalHaikuImagePackage - cdrtools-3.01a01-r1a3-x86-gcc2-2011-05-17.zip - : $(baseURL)/cdrtools-3.01a01-r1a3-x86-gcc2-2011-05-17.zip ; + cdrtools-3.01a06-x86-gcc2-2012-06-20.zip + : $(baseURL)/cdrtools-3.01a06-x86-gcc2-2012-06-20.zip ; } } @@ -532,11 +533,11 @@ if [ IsOptionalHaikuImagePackageAdded Curl ] { if $(TARGET_ARCH) != x86 { Echo "No optional package Curl available for $(TARGET_ARCH)" ; } else if $(HAIKU_GCC_VERSION[1]) >= 4 { - InstallOptionalHaikuImagePackage curl-7.21.7-x86-gcc4-2012-02-18.zip - : $(baseURL)/curl-7.21.7-x86-gcc4-2012-02-18.zip ; + InstallOptionalHaikuImagePackage curl-7.26.0-x86-gcc4-2012-06-20.zip + : $(baseURL)/curl-7.26.0-x86-gcc4-2012-06-20.zip ; } else { - InstallOptionalHaikuImagePackage curl-7.21.7-x86-gcc2-2012-02-18.zip - : $(baseURL)/curl-7.21.7-x86-gcc2-2012-02-18.zip ; + InstallOptionalHaikuImagePackage curl-7.26.0-x86-gcc2-2012-06-21.zip + : $(baseURL)/curl-7.26.0-x86-gcc2-2012-06-21.zip ; } } @@ -548,13 +549,13 @@ if [ IsOptionalHaikuImagePackageAdded CVS ] { } else { if $(HAIKU_GCC_VERSION[1]) >= 4 { InstallOptionalHaikuImagePackage - cvs-1.12.13.1-r1a3-x86-gcc4-2011-05-24.zip - : $(baseURL)/cvs-1.12.13.1-r1a3-x86-gcc4-2011-05-24.zip + cvs-1.12.13.1-x86-gcc4-2012-06-22.zip + : $(baseURL)/cvs-1.12.13.1-x86-gcc4-2012-06-22.zip : : true ; } else { InstallOptionalHaikuImagePackage - cvs-1.12.13.1-r1a3-x86-gcc2-2011-05-18.zip - : $(baseURL)/cvs-1.12.13.1-r1a3-x86-gcc2-2011-05-18.zip + cvs-1.12.13.1-x86-gcc2-2012-06-20.zip + : $(baseURL)/cvs-1.12.13.1-x86-gcc2-2012-06-20.zip : : true ; } } @@ -912,8 +913,8 @@ if [ IsOptionalHaikuImagePackageAdded Expat ] { : : true ; } else { InstallOptionalHaikuImagePackage - expat-2.0.1-r1a3-x86-gcc2-2011-05-20.zip - : $(baseURL)/expat-2.0.1-r1a3-x86-gcc2-2011-05-20.zip + expat-2.0.1-x86-gcc2-2012-06-20.zip + : $(baseURL)/expat-2.0.1-x86-gcc2-2012-06-20.zip : : true ; } } @@ -983,13 +984,33 @@ if [ IsOptionalHaikuImagePackageAdded Git ] { } else { if $(HAIKU_GCC_VERSION[1]) >= 4 { InstallOptionalHaikuImagePackage - git-1.7.7.2-x86-gcc4-2011-11-04.zip - : $(baseURL)/git-1.7.7.2-x86-gcc4-2011-11-04.zip + git-1.7.10.2-x86-gcc4-2012-06-19.zip + : $(baseURL)/git-1.7.10.2-x86-gcc4-2012-06-19.zip : : true ; } else { InstallOptionalHaikuImagePackage - git-1.7.7.2-x86-gcc2-2011-11-04.zip - : $(baseURL)/git-1.7.7.2-x86-gcc2-2011-11-04.zip + git-1.7.10.2-x86-gcc2-2012-06-20.zip + : $(baseURL)/git-1.7.10.2-x86-gcc2-2012-06-20.zip + : : true ; + } + } +} + + +# GitDoc +if [ IsOptionalHaikuImagePackageAdded GitDoc ] { + if $(TARGET_ARCH) != x86 { + Echo "No optional package GitDoc available for $(TARGET_ARCH)" ; + } else { + if $(HAIKU_GCC_VERSION[1]) >= 4 { + InstallOptionalHaikuImagePackage + gitdoc-1.7.10.2-x86-gcc4-2012-06-20.zip + : $(baseURL)/gitdoc-1.7.10.2-x86-gcc4-2012-06-20.zip + : : true ; + } else { + InstallOptionalHaikuImagePackage + gitdoc-1.7.10.2-x86-gcc2-2012-06-20.zip + : $(baseURL)/gitdoc-1.7.10.2-x86-gcc2-2012-06-20.zip : : true ; } } @@ -1185,12 +1206,12 @@ if [ IsOptionalHaikuImagePackageAdded LibXML2 ] { } else { if $(HAIKU_GCC_VERSION[1]) >= 4 { InstallOptionalHaikuImagePackage - libxml2-2.7.8-r1a3-x86-gcc4-2011-05-24.zip - : $(baseURL)/libxml2-2.7.8-r1a3-x86-gcc4-2011-05-24.zip ; + libxml2-2.8.0-x86-gcc4-2012-06-18.zip + : $(baseURL)/libxml2-2.8.0-x86-gcc4-2012-06-18.zip ; } else { InstallOptionalHaikuImagePackage - libxml2-2.7.8-r1a3-x86-gcc2-2011-05-18.zip - : $(baseURL)/libxml2-2.7.8-r1a3-x86-gcc2-2011-05-18.zip ; + libxml2-2.8.0-x86-gcc2-2012-06-21.zip + : $(baseURL)/libxml2-2.8.0-x86-gcc2-2012-06-21.zip ; } } } @@ -1254,12 +1275,12 @@ if [ IsOptionalHaikuImagePackageAdded Man ] { Echo "No optional package Man available for $(TARGET_ARCH)" ; } else if $(HAIKU_GCC_VERSION[1]) >= 4 { InstallOptionalHaikuImagePackage - man-1.6f-r1a3-x86-gcc4-2011-05-24.zip - : $(baseURL)/man-1.6f-r1a3-x86-gcc4-2011-05-24.zip ; + man-1.6g-x86-gcc4-2012-06-19.zip + : $(baseURL)/man-1.6g-x86-gcc4-2012-06-19.zip ; } else { InstallOptionalHaikuImagePackage - man-1.6f-r1a3-x86-gcc2-2011-05-18.zip - : $(baseURL)/man-1.6f-r1a3-x86-gcc2-2011-05-18.zip ; + man-1.6g-x86-gcc2-2012-06-21.zip + : $(baseURL)/man-1.6g-x86-gcc2-2012-06-21.zip ; } } @@ -1277,13 +1298,13 @@ if [ IsOptionalHaikuImagePackageAdded Mercurial ] { } else { if $(HAIKU_GCC_VERSION[1]) >= 4 { InstallOptionalHaikuImagePackage - mercurial-1.8.3-r1a3-x86-gcc4-2011-05-24.zip - : $(baseURL)/mercurial-1.8.3-r1a3-x86-gcc4-2011-05-24.zip + mercurial-2.2.2-x86-gcc4-2012-06-19.zip + : $(baseURL)/mercurial-2.2.2-x86-gcc4-2012-06-19.zip : : true ; } else { InstallOptionalHaikuImagePackage - mercurial-1.8.3-r1a3-x86-gcc2-2011-05-17.zip - : $(baseURL)/mercurial-1.8.3-r1a3-x86-gcc2-2011-05-17.zip + mercurial-2.2.2-x86-gcc2-2012-06-20.zip + : $(baseURL)/mercurial-2.2.2-x86-gcc2-2012-06-20.zip : : true ; } } @@ -1315,12 +1336,12 @@ if [ IsOptionalHaikuImagePackageAdded Neon ] { } else { if $(HAIKU_GCC_VERSION[1]) >= 4 { InstallOptionalHaikuImagePackage - neon-0.29.6-r1a3-x86-gcc4-2011-05-24.zip - : $(baseURL)/neon-0.29.6-r1a3-x86-gcc4-2011-05-24.zip ; + neon-0.29.6-x86-gcc4-2012-06-19.zip + : $(baseURL)/neon-0.29.6-x86-gcc4-2012-06-19.zip ; } else { InstallOptionalHaikuImagePackage - neon-0.29.6-r1a3-x86-gcc2-2011-05-18.zip - : $(baseURL)/neon-0.29.6-r1a3-x86-gcc2-2011-05-18.zip ; + neon-0.29.6-x86-gcc2-2012-06-21.zip + : $(baseURL)/neon-0.29.6-x86-gcc2-2012-06-21.zip ; } } } @@ -1412,12 +1433,12 @@ if [ IsOptionalHaikuImagePackageAdded OpenSSH ] { if $(HAIKU_GCC_VERSION[1]) >= 4 { InstallOptionalHaikuImagePackage - openssh-5.9p1-x86-gcc4-2011-11-30.zip - : $(baseURL)/openssh-5.9p1-x86-gcc4-2011-11-30.zip ; + openssh-6.0p1-x86-gcc4-2012-06-20.zip + : $(baseURL)/openssh-6.0p1-x86-gcc4-2012-06-20.zip ; } else { InstallOptionalHaikuImagePackage - openssh-5.9p1-x86-gcc2-2011-11-30.zip - : $(baseURL)/openssh-5.9p1-x86-gcc2-2011-11-30.zip ; + openssh-6.0p1-x86-gcc2-2012-06-21.zip + : $(baseURL)/openssh-6.0p1-x86-gcc2-2012-06-21.zip ; } AddUserToHaikuImage sshd : 1001 : 100 : /var/empty : /bin/true @@ -1449,12 +1470,12 @@ if [ IsOptionalHaikuImagePackageAdded P7zip ] { } else { if $(HAIKU_GCC_VERSION[1]) >= 4 { InstallOptionalHaikuImagePackage - p7zip-9.13-r1a3-x86-gcc4-2011-05-24.zip - : $(baseURL)/p7zip-9.13-r1a3-x86-gcc4-2011-05-24.zip ; + p7zip-9.20.1-x86-gcc4-2012-06-19.zip + : $(baseURL)/p7zip-9.20.1-x86-gcc4-2012-06-19.zip ; } else { InstallOptionalHaikuImagePackage - p7zip-9.13-r1a3-x86-gcc2-2011-05-18.zip - : $(baseURL)/p7zip-9.13-r1a3-x86-gcc2-2011-05-18.zip ; + p7zip-9.20.1-x86-gcc2-2012-06-21.zip + : $(baseURL)/p7zip-9.20.1-x86-gcc2-2012-06-21.zip ; } AddExpanderRuleToHaikuImage "application/x-7z-compressed" : .7z : "7za l \\0045s" @@ -1627,12 +1648,12 @@ if [ IsOptionalHaikuImagePackageAdded SQLite ] { } else { if $(HAIKU_GCC_VERSION[1]) >= 4 { InstallOptionalHaikuImagePackage - sqlite-3.7.7.1-x86-gcc4-2012-03-30.zip - : $(baseURL)/sqlite-3.7.7.1-x86-gcc4-2012-03-30.zip ; + sqlite-3.7.13-x86-gcc4-2012-06-19.zip + : $(baseURL)/sqlite-3.7.13-x86-gcc4-2012-06-19.zip ; } else { InstallOptionalHaikuImagePackage - sqlite-3.7.7.1-x86-gcc2-2012-03-31.zip - : $(baseURL)/sqlite-3.7.7.1-x86-gcc2-2012-03-31.zip ; + sqlite-3.7.13-x86-gcc2-2012-06-20.zip + : $(baseURL)/sqlite-3.7.13-x86-gcc2-2012-06-20.zip ; } } } @@ -1645,13 +1666,13 @@ if [ IsOptionalHaikuImagePackageAdded Subversion ] { } else { if $(HAIKU_GCC_VERSION[1]) >= 4 { InstallOptionalHaikuImagePackage - subversion-1.6.17-x86-gcc4-2011-08-03.zip - : $(baseURL)/subversion-1.6.17-x86-gcc4-2011-08-03.zip + subversion-1.6.18-x86-gcc4-2012-06-19.zip + : $(baseURL)/subversion-1.6.18-x86-gcc4-2012-06-19.zip : : true ; } else { InstallOptionalHaikuImagePackage - subversion-1.6.17-x86-gcc2-2011-08-02.zip - : $(baseURL)/subversion-1.6.17-x86-gcc2-2011-08-02.zip + subversion-1.6.18-x86-gcc2-2012-06-21.zip + : $(baseURL)/subversion-1.6.18-x86-gcc2-2012-06-21.zip : : true ; } } @@ -1681,12 +1702,12 @@ if [ IsOptionalHaikuImagePackageAdded Tar ] { } else { if $(HAIKU_GCC_VERSION[1]) >= 4 { InstallOptionalHaikuImagePackage - tar-1.25-r1a3-x86-gcc4-2011-05-24.zip - : $(baseURL)/tar-1.25-r1a3-x86-gcc4-2011-05-24.zip ; + tar-1.26-x86-gcc4-2012-06-19.zip + : $(baseURL)/tar-1.26-x86-gcc4-2012-06-19.zip ; } else { InstallOptionalHaikuImagePackage - tar-1.25-r1a3-x86-gcc2-2011-05-20.zip - : $(baseURL)/tar-1.25-r1a3-x86-gcc2-2011-05-20.zip ; + tar-1.26-x86-gcc2-2012-06-21.zip + : $(baseURL)/tar-1.26-x86-gcc2-2012-06-21.zip ; } } } @@ -1973,11 +1994,11 @@ if [ IsOptionalHaikuImagePackageAdded Yasm ] { Echo "No optional package Yasm available for $(TARGET_ARCH)" ; } else if $(HAIKU_GCC_VERSION[1]) >= 4 { InstallOptionalHaikuImagePackage - yasm-1.1.0-r1a3-x86-gcc4-2011-05-24.zip - : $(baseURL)/yasm-1.1.0-r1a3-x86-gcc4-2011-05-24.zip ; + yasm-1.2.0-x86-gcc4-2012-06-18.zip + : $(baseURL)/yasm-1.2.0-x86-gcc4-2012-06-18.zip ; } else { InstallOptionalHaikuImagePackage - yasm-1.1.0-r1a3-x86-gcc2-2011-05-17.zip - : $(baseURL)/yasm-1.1.0-r1a3-x86-gcc2-2011-05-17.zip ; + yasm-1.2.0-x86-gcc2-2012-06-19.zip + : $(baseURL)/yasm-1.2.0-x86-gcc2-2012-06-19.zip ; } } diff --git a/data/system/data/fonts/ttfonts/DejaVuSans-Bold.ttf b/data/system/data/fonts/ttfonts/DejaVuSans-Bold.ttf index ec1a2ebaf2..0f4d5e9d48 100644 Binary files a/data/system/data/fonts/ttfonts/DejaVuSans-Bold.ttf and b/data/system/data/fonts/ttfonts/DejaVuSans-Bold.ttf differ diff --git a/data/system/data/fonts/ttfonts/DejaVuSans-BoldOblique.ttf b/data/system/data/fonts/ttfonts/DejaVuSans-BoldOblique.ttf index 1a5576460d..48f06a863a 100644 Binary files a/data/system/data/fonts/ttfonts/DejaVuSans-BoldOblique.ttf and b/data/system/data/fonts/ttfonts/DejaVuSans-BoldOblique.ttf differ diff --git a/data/system/data/fonts/ttfonts/DejaVuSans-ExtraLight.ttf b/data/system/data/fonts/ttfonts/DejaVuSans-ExtraLight.ttf index 833af86257..01a56521d1 100644 Binary files a/data/system/data/fonts/ttfonts/DejaVuSans-ExtraLight.ttf and b/data/system/data/fonts/ttfonts/DejaVuSans-ExtraLight.ttf differ diff --git a/data/system/data/fonts/ttfonts/DejaVuSans-Oblique.ttf b/data/system/data/fonts/ttfonts/DejaVuSans-Oblique.ttf index becc549927..44856388da 100644 Binary files a/data/system/data/fonts/ttfonts/DejaVuSans-Oblique.ttf and b/data/system/data/fonts/ttfonts/DejaVuSans-Oblique.ttf differ diff --git a/data/system/data/fonts/ttfonts/DejaVuSans.ttf b/data/system/data/fonts/ttfonts/DejaVuSans.ttf index c1b19d8705..27cff476ef 100644 Binary files a/data/system/data/fonts/ttfonts/DejaVuSans.ttf and b/data/system/data/fonts/ttfonts/DejaVuSans.ttf differ diff --git a/data/system/data/fonts/ttfonts/DejaVuSansCondensed-Bold.ttf b/data/system/data/fonts/ttfonts/DejaVuSansCondensed-Bold.ttf index cb48a02b46..9edd89c3dc 100644 Binary files a/data/system/data/fonts/ttfonts/DejaVuSansCondensed-Bold.ttf and b/data/system/data/fonts/ttfonts/DejaVuSansCondensed-Bold.ttf differ diff --git a/data/system/data/fonts/ttfonts/DejaVuSansCondensed-BoldOblique.ttf b/data/system/data/fonts/ttfonts/DejaVuSansCondensed-BoldOblique.ttf index 08007e0e16..e2db5ce0c1 100644 Binary files a/data/system/data/fonts/ttfonts/DejaVuSansCondensed-BoldOblique.ttf and b/data/system/data/fonts/ttfonts/DejaVuSansCondensed-BoldOblique.ttf differ diff --git a/data/system/data/fonts/ttfonts/DejaVuSansCondensed-Oblique.ttf b/data/system/data/fonts/ttfonts/DejaVuSansCondensed-Oblique.ttf index f50b87ed60..7cec04c2e0 100644 Binary files a/data/system/data/fonts/ttfonts/DejaVuSansCondensed-Oblique.ttf and b/data/system/data/fonts/ttfonts/DejaVuSansCondensed-Oblique.ttf differ diff --git a/data/system/data/fonts/ttfonts/DejaVuSansCondensed.ttf b/data/system/data/fonts/ttfonts/DejaVuSansCondensed.ttf index 783eae4e3b..826e619b78 100644 Binary files a/data/system/data/fonts/ttfonts/DejaVuSansCondensed.ttf and b/data/system/data/fonts/ttfonts/DejaVuSansCondensed.ttf differ diff --git a/data/system/data/fonts/ttfonts/DejaVuSansMono-Bold.ttf b/data/system/data/fonts/ttfonts/DejaVuSansMono-Bold.ttf index 32a8695f70..09d42796a1 100644 Binary files a/data/system/data/fonts/ttfonts/DejaVuSansMono-Bold.ttf and b/data/system/data/fonts/ttfonts/DejaVuSansMono-Bold.ttf differ diff --git a/data/system/data/fonts/ttfonts/DejaVuSansMono-BoldOblique.ttf b/data/system/data/fonts/ttfonts/DejaVuSansMono-BoldOblique.ttf index 5e2ee0339c..0344c22709 100644 Binary files a/data/system/data/fonts/ttfonts/DejaVuSansMono-BoldOblique.ttf and b/data/system/data/fonts/ttfonts/DejaVuSansMono-BoldOblique.ttf differ diff --git a/data/system/data/fonts/ttfonts/DejaVuSansMono-Oblique.ttf b/data/system/data/fonts/ttfonts/DejaVuSansMono-Oblique.ttf index 9789ea057c..bc16d51bd5 100644 Binary files a/data/system/data/fonts/ttfonts/DejaVuSansMono-Oblique.ttf and b/data/system/data/fonts/ttfonts/DejaVuSansMono-Oblique.ttf differ diff --git a/data/system/data/fonts/ttfonts/DejaVuSansMono.ttf b/data/system/data/fonts/ttfonts/DejaVuSansMono.ttf index 6bc854ddae..7260bd65e0 100644 Binary files a/data/system/data/fonts/ttfonts/DejaVuSansMono.ttf and b/data/system/data/fonts/ttfonts/DejaVuSansMono.ttf differ diff --git a/data/system/data/fonts/ttfonts/DejaVuSerif-Bold.ttf b/data/system/data/fonts/ttfonts/DejaVuSerif-Bold.ttf index aee1ae626f..afa2d5ec3d 100644 Binary files a/data/system/data/fonts/ttfonts/DejaVuSerif-Bold.ttf and b/data/system/data/fonts/ttfonts/DejaVuSerif-Bold.ttf differ diff --git a/data/system/data/fonts/ttfonts/DejaVuSerif-BoldItalic.ttf b/data/system/data/fonts/ttfonts/DejaVuSerif-BoldItalic.ttf index 1b55e27214..ce9443eaea 100644 Binary files a/data/system/data/fonts/ttfonts/DejaVuSerif-BoldItalic.ttf and b/data/system/data/fonts/ttfonts/DejaVuSerif-BoldItalic.ttf differ diff --git a/data/system/data/fonts/ttfonts/DejaVuSerif-Italic.ttf b/data/system/data/fonts/ttfonts/DejaVuSerif-Italic.ttf index 4464868f75..c1864a3071 100644 Binary files a/data/system/data/fonts/ttfonts/DejaVuSerif-Italic.ttf and b/data/system/data/fonts/ttfonts/DejaVuSerif-Italic.ttf differ diff --git a/data/system/data/fonts/ttfonts/DejaVuSerif.ttf b/data/system/data/fonts/ttfonts/DejaVuSerif.ttf index 1f2c94fa01..ed53a2967c 100644 Binary files a/data/system/data/fonts/ttfonts/DejaVuSerif.ttf and b/data/system/data/fonts/ttfonts/DejaVuSerif.ttf differ diff --git a/data/system/data/fonts/ttfonts/DejaVuSerifCondensed-Bold.ttf b/data/system/data/fonts/ttfonts/DejaVuSerifCondensed-Bold.ttf index 9483a5f102..55adca4120 100644 Binary files a/data/system/data/fonts/ttfonts/DejaVuSerifCondensed-Bold.ttf and b/data/system/data/fonts/ttfonts/DejaVuSerifCondensed-Bold.ttf differ diff --git a/data/system/data/fonts/ttfonts/DejaVuSerifCondensed-BoldItalic.ttf b/data/system/data/fonts/ttfonts/DejaVuSerifCondensed-BoldItalic.ttf index d141211def..e211957344 100644 Binary files a/data/system/data/fonts/ttfonts/DejaVuSerifCondensed-BoldItalic.ttf and b/data/system/data/fonts/ttfonts/DejaVuSerifCondensed-BoldItalic.ttf differ diff --git a/data/system/data/fonts/ttfonts/DejaVuSerifCondensed-Italic.ttf b/data/system/data/fonts/ttfonts/DejaVuSerifCondensed-Italic.ttf index 437824a3d2..275b26d953 100644 Binary files a/data/system/data/fonts/ttfonts/DejaVuSerifCondensed-Italic.ttf and b/data/system/data/fonts/ttfonts/DejaVuSerifCondensed-Italic.ttf differ diff --git a/data/system/data/fonts/ttfonts/DejaVuSerifCondensed.ttf b/data/system/data/fonts/ttfonts/DejaVuSerifCondensed.ttf index 2fc9db9011..83120cd9d3 100644 Binary files a/data/system/data/fonts/ttfonts/DejaVuSerifCondensed.ttf and b/data/system/data/fonts/ttfonts/DejaVuSerifCondensed.ttf differ diff --git a/headers/os/interface/StringView.h b/headers/os/interface/StringView.h index 283bc8a2a5..a8a36b61b0 100644 --- a/headers/os/interface/StringView.h +++ b/headers/os/interface/StringView.h @@ -9,7 +9,7 @@ #include -class BStringView : public BView{ +class BStringView : public BView { public: BStringView(BRect bounds, const char* name, const char* text, uint32 resizeFlags diff --git a/headers/os/interface/View.h b/headers/os/interface/View.h index 8418f03e21..4471ddd1a6 100644 --- a/headers/os/interface/View.h +++ b/headers/os/interface/View.h @@ -584,6 +584,8 @@ protected: virtual void LayoutChanged(); + void ScrollWithMouseWheelDelta(BScrollBar*, float); + private: void _Layout(bool force, BLayoutContext* context); void _LayoutLeft(BLayout* deleted); diff --git a/headers/private/shared/StringForRate.h b/headers/private/shared/StringForRate.h new file mode 100644 index 0000000000..65e17407da --- /dev/null +++ b/headers/private/shared/StringForRate.h @@ -0,0 +1,24 @@ +/* + * Copyright 2010 Haiku Inc. All rights reserved. + * Distributed under the terms of the MIT License. + */ +#ifndef STRING_FOR_RATE_H +#define STRING_FOR_RATE_H + +#include + + +namespace BPrivate { + + +const char* string_for_rate(double rate, char* string, size_t stringSize, + double base = 1000.0f); + + +} // namespace BPrivate + + +using BPrivate::string_for_rate; + + +#endif // COLOR_QUANTIZER_H diff --git a/src/add-ons/media/plugins/ffmpeg/AVFormatReader.cpp b/src/add-ons/media/plugins/ffmpeg/AVFormatReader.cpp index 9b3de2d213..23b0b66815 100644 --- a/src/add-ons/media/plugins/ffmpeg/AVFormatReader.cpp +++ b/src/add-ons/media/plugins/ffmpeg/AVFormatReader.cpp @@ -1450,6 +1450,7 @@ AVFormatReader::Stream::Seek(uint32 flags, int64* frame, bigtime_t* time) AVFormatReader::AVFormatReader() : + fCopyright(""), fStreams(NULL), fSourceLock("source I/O lock") { @@ -1478,12 +1479,12 @@ AVFormatReader::~AVFormatReader() const char* AVFormatReader::Copyright() { -// TODO: Could not find the equivalent in libavformat >= version 53. -// Use metadata API instead! -// if (fStreams != NULL && fStreams[0] != NULL) -// return fStreams[0]->Context()->copyright; - // TODO: Return copyright of the file instead! - return "Copyright 2009, Stephan Aßmus"; + if (fCopyright.Length() <= 0) { + BMessage message; + if (GetMetaData(&message) == B_OK) + message.FindString("copyright", &fCopyright); + } + return fCopyright.String(); } @@ -1638,9 +1639,9 @@ AVFormatReader::GetMetaData(BMessage* _data) // Add program info for (unsigned i = 0; i < context->nb_programs; i++) { - BMessage progamData; - avdictionary_to_message(context->programs[i]->metadata, &progamData); - _data->AddMessage("be:program", &progamData); + BMessage programData; + avdictionary_to_message(context->programs[i]->metadata, &programData); + _data->AddMessage("be:program", &programData); } return B_OK; diff --git a/src/add-ons/media/plugins/ffmpeg/AVFormatReader.h b/src/add-ons/media/plugins/ffmpeg/AVFormatReader.h index 256ee50429..9ffa4570dd 100644 --- a/src/add-ons/media/plugins/ffmpeg/AVFormatReader.h +++ b/src/add-ons/media/plugins/ffmpeg/AVFormatReader.h @@ -7,6 +7,7 @@ #include +#include #include "ReaderPlugin.h" @@ -48,6 +49,7 @@ public: private: class Stream; + BString fCopyright; Stream** fStreams; BLocker fSourceLock; }; diff --git a/src/apps/codycam/CodyCam.cpp b/src/apps/codycam/CodyCam.cpp index 2a68bce107..0df1c060a6 100644 --- a/src/apps/codycam/CodyCam.cpp +++ b/src/apps/codycam/CodyCam.cpp @@ -15,6 +15,7 @@ #include #include #include +#include #include #include #include @@ -22,6 +23,7 @@ #include #include +#include #undef B_TRANSLATION_CONTEXT #define B_TRANSLATION_CONTEXT "CodyCam" @@ -169,7 +171,11 @@ CodyCam::CodyCam() kUploadClients[index++] = B_TRANSLATE("SFTP"); kUploadClients[index++] = B_TRANSLATE("Local"); - chdir("/boot/home"); + BPath homeDir; + if (find_directory(B_USER_DIRECTORY, &homeDir) != B_OK) + homeDir.SetTo("/boot/home"); + + chdir(homeDir.Path()); } diff --git a/src/apps/icon-o-matic/IconEditorApp.cpp b/src/apps/icon-o-matic/IconEditorApp.cpp index 65c48b8610..27f73a9484 100644 --- a/src/apps/icon-o-matic/IconEditorApp.cpp +++ b/src/apps/icon-o-matic/IconEditorApp.cpp @@ -17,6 +17,8 @@ #include #include #include +#include +#include #include "support_settings.h" @@ -329,8 +331,14 @@ IconEditorApp::_LastFilePath(path_kind which) path = fLastOpenPath.String(); break; } - if (!path) - path = "/boot/home"; + if (!path) { + + BPath homePath; + if (find_directory(B_USER_DIRECTORY, &homePath) == B_OK) + path = homePath.Path(); + else + path = "/boot/home"; + } return path; } diff --git a/src/apps/mediaconverter/MediaConverterWindow.cpp b/src/apps/mediaconverter/MediaConverterWindow.cpp index 2d1cc7e8cf..d97dcb1b0e 100644 --- a/src/apps/mediaconverter/MediaConverterWindow.cpp +++ b/src/apps/mediaconverter/MediaConverterWindow.cpp @@ -31,6 +31,8 @@ #include #include +#include + #include "MediaFileInfoView.h" #include "MediaFileListView.h" #include "MessageConstants.h" @@ -122,8 +124,10 @@ MediaConverterWindow::MediaConverterWindow(BRect frame) fConverting(false), fCancelling(false) { - const char* defaultDirectory = "/boot/home"; - fOutputDir.SetTo(defaultDirectory); + BPath outputDir; + if (find_directory(B_USER_DIRECTORY, &outputDir) != B_OK) + outputDir.SetTo("/boot/home"); + fOutputDir.SetTo(outputDir.Path()); fMenuBar = new BMenuBar("menubar"); _CreateMenu(); @@ -165,7 +169,7 @@ MediaConverterWindow::MediaConverterWindow(BRect frame) fDestButton = new BButton(B_TRANSLATE("Output folder"), new BMessage(OUTPUT_FOLDER_MESSAGE)); BAlignment labelAlignment(be_control_look->DefaultLabelAlignment()); - fOutputFolder = new BStringView(NULL, defaultDirectory); + fOutputFolder = new BStringView(NULL, outputDir.Path()); fOutputFolder->SetExplicitAlignment(labelAlignment); // start/end duration diff --git a/src/apps/mediaplayer/InfoWin.cpp b/src/apps/mediaplayer/InfoWin.cpp index a98f3ceac4..2316481d6f 100644 --- a/src/apps/mediaplayer/InfoWin.cpp +++ b/src/apps/mediaplayer/InfoWin.cpp @@ -32,6 +32,7 @@ #include #include #include +#include #include #include @@ -405,6 +406,12 @@ printf("InfoWin::Update(0x%08lx)\n", which); rateString.ReplaceFirst("%d", "??"); s << rateString; } + if (format.type == B_MEDIA_ENCODED_AUDIO) { + float br = format.u.encoded_audio.bit_rate; + char string[20] = ""; + if (br > 0.0) + s << ", " << string_for_rate(br, string, sizeof(string)); + } s << "\n\n"; fContentsView->Insert(s.String()); } @@ -430,6 +437,8 @@ printf("InfoWin::Update(0x%08lx)\n", which); d = d % (60 * 1000); s << v << ":"; v = d / 1000; + if (v < 10) + s << '0'; s << v; if (hours) s << " " << B_TRANSLATE_COMMENT("h", "Hours"); diff --git a/src/apps/networkstatus/NetworkStatusView.cpp b/src/apps/networkstatus/NetworkStatusView.cpp index 69d149567c..f3490d9bb5 100644 --- a/src/apps/networkstatus/NetworkStatusView.cpp +++ b/src/apps/networkstatus/NetworkStatusView.cpp @@ -243,9 +243,12 @@ void NetworkStatusView::AttachedToWindow() { BView::AttachedToWindow(); - if (Parent()) - SetViewColor(Parent()->ViewColor()); - else + if (Parent() != NULL) { + if ((Parent()->Flags() & B_DRAW_ON_CHILDREN) != 0) + SetViewColor(B_TRANSPARENT_COLOR); + else + SetViewColor(Parent()->ViewColor()); + } else SetViewColor(ui_color(B_PANEL_BACKGROUND_COLOR)); SetLowColor(ViewColor()); diff --git a/src/apps/showimage/Filter.cpp b/src/apps/showimage/Filter.cpp index 17678b53db..6c5769abdd 100644 --- a/src/apps/showimage/Filter.cpp +++ b/src/apps/showimage/Filter.cpp @@ -1,6 +1,6 @@ /* - * Copyright 2003-2006, Haiku. - * Copyright 2004-2005 yellowTAB GmbH. All Rights Reserverd. + * Copyright 2003-2006, Haiku, Inc. All rights reserved. + * Copyright 2004-2005 yellowTAB GmbH. All Rights Reserved. * Copyright 2006 Bernd Korz. All Rights Reserved * Distributed under the terms of the MIT License. * @@ -21,29 +21,33 @@ // Implementation of FilterThread -FilterThread::FilterThread(Filter* filter, int32 i, int32 n, bool runInCurrentThread) - : fFilter(filter) - , fI(i) - , fN(n) +FilterThread::FilterThread(Filter* filter, int32 i, int32 n, + bool runInCurrentThread) + : + fFilter(filter), + fI(i), + fN(n) { - if (runInCurrentThread) { + if (runInCurrentThread) Run(); - } else { + else { thread_id tid; - tid = spawn_thread(worker_thread, "filter", suggest_thread_priority(B_STATUS_RENDERING), this); - if (tid >= 0) { + tid = spawn_thread(worker_thread, "filter", + suggest_thread_priority(B_STATUS_RENDERING), this); + if (tid >= 0) resume_thread(tid); - } else { + else delete this; - } } } + FilterThread::~FilterThread() { fFilter->FilterThreadDone(); } + status_t FilterThread::worker_thread(void* data) { @@ -51,6 +55,7 @@ FilterThread::worker_thread(void* data) return thread->Run(); } + status_t FilterThread::Run() { @@ -67,24 +72,25 @@ FilterThread::Run() new FilterThread(fFilter, i, fN); } } - if (fFilter->GetBitmap()) { + if (fFilter->GetBitmap()) fFilter->Run(fI, fN); - } + delete this; return B_OK; } // Implementation of Filter Filter::Filter(BBitmap* image, BMessenger listener, uint32 what) - : fListener(listener) - , fWhat(what) - , fStarted(false) - , fN(0) - , fNumberOfThreads(0) - , fIsRunning(false) - , fSrcImage(image) - , fDestImageInitialized(false) - , fDestImage(NULL) + : + fListener(listener), + fWhat(what), + fStarted(false), + fN(0), + fNumberOfThreads(0), + fIsRunning(false), + fSrcImage(image), + fDestImageInitialized(false), + fDestImage(NULL) { fCPUCount = NumberOfActiveCPUs(); @@ -95,12 +101,14 @@ Filter::Filter(BBitmap* image, BMessenger listener, uint32 what) #endif } + Filter::~Filter() { delete fDestImage; delete_sem(fWaitForThreads); } + BBitmap* Filter::GetBitmap() { @@ -111,6 +119,7 @@ Filter::GetBitmap() return fDestImage; } + BBitmap* Filter::DetachBitmap() { @@ -119,6 +128,7 @@ Filter::DetachBitmap() return image; } + void Filter::Start(bool async) { @@ -136,11 +146,11 @@ Filter::Start(bool async) // start first filter thread new FilterThread(this, 0, fN, !async); - if (!async) { + if (!async) Wait(); - } } + void Filter::Wait() { @@ -152,6 +162,7 @@ Filter::Wait() } } + void Filter::Stop() { @@ -160,17 +171,20 @@ Filter::Stop() Wait(); } + bool Filter::IsRunning() const { return fIsRunning; } + void Filter::Completed() { } + void Filter::FilterThreadDone() { @@ -179,14 +193,15 @@ Filter::FilterThreadDone() delete fStopWatch; fStopWatch = NULL; #endif Completed(); - if (fIsRunning) { + if (fIsRunning) fListener.SendMessage(fWhat); - } + fIsRunning = false; } release_sem(fWaitForThreads); } + void Filter::FilterThreadInitFailed() { @@ -197,38 +212,43 @@ Filter::FilterThreadInitFailed() release_sem_etc(fWaitForThreads, fN, 0); } + bool Filter::IsBitmapValid(BBitmap* bitmap) const { return bitmap != NULL && bitmap->InitCheck() == B_OK && bitmap->IsValid(); } + int32 Filter::NumberOfThreads() { const int32 units = GetNumberOfUnits(); int32 n; n = units / 32; // at least 32 units per CPU - if (n > CPUCount()) { + if (n > CPUCount()) n = CPUCount(); - } else if (n <= 0) { + else if (n <= 0) n = 1; // at least one thread! - } + return n; } + BBitmap* Filter::GetSrcImage() { return fSrcImage; } + BBitmap* Filter::GetDestImage() { return fDestImage; } + int32 Filter::NumberOfActiveCPUs() const { @@ -247,15 +267,19 @@ Filter::NumberOfActiveCPUs() const return cpuCount; } + // Implementation of (bilinear) Scaler -Scaler::Scaler(BBitmap* image, BRect rect, BMessenger listener, uint32 what, bool dither) - : Filter(image, listener, what) - , fScaledImage(NULL) - , fRect(rect) - , fDither(dither) +Scaler::Scaler(BBitmap* image, BRect rect, BMessenger listener, uint32 what, + bool dither) + : + Filter(image, listener, what), + fScaledImage(NULL), + fRect(rect), + fDither(dither) { } + Scaler::~Scaler() { if (GetDestImage() != fScaledImage) { @@ -264,13 +288,17 @@ Scaler::~Scaler() } } + BBitmap* Scaler::CreateDestImage(BBitmap* srcImage) { - if (srcImage == NULL || (srcImage->ColorSpace() != B_RGB32 && srcImage->ColorSpace() != B_RGBA32)) return NULL; + if (srcImage == NULL || (srcImage->ColorSpace() != B_RGB32 + && srcImage->ColorSpace() != B_RGBA32)) + return NULL; BRect dest(0, 0, fRect.IntegerWidth(), fRect.IntegerHeight()); - BBitmap* destImage = new BBitmap(dest, fDither ? B_CMAP8 : srcImage->ColorSpace()); + BBitmap* destImage = new BBitmap(dest, + fDither ? B_CMAP8 : srcImage->ColorSpace()); if (!IsBitmapValid(destImage)) { delete destImage; @@ -287,19 +315,19 @@ Scaler::CreateDestImage(BBitmap* srcImage) fScaledImage = NULL; return NULL; } - } else { + } else fScaledImage = destImage; - } return destImage; } + bool Scaler::Matches(BRect rect, bool dither) const { - return fRect.IntegerWidth() == rect.IntegerWidth() && - fRect.IntegerHeight() == rect.IntegerHeight() && - fDither == dither; + return fRect.IntegerWidth() == rect.IntegerWidth() + && fRect.IntegerHeight() == rect.IntegerHeight() + && fDither == dither; } @@ -310,6 +338,7 @@ typedef struct { float alpha1; } ColumnData; + void Scaler::ScaleBilinear(intType fromRow, int32 toRow) { @@ -343,7 +372,7 @@ Scaler::ScaleBilinear(intType fromRow, int32 toRow) columnData = new ColumnData[destW]; cd = columnData; - for (i = 0; i < destW; i ++, cd++) { + for (i = 0; i < destW; i++, cd++) { float column = (float)i * (float)srcW / (float)destW; cd->srcColumn = (intType)column; cd->alpha1 = column - cd->srcColumn; @@ -352,16 +381,16 @@ Scaler::ScaleBilinear(intType fromRow, int32 toRow) destDataRow = destBits + fromRow * destBPR; - for (y = fromRow; IsRunning() && y <= toRow; y ++, destDataRow += destBPR) { + for (y = fromRow; IsRunning() && y <= toRow; y++, destDataRow += destBPR) { float row; intType srcRow; float alpha0, alpha1; - if (destH == 0) { + if (destH == 0) row = 0; - } else { + else row = (float)y * (float)srcH / (float)destH; - } + srcRow = (intType)row; alpha1 = row - srcRow; alpha0 = 1.0 - alpha1; @@ -434,6 +463,7 @@ Scaler::ScaleBilinear(intType fromRow, int32 toRow) delete[] columnData; } + // Scale bilinear using fixed point calculations // Is already more than two times faster than floating point version // on AMD Athlon 1 GHz and Dual Intel Pentium III 866 MHz. @@ -444,6 +474,7 @@ typedef struct { fixed_point alpha1; } ColumnDataFP; + void Scaler::ScaleBilinearFP(intType fromRow, int32 toRow) { @@ -482,8 +513,9 @@ Scaler::ScaleBilinearFP(intType fromRow, int32 toRow) columnData = new ColumnDataFP[destW]; cd = columnData; - for (i = 0; i < destW; i ++, cd++) { - fixed_point column = to_fixed_point(i) * (long_fixed_point)fpSrcW / fpDestW; + for (i = 0; i < destW; i++, cd++) { + fixed_point column = to_fixed_point(i) * (long_fixed_point)fpSrcW + / fpDestW; cd->srcColumn = from_fixed_point(column); cd->alpha1 = tail_value(column); // weigth for left pixel value cd->alpha0 = kFPOne - cd->alpha1; // weigth for right pixel value @@ -491,18 +523,18 @@ Scaler::ScaleBilinearFP(intType fromRow, int32 toRow) destDataRow = destBits + fromRow * destBPR; - for (y = fromRow; IsRunning() && y <= toRow; y ++, destDataRow += destBPR) { + for (y = fromRow; IsRunning() && y <= toRow; y++, destDataRow += destBPR) { fixed_point row; intType srcRow; fixed_point alpha0, alpha1; - if (fpDestH == 0) { + if (fpDestH == 0) row = 0; - } else { + else row = to_fixed_point(y) * (long_fixed_point)fpSrcH / fpDestH; - } + srcRow = from_fixed_point(row); - alpha1 = tail_value(row); // weight for row y+1 + alpha1 = tail_value(row); // weight for row y + 1 alpha0 = kFPOne - alpha1; // weight for row y srcData = srcBits + srcRow * srcBPR; @@ -566,14 +598,15 @@ Scaler::ScaleBilinearFP(intType fromRow, int32 toRow) destData[2] = a[2]; destData[3] = a[3]; } - } delete[] columnData; } + void -Scaler::RowValues(float* sum, const uchar* src, intType srcW, intType fromX, intType toX, const float a0X, const float a1X, const int32 kBPP) +Scaler::RowValues(float* sum, const uchar* src, intType srcW, intType fromX, + intType toX, const float a0X, const float a1X, const int32 kBPP) { sum[0] = a0X * src[0]; sum[1] = a0X * src[1]; @@ -581,7 +614,7 @@ Scaler::RowValues(float* sum, const uchar* src, intType srcW, intType fromX, int src += kBPP; - for (int32 x = fromX+1; x < toX; x ++, src += kBPP) { + for (int32 x = fromX + 1; x < toX; x++, src += kBPP) { sum[0] += src[0]; sum[1] += src[1]; sum[2] += src[2]; @@ -594,6 +627,7 @@ Scaler::RowValues(float* sum, const uchar* src, intType srcW, intType fromX, int } } + typedef struct { int32 from; int32 to; @@ -601,6 +635,7 @@ typedef struct { float alpha1; } DownScaleColumnData; + void Scaler::DownScaleBilinear(intType fromRow, int32 toRow) { @@ -637,9 +672,9 @@ Scaler::DownScaleBilinear(intType fromRow, int32 toRow) const float deltaY = (srcH + 1.0) / (destH + 1.0); const float deltaXY = deltaX * deltaY; - columnData = new DownScaleColumnData[destW+1]; + columnData = new DownScaleColumnData[destW + 1]; DownScaleColumnData* cd = columnData; - for (x = 0; x <= destW; x ++, cd ++) { + for (x = 0; x <= destW; x++, cd++) { const float fFromX = x * deltaX; const float fToX = fFromX + deltaX; @@ -664,7 +699,7 @@ Scaler::DownScaleBilinear(intType fromRow, int32 toRow) destData = destDataRow; cd = columnData; - for (x = 0; x <= destW; x ++, destData += kBPP, cd ++) { + for (x = 0; x <= destW; x++, destData += kBPP, cd++) { const intType fromX = cd->from; const intType toX = cd->to; @@ -683,7 +718,7 @@ Scaler::DownScaleBilinear(intType fromRow, int32 toRow) srcData += srcBPR; - for (int32 r = fromY+1; r < toY; r ++, srcData += srcBPR) { + for (int32 r = fromY + 1; r < toY; r++, srcData += srcBPR) { RowValues(sum, srcData, srcW, fromX, toX, a0X, a1X, kBPP); totalSum[0] += sum[0]; totalSum[1] += sum[1]; @@ -706,6 +741,7 @@ Scaler::DownScaleBilinear(intType fromRow, int32 toRow) delete[] columnData; } + // Flyod-Steinberg Dithering // Filter (distribution of error to adjacent pixels, X is current pixel): // 0 X 7 @@ -715,6 +751,7 @@ typedef struct { intType error[3]; } DitheringColumnData; + uchar Scaler::Limit(intType value) { @@ -726,6 +763,7 @@ Scaler::Limit(intType value) return value; } + void Scaler::Dither(int32 fromRow, int32 toRow) { @@ -766,19 +804,20 @@ Scaler::Dither(int32 fromRow, int32 toRow) destBPR = dest->BytesPerRow(); // Allocate space for sentinel at left and right bounds, - // so that columnData[-1] and columnData[destW+1] can be safely accessed - columnData0 = new DitheringColumnData[destW+3]; + // so that columnData[-1] and columnData[destW + 1] can be safely accessed + columnData0 = new DitheringColumnData[destW + 3]; columnData = columnData0 + 1; // clear error cd = columnData; - for (x = destW; x >= 0; x --, cd ++) { - cd->error[0] = cd->error[1] = cd->error[2] =0; + for (x = destW; x >= 0; x --, cd++) { + cd->error[0] = cd->error[1] = cd->error[2] = 0; } srcDataRow = srcBits + fromRow * srcBPR; destDataRow = destBits + fromRow * destBPR; - for (y = fromRow; IsRunning() && y <= toRow; y ++, srcDataRow += srcBPR, destDataRow += destBPR) { + for (y = fromRow; IsRunning() && y <= toRow; y++, srcDataRow += srcBPR, + destDataRow += destBPR) { // left to right error[0] = error[1] = error[2] = 0; srcData = srcDataRow; @@ -797,12 +836,12 @@ Scaler::Dither(int32 fromRow, int32 toRow) *destData = index; err[0] = color.red - actualColor.red; - err[1] = color.green -actualColor.green; - err[2] = color.blue -actualColor.blue; + err[1] = color.green - actualColor.green; + err[2] = color.blue - actualColor.blue; // distribute error // get error for next pixel - cd = &columnData[x+1]; + cd = &columnData[x + 1]; error[0] = cd->error[0] + 7 * err[0]; error[1] = cd->error[1] + 7 * err[1]; error[2] = cd->error[2] + 7 * err[2]; @@ -813,27 +852,27 @@ Scaler::Dither(int32 fromRow, int32 toRow) cd->error[2] = err[2]; // add error for pixel below current pixel - cd --; + cd--; cd->error[0] += 5 * err[0]; cd->error[1] += 5 * err[1]; cd->error[2] += 5 * err[2]; // add error for left pixel below current pixel - cd --; + cd--; cd->error[0] += 3 * err[0]; cd->error[1] += 3 * err[1]; cd->error[2] += 3 * err[2]; } // Note: Alogrithm has good results with "left to right" already // Optionally remove code to end of block: - y ++; + y++; srcDataRow += srcBPR; destDataRow += destBPR; if (y > toRow) break; // right to left error[0] = error[1] = error[2] = 0; srcData = srcDataRow + destW * kBPP; destData = destDataRow + destW; - for (x = 0; x <= destW; x ++, srcData -= kBPP, destData -= 1) { + for (x = 0; x <= destW; x++, srcData -= kBPP, destData -= 1) { rgb_color color, actualColor; uint8 index; @@ -847,12 +886,12 @@ Scaler::Dither(int32 fromRow, int32 toRow) *destData = index; err[0] = color.red - actualColor.red; - err[1] = color.green -actualColor.green; - err[2] = color.blue -actualColor.blue; + err[1] = color.green - actualColor.green; + err[2] = color.blue - actualColor.blue; // distribute error // get error for next pixel - cd = &columnData[x-1]; + cd = &columnData[x - 1]; error[0] = cd->error[0] + 7 * err[0]; error[1] = cd->error[1] + 7 * err[1]; error[2] = cd->error[2] + 7 * err[2]; @@ -863,13 +902,13 @@ Scaler::Dither(int32 fromRow, int32 toRow) cd->error[2] = err[2]; // add error for pixel below current pixel - cd ++; + cd++; cd->error[0] += 5 * err[0]; cd->error[1] += 5 * err[1]; cd->error[2] += 5 * err[2]; // add error for right pixel below current pixel - cd ++; + cd++; cd->error[0] += 3 * err[0]; cd->error[1] += 3 * err[1]; cd->error[2] += 3 * err[2]; @@ -879,12 +918,14 @@ Scaler::Dither(int32 fromRow, int32 toRow) delete[] columnData0; } + int32 Scaler::GetNumberOfUnits() { return fRect.IntegerHeight() + 1; } + void Scaler::Run(int32 i, int32 n) { @@ -892,43 +933,47 @@ Scaler::Run(int32 i, int32 n) imageHeight = GetDestImage()->Bounds().IntegerHeight() + 1; height = imageHeight / n; from = i * height; - if (i+1 == n) { + if (i + 1 == n) to = imageHeight - 1; - } else { + else to = from + height - 1; - } - if (GetDestImage()->Bounds().Width() >= GetSrcImage()->Bounds().Width()) { + + if (GetDestImage()->Bounds().Width() >= GetSrcImage()->Bounds().Width()) ScaleBilinearFP(from, to); - } else { + else DownScaleBilinear(from, to); - } - if (fDither) { + + if (fDither) Dither(from, to); - } + } + void Scaler::Completed() { - if (GetDestImage() != fScaledImage) { + if (GetDestImage() != fScaledImage) delete fScaledImage; - } + fScaledImage = NULL; } -// Implementation of ImageProcessor -ImageProcessor::ImageProcessor(enum operation op, BBitmap* image, BMessenger listener, uint32 what) - : Filter(image, listener, what) - , fOp(op) - , fBPP(0) - , fWidth(0) - , fHeight(0) - , fSrcBPR(0) - , fDestBPR(0) +// Implementation of ImageProcessor +ImageProcessor::ImageProcessor(enum operation op, BBitmap* image, + BMessenger listener, uint32 what) + : + Filter(image, listener, what), + fOp(op), + fBPP(0), + fWidth(0), + fHeight(0), + fSrcBPR(0), + fDestBPR(0) { } + BBitmap* ImageProcessor::CreateDestImage(BBitmap* /* srcImage */) { @@ -936,20 +981,21 @@ ImageProcessor::CreateDestImage(BBitmap* /* srcImage */) BBitmap* bm; BRect rect; - if (GetSrcImage() == NULL) return NULL; + if (GetSrcImage() == NULL) + return NULL; cs = GetSrcImage()->ColorSpace(); fBPP = BytesPerPixel(cs); - if (fBPP < 1) return NULL; + if (fBPP < 1) + return NULL; fWidth = GetSrcImage()->Bounds().IntegerWidth(); fHeight = GetSrcImage()->Bounds().IntegerHeight(); - if (fOp == kRotateClockwise || fOp == kRotateCounterClockwise) { + if (fOp == kRotateClockwise || fOp == kRotateCounterClockwise) rect.Set(0, 0, fHeight, fWidth); - } else { + else rect.Set(0, 0, fWidth, fHeight); - } bm = new BBitmap(rect, cs); if (!IsBitmapValid(bm)) { @@ -963,45 +1009,50 @@ ImageProcessor::CreateDestImage(BBitmap* /* srcImage */) return bm; } + int32 ImageProcessor::GetNumberOfUnits() { return GetSrcImage()->Bounds().IntegerHeight() + 1; } + int32 ImageProcessor::BytesPerPixel(color_space cs) const { switch (cs) { - case B_RGB32: // fall through - case B_RGB32_BIG: // fall through - case B_RGBA32: // fall through - case B_RGBA32_BIG: return 4; + case B_RGB32: // fall through + case B_RGB32_BIG: // fall through + case B_RGBA32: // fall through + case B_RGBA32_BIG: return 4; - case B_RGB24_BIG: // fall through - case B_RGB24: return 3; + case B_RGB24_BIG: // fall through + case B_RGB24: return 3; - case B_RGB16: // fall through - case B_RGB16_BIG: // fall through - case B_RGB15: // fall through - case B_RGB15_BIG: // fall through - case B_RGBA15: // fall through - case B_RGBA15_BIG: return 2; + case B_RGB16: // fall through + case B_RGB16_BIG: // fall through + case B_RGB15: // fall through + case B_RGB15_BIG: // fall through + case B_RGBA15: // fall through + case B_RGBA15_BIG: return 2; - case B_GRAY8: // fall through - case B_CMAP8: return 1; - case B_GRAY1: return 0; + case B_GRAY8: // fall through + case B_CMAP8: return 1; + case B_GRAY1: return 0; default: return -1; } } + void -ImageProcessor::CopyPixel(uchar* dest, int32 destX, int32 destY, const uchar* src, int32 x, int32 y) +ImageProcessor::CopyPixel(uchar* dest, int32 destX, int32 destY, + const uchar* src, int32 x, int32 y) { - // Note: On my systems (Dual Intel P3 866MHz and AMD Athlon 1GHz), replacing - // the multiplications below with pointer arithmethics showed no speedup at all! + // Note: On my systems (Dual Intel P3 866MHz and AMD Athlon 1GHz), + // replacing the multiplications below with pointer arithmethics showed + // no speedup at all! dest += fDestBPR * destY + destX * fBPP; - src += fSrcBPR * y + x *fBPP; + src += fSrcBPR * y + x * fBPP; // Replacing memcpy with this switch statement is slightly faster switch (fBPP) { case 4: @@ -1016,6 +1067,7 @@ ImageProcessor::CopyPixel(uchar* dest, int32 destX, int32 destY, const uchar* sr } } + // Note: For B_CMAP8 InvertPixel inverts the color index not the color value! void ImageProcessor::InvertPixel(int32 x, int32 y, uchar* dest, const uchar* src) @@ -1035,18 +1087,19 @@ ImageProcessor::InvertPixel(int32 x, int32 y, uchar* dest, const uchar* src) } } -// Note: On my systems, the operation kInvert shows a speedup on multiple CPUs only! + +// Note: On my systems, the operation kInvert shows a speedup on +// multiple CPUs only! void ImageProcessor::Run(int32 i, int32 n) { int32 from, to; - int32 height = (fHeight+1) / n; + int32 height = (fHeight + 1) / n; from = i * height; - if (i+1 == n) { + if (i + 1 == n) to = fHeight; - } else { + else to = from + height - 1; - } int32 x, y, destX, destY; const uchar* src = (uchar*)GetSrcImage()->Bits(); @@ -1054,8 +1107,8 @@ ImageProcessor::Run(int32 i, int32 n) switch (fOp) { case kRotateClockwise: - for (y = from; y <= to; y ++) { - for (x = 0; x <= fWidth; x ++) { + for (y = from; y <= to; y++) { + for (x = 0; x <= fWidth; x++) { destX = fHeight - y; destY = x; CopyPixel(dest, destX, destY, src, x, y); @@ -1097,5 +1150,4 @@ ImageProcessor::Run(int32 i, int32 n) } break; } - } diff --git a/src/apps/showimage/Filter.h b/src/apps/showimage/Filter.h index 4419361df5..8021ca133f 100644 --- a/src/apps/showimage/Filter.h +++ b/src/apps/showimage/Filter.h @@ -63,16 +63,17 @@ const int32 kFPOne = to_fixed_point(1); // Used by class Filter class FilterThread { public: - FilterThread(Filter* filter, int32 i, int32 n, bool runInCurrentThread = false); + FilterThread(Filter* filter, int32 i, int32 n, + bool runInCurrentThread = false); ~FilterThread(); private: status_t Run(); static status_t worker_thread(void* data); - Filter* fFilter; - int32 fI; - int32 fN; + Filter* fFilter; + int32 fI; + int32 fN; }; class Filter { @@ -142,26 +143,27 @@ private: // Returns the number of active CPUs int32 CPUCount() const { return fCPUCount; } - BMessenger fListener; - uint32 fWhat; - int32 fCPUCount; // the number of active CPUs - bool fStarted; // has Start() been called? - sem_id fWaitForThreads; // to exit - int32 fN; // the number of used filter threads - volatile int32 fNumberOfThreads; // the current number of FilterThreads - volatile bool fIsRunning; // FilterThreads should process data as long as it is true - BBitmap* fSrcImage; - bool fDestImageInitialized; - BBitmap* fDestImage; + BMessenger fListener; + uint32 fWhat; + int32 fCPUCount; // the number of active CPUs + bool fStarted; // has Start() been called? + sem_id fWaitForThreads; // to exit + int32 fN; // the number of used filter threads + volatile int32 fNumberOfThreads; // the current number of FilterThreads + volatile bool fIsRunning; // FilterThreads should process data as long as it is true + BBitmap* fSrcImage; + bool fDestImageInitialized; + BBitmap* fDestImage; #if TIME_FILTER - BStopWatch* fStopWatch; + BStopWatch* fStopWatch; #endif }; // Scales and optionally dithers an image class Scaler : public Filter { public: - Scaler(BBitmap* image, BRect rect, BMessenger listener, uint32 what, bool dither); + Scaler(BBitmap* image, BRect rect, BMessenger listener, uint32 what, + bool dither); ~Scaler(); BBitmap* CreateDestImage(BBitmap* srcImage); @@ -173,7 +175,9 @@ public: private: void ScaleBilinear(int32 fromRow, int32 toRow); void ScaleBilinearFP(int32 fromRow, int32 toRow); - inline void RowValues(float* sum, const uchar* srcData, intType srcW, intType fromX, intType toX, const float a0X, const float a1X, const int32 kBPP); + inline void RowValues(float* sum, const uchar* srcData, intType srcW, + intType fromX, intType toX, const float a0X, + const float a1X, const int32 kBPP); void DownScaleBilinear(int32 fromRow, int32 toRow); static inline uchar Limit(intType value); void Dither(int32 fromRow, int32 toRow); @@ -195,14 +199,16 @@ public: kNumberOfAffineTransformations = 4 }; - ImageProcessor(enum operation op, BBitmap* image, BMessenger listener, uint32 what); + ImageProcessor(enum operation op, BBitmap* image, BMessenger listener, + uint32 what); BBitmap* CreateDestImage(BBitmap* srcImage); int32 GetNumberOfUnits(); void Run(int32 i, int32 n); private: int32 BytesPerPixel(color_space cs) const; - inline void CopyPixel(uchar* dest, int32 destX, int32 destY, const uchar* src, int32 x, int32 y); + inline void CopyPixel(uchar* dest, int32 destX, int32 destY, + const uchar* src, int32 x, int32 y); inline void InvertPixel(int32 x, int32 y, uchar* dest, const uchar* src); enum operation fOp; diff --git a/src/apps/showimage/ImageFileNavigator.cpp b/src/apps/showimage/ImageFileNavigator.cpp index b9ed68de4e..bf32b106c2 100644 --- a/src/apps/showimage/ImageFileNavigator.cpp +++ b/src/apps/showimage/ImageFileNavigator.cpp @@ -374,14 +374,16 @@ AutoAdjustingNavigator::~AutoAdjustingNavigator() bool -AutoAdjustingNavigator::FindNextImage(const entry_ref& currentRef, entry_ref& nextRef, - bool next, bool rewind) +AutoAdjustingNavigator::FindNextImage(const entry_ref& currentRef, + entry_ref& nextRef, bool next, bool rewind) { if (_CheckForTracker(currentRef)) - return fTrackerNavigator->FindNextImage(currentRef, nextRef, next, rewind); + return fTrackerNavigator->FindNextImage(currentRef, nextRef, next, + rewind); if (fFolderNavigator != NULL) - return fFolderNavigator->FindNextImage(currentRef, nextRef, next, rewind); + return fFolderNavigator->FindNextImage(currentRef, nextRef, next, + rewind); return false; } diff --git a/src/apps/showimage/PrintOptionsWindow.cpp b/src/apps/showimage/PrintOptionsWindow.cpp index fca276f913..782e43e70c 100644 --- a/src/apps/showimage/PrintOptionsWindow.cpp +++ b/src/apps/showimage/PrintOptionsWindow.cpp @@ -15,10 +15,10 @@ #include #include #include -#include #include -#include +#include #include +#include #include #include "ShowImageConstants.h" @@ -73,7 +73,7 @@ PrintOptions::SetWidth(float w) void PrintOptions::SetHeight(float h) { - fWidth = (fBounds.Width()+1) * h / (fBounds.Height()+1); + fWidth = (fBounds.Width() + 1) * h / (fBounds.Height() + 1); fHeight = h; } diff --git a/src/apps/showimage/ProgressWindow.cpp b/src/apps/showimage/ProgressWindow.cpp index 08221e5d91..70df9875f8 100644 --- a/src/apps/showimage/ProgressWindow.cpp +++ b/src/apps/showimage/ProgressWindow.cpp @@ -37,7 +37,7 @@ ProgressWindow::ProgressWindow() { BRect rect = Bounds(); - BView *view = new BView(rect, NULL, B_FOLLOW_ALL, B_WILL_DRAW); + BView* view = new BView(rect, NULL, B_FOLLOW_ALL, B_WILL_DRAW); view->SetViewColor(ui_color(B_PANEL_BACKGROUND_COLOR)); AddChild(view); @@ -106,7 +106,7 @@ ProgressWindow::Stop() void -ProgressWindow::MessageReceived(BMessage *message) +ProgressWindow::MessageReceived(BMessage* message) { switch (message->what) { case kMsgShow: @@ -123,7 +123,7 @@ ProgressWindow::MessageReceived(BMessage *message) if (message->FindFloat("percent", &percent) == B_OK) fStatusBar->Update(percent - fStatusBar->CurrentValue()); - const char *text; + const char* text; if (message->FindString("message", &text) == B_OK) fStatusBar->SetText(text); diff --git a/src/apps/showimage/SelectionBox.cpp b/src/apps/showimage/SelectionBox.cpp index 3fd92dbefb..08daf1701a 100644 --- a/src/apps/showimage/SelectionBox.cpp +++ b/src/apps/showimage/SelectionBox.cpp @@ -109,13 +109,13 @@ SelectionBox::Animate() { // rotate up uchar p = fPatternUp.data[0]; - for (int i = 0; i <= 6; i ++) + for (int i = 0; i <= 6; i++) fPatternUp.data[i] = fPatternUp.data[i + 1]; fPatternUp.data[7] = p; // rotate down p = fPatternDown.data[7]; - for (int i = 7; i >= 1; i --) + for (int i = 7; i >= 1; i--) fPatternDown.data[i] = fPatternDown.data[i - 1]; fPatternDown.data[0] = p; @@ -170,7 +170,7 @@ SelectionBox::_InitPatterns() uchar p; uchar p1 = 0x33; uchar p2 = 0xCC; - for (int i = 0; i <= 7; i ++) { + for (int i = 0; i <= 7; i++) { fPatternLeft.data[i] = p1; fPatternRight.data[i] = p2; if ((i / 2) % 2 == 0) diff --git a/src/apps/showimage/ShowImageApp.cpp b/src/apps/showimage/ShowImageApp.cpp index 00b45a1533..c3147da98e 100644 --- a/src/apps/showimage/ShowImageApp.cpp +++ b/src/apps/showimage/ShowImageApp.cpp @@ -207,7 +207,7 @@ void ShowImageApp::_BroadcastToWindows(BMessage* message) { const int32 count = CountWindows(); - for (int32 i = 0; i < count; i ++) { + for (int32 i = 0; i < count; i++) { // BMessenger checks for us if BWindow is still a valid object BMessenger messenger(WindowAt(i)); messenger.SendMessage(message); diff --git a/src/apps/showimage/ShowImageUndo.cpp b/src/apps/showimage/ShowImageUndo.cpp index 31a9073a68..d4c2ad7cf8 100644 --- a/src/apps/showimage/ShowImageUndo.cpp +++ b/src/apps/showimage/ShowImageUndo.cpp @@ -64,7 +64,7 @@ ShowImageUndo::SendUndoStateMessage(bool bCanUndo) void -ShowImageUndo::SetTo(BRect rect, BBitmap *restore, BBitmap *selection) +ShowImageUndo::SetTo(BRect rect, BBitmap* restore, BBitmap* selection) { // NOTE: THIS FUNCTION DOES NOT MAKE COPIES OF THE BITMAPS PASSED TO IT InternalClear(); @@ -79,7 +79,7 @@ ShowImageUndo::SetTo(BRect rect, BBitmap *restore, BBitmap *selection) void -ShowImageUndo::Undo(BRect rect, BBitmap *restore, BBitmap *selection) +ShowImageUndo::Undo(BRect rect, BBitmap* restore, BBitmap* selection) { // NOTE: THIS FUNCTION DOES NOT MAKE COPIES OF THE BITMAPS PASSED TO IT fUndoType = UNDO_REDO; diff --git a/src/apps/showimage/ShowImageView.cpp b/src/apps/showimage/ShowImageView.cpp index 4551cf1f42..86b3ee4c8a 100644 --- a/src/apps/showimage/ShowImageView.cpp +++ b/src/apps/showimage/ShowImageView.cpp @@ -90,8 +90,8 @@ ShowImageView::fTransformation[ImageProcessor::kNumberOfAffineTransformations] {k0V, k90V, k0H, k270V, k0, k90, k180, k270} }; -const rgb_color kAlphaLow = (rgb_color){ 0xbb, 0xbb, 0xbb, 0xff }; -const rgb_color kAlphaHigh = (rgb_color){ 0xe0, 0xe0, 0xe0, 0xff }; +const rgb_color kAlphaLow = (rgb_color) { 0xbb, 0xbb, 0xbb, 0xff }; +const rgb_color kAlphaHigh = (rgb_color) { 0xe0, 0xe0, 0xe0, 0xff }; const uint32 kMsgPopUpMenuClosed = 'pmcl'; @@ -129,17 +129,16 @@ compose_checker_background(const BBitmap* bitmap) p[3] = 255; alpha = 255 - alpha; if (x % 10 >= 5) { - if (i % 10 >= 5) { + if (i % 10 >= 5) blend_colors(p, kAlphaLow.red, kAlphaLow.green, kAlphaLow.blue, alpha); - } else { + else blend_colors(p, kAlphaHigh.red, kAlphaHigh.green, kAlphaHigh.blue, alpha); - } + } else { - if (i % 10 >= 5) { + if (i % 10 >= 5) blend_colors(p, kAlphaHigh.red, kAlphaHigh.green, kAlphaHigh.blue, alpha); - } else { + else blend_colors(p, kAlphaLow.red, kAlphaLow.green, kAlphaLow.blue, alpha); - } } } p += 4; @@ -171,7 +170,7 @@ PopUpMenu::~PopUpMenu() // #pragma mark - -ShowImageView::ShowImageView(BRect rect, const char *name, uint32 resizingMode, +ShowImageView::ShowImageView(BRect rect, const char* name, uint32 resizingMode, uint32 flags) : BView(rect, name, resizingMode, flags), @@ -249,9 +248,8 @@ ShowImageView::Pulse() BPoint mousePos; uint32 buttons; GetMouse(&mousePos, &buttons, false); - if (Bounds().Contains(mousePos)) { + if (Bounds().Contains(mousePos)) be_app->ObscureCursor(); - } } else fHideCursorCountDown--; } @@ -263,7 +261,7 @@ ShowImageView::Pulse() void -ShowImageView::_SendMessageToWindow(BMessage *message) +ShowImageView::_SendMessageToWindow(BMessage* message) { BMessenger target(Window()); target.SendMessage(message); @@ -605,18 +603,18 @@ ShowImageView::_DrawBackground(BRect border) { BRect bounds(Bounds()); // top - FillRect(BRect(0, 0, bounds.right, border.top-1), B_SOLID_LOW); + FillRect(BRect(0, 0, bounds.right, border.top - 1), B_SOLID_LOW); // left - FillRect(BRect(0, border.top, border.left-1, border.bottom), B_SOLID_LOW); + FillRect(BRect(0, border.top, border.left - 1, border.bottom), B_SOLID_LOW); // right - FillRect(BRect(border.right+1, border.top, bounds.right, border.bottom), B_SOLID_LOW); + FillRect(BRect(border.right + 1, border.top, bounds.right, border.bottom), B_SOLID_LOW); // bottom - FillRect(BRect(0, border.bottom+1, bounds.right, bounds.bottom), B_SOLID_LOW); + FillRect(BRect(0, border.bottom + 1, bounds.right, bounds.bottom), B_SOLID_LOW); } void -ShowImageView::_LayoutCaption(BFont &font, BPoint &pos, BRect &rect) +ShowImageView::_LayoutCaption(BFont& font, BPoint& pos, BRect& rect) { font_height fontHeight; float width, height; @@ -790,7 +788,7 @@ ShowImageView::_CopySelection(uchar alpha, bool imageSize) bool ShowImageView::_AddSupportedTypes(BMessage* msg, BBitmap* bitmap) { - BTranslatorRoster *roster = BTranslatorRoster::Default(); + BTranslatorRoster* roster = BTranslatorRoster::Default(); if (roster == NULL) return false; @@ -812,9 +810,9 @@ ShowImageView::_AddSupportedTypes(BMessage* msg, BBitmap* bitmap) int32 count; roster->GetOutputFormats(info[i].translator, &formats, &count); for (int32 j = 0; j < count; j++) { - if (fMimeType == formats[j].MIME) { + if (fMimeType == formats[j].MIME) foundCurrent = true; - } else if (strcmp(formats[j].MIME, "image/x-be-bitmap") != 0) { + else if (strcmp(formats[j].MIME, "image/x-be-bitmap") != 0) { foundOther = true; // needed to send data in message msg->AddString("be:types", formats[j].MIME); @@ -932,7 +930,7 @@ ShowImageView::SaveToFile(BDirectory* dir, const char* name, BBitmap* bitmap, bool loop = true; while (loop) { - BTranslatorRoster *roster = BTranslatorRoster::Default(); + BTranslatorRoster* roster = BTranslatorRoster::Default(); if (!roster) break; // write data @@ -954,7 +952,7 @@ ShowImageView::SaveToFile(BDirectory* dir, const char* name, BBitmap* bitmap, char buffer[512]; snprintf(buffer, sizeof(buffer), B_TRANSLATE("The file '%s' could not " "be written."), name); - BAlert *palert = new BAlert("", buffer, B_TRANSLATE("OK")); + BAlert* palert = new BAlert("", buffer, B_TRANSLATE("OK")); palert->Go(); } @@ -965,14 +963,16 @@ ShowImageView::SaveToFile(BDirectory* dir, const char* name, BBitmap* bitmap, void -ShowImageView::_SendInMessage(BMessage* msg, BBitmap* bitmap, translation_format* format) +ShowImageView::_SendInMessage(BMessage* msg, BBitmap* bitmap, + translation_format* format) { BMessage reply(B_MIME_DATA); BBitmapStream stream(bitmap); // destructor deletes bitmap - BTranslatorRoster *roster = BTranslatorRoster::Default(); + BTranslatorRoster* roster = BTranslatorRoster::Default(); BMallocIO memStream; if (roster->Translate(&stream, NULL, NULL, &memStream, format->type) == B_OK) { - reply.AddData(format->MIME, B_MIME_TYPE, memStream.Buffer(), memStream.BufferLength()); + reply.AddData(format->MIME, B_MIME_TYPE, memStream.Buffer(), + memStream.BufferLength()); msg->SendReply(&reply); } } @@ -1172,7 +1172,7 @@ ShowImageView::MouseMoved(BPoint point, uint32 state, const BMessage* message) fHideCursorCountDown = HIDE_CURSOR_DELAY_TIME; if (fHideCursor) { // Show toolbar when mouse hits top 15 pixels, hide otherwise - _ShowToolBarIfEnabled(point.y <= 15); + _ShowToolBarIfEnabled(ConvertToScreen(point).y <= 15); } if (fCreatingSelection) _UpdateSelectionRect(point, false); @@ -1335,7 +1335,7 @@ ShowImageView::KeyDown(const char* bytes, int32 numBytes) void -ShowImageView::_MouseWheelChanged(BMessage *msg) +ShowImageView::_MouseWheelChanged(BMessage* msg) { // The BeOS driver does not currently support // X wheel scrolling, therefore, dx is zero. @@ -1379,14 +1379,14 @@ void ShowImageView::_ShowPopUpMenu(BPoint screen) { if (!fShowingPopUpMenu) { - PopUpMenu* menu = new PopUpMenu("PopUpMenu", this); + PopUpMenu* menu = new PopUpMenu("PopUpMenu", this); - ShowImageWindow* window = dynamic_cast(Window()); - if (window != NULL) - window->BuildContextMenu(menu); + ShowImageWindow* window = dynamic_cast(Window()); + if (window != NULL) + window->BuildContextMenu(menu); - menu->Go(screen, true, true, true); - fShowingPopUpMenu = true; + menu->Go(screen, true, true, true); + fShowingPopUpMenu = true; } } @@ -1430,18 +1430,18 @@ ShowImageView::FixupScrollBar(orientation o, float bitmapLength, float viewLength) { float prop, range; - BScrollBar *psb; + BScrollBar* psb; psb = ScrollBar(o); if (psb) { range = bitmapLength - viewLength; - if (range < 0.0) { + if (range < 0.0) range = 0.0; - } + prop = viewLength / bitmapLength; - if (prop > 1.0) { + if (prop > 1.0) prop = 1.0; - } + psb->SetRange(0, range); psb->SetProportion(prop); psb->SetSteps(10, 100); @@ -1481,22 +1481,23 @@ ShowImageView::Undo() // backup current selection BRect undoneSelRect; - BBitmap *undoneSelection; + BBitmap* undoneSelection; undoneSelRect = fSelectionBox.Bounds(); undoneSelection = _CopySelection(); if (undoType == UNDO_UNDO) { - BBitmap *undoRestore; + BBitmap* undoRestore; undoRestore = fUndo.GetRestoreBitmap(); if (undoRestore) _MergeWithBitmap(undoRestore, fUndo.GetRect()); } // restore previous image/selection - BBitmap *undoSelection; + BBitmap* undoSelection; undoSelection = fUndo.GetSelectionBitmap(); // NOTE: ShowImageView is responsible for deleting this bitmap - // (Which it will, as it would with a fSelectionBitmap that it allocated itself) + // (Which it will, as it would with a fSelectionBitmap that it + // allocated itself) if (!undoSelection) _SetHasSelection(false); else { @@ -1683,10 +1684,14 @@ ShowImageView::_DoImageOperation(ImageProcessor::operation op, bool quiet) // update orientation state if (op != ImageProcessor::kInvert) { // Note: If one of these fails, check its definition in class ImageProcessor. -// ASSERT(ImageProcessor::kRotateClockwise < ImageProcessor::kNumberOfAffineTransformations); -// ASSERT(ImageProcessor::kRotateCounterClockwise < ImageProcessor::kNumberOfAffineTransformations); -// ASSERT(ImageProcessor::kFlipLeftToRight < ImageProcessor::kNumberOfAffineTransformations); -// ASSERT(ImageProcessor::kFlipTopToBottom < ImageProcessor::kNumberOfAffineTransformations); +// ASSERT(ImageProcessor::kRotateClockwise < +// ImageProcessor::kNumberOfAffineTransformations); +// ASSERT(ImageProcessor::kRotateCounterClockwise < +// ImageProcessor::kNumberOfAffineTransformations); +// ASSERT(ImageProcessor::kFlipLeftToRight < +// ImageProcessor::kNumberOfAffineTransformations); +// ASSERT(ImageProcessor::kFlipTopToBottom < +// ImageProcessor::kNumberOfAffineTransformations); fImageOrientation = fTransformation[op][fImageOrientation]; } @@ -1697,9 +1702,8 @@ ShowImageView::_DoImageOperation(ImageProcessor::operation op, bool quiet) if (orientation != k0) { node.WriteAttr(SHOW_IMAGE_ORIENTATION_ATTRIBUTE, B_INT32_TYPE, 0, &orientation, sizeof(orientation)); - } else { + } else node.RemoveAttr(SHOW_IMAGE_ORIENTATION_ATTRIBUTE); - } } // set new bitmap @@ -1749,7 +1753,7 @@ ShowImageView::ResizeImage(int w, int h) if (fBitmap == NULL || w < 1 || h < 1) return; - Scaler scaler(fBitmap, BRect(0, 0, w-1, h-1), BMessenger(), 0, false); + Scaler scaler(fBitmap, BRect(0, 0, w - 1, h - 1), BMessenger(), 0, false); scaler.Start(false); BBitmap* scaled = scaler.DetachBitmap(); if (scaled == NULL) { @@ -1784,17 +1788,17 @@ ShowImageView::_SetIcon(bool clear, icon_size which) BRect rect(fBitmap->Bounds()); float s; - s = size / (rect.Width()+1.0); + s = size / (rect.Width() + 1.0); - if (s * (rect.Height()+1.0) <= size) { - rect.right = size-1; - rect.bottom = static_cast(s * (rect.Height()+1.0))-1; + if (s * (rect.Height() + 1.0) <= size) { + rect.right = size - 1; + rect.bottom = static_cast(s * (rect.Height() + 1.0)) - 1; // center vertically rect.OffsetBy(0, (size - rect.IntegerHeight()) / 2); } else { - s = size / (rect.Height()+1.0); - rect.right = static_cast(s * (rect.Width()+1.0))-1; - rect.bottom = size-1; + s = size / (rect.Height() + 1.0); + rect.right = static_cast(s * (rect.Width() + 1.0)) - 1; + rect.bottom = size - 1; // center horizontally rect.OffsetBy((size - rect.IntegerWidth()) / 2, 0); } @@ -1806,7 +1810,7 @@ ShowImageView::_SetIcon(bool clear, icon_size which) scaler.Start(false); ASSERT(thumbnail->ColorSpace() == B_CMAP8); // create icon from thumbnail - BBitmap icon(BRect(0, 0, size-1, size-1), B_CMAP8); + BBitmap icon(BRect(0, 0, size - 1, size - 1), B_CMAP8); memset(icon.Bits(), B_TRANSPARENT_MAGIC_CMAP8, icon.BitsLength()); BScreen screen; const uchar* src = (uchar*)thumbnail->Bits(); @@ -1816,10 +1820,10 @@ ShowImageView::_SetIcon(bool clear, icon_size which) const int32 dx = (int32)rect.left; const int32 dy = (int32)rect.top; - for (int32 y = 0; y <= rect.IntegerHeight(); y ++) { - for (int32 x = 0; x <= rect.IntegerWidth(); x ++) { + for (int32 y = 0; y <= rect.IntegerHeight(); y++) { + for (int32 x = 0; x <= rect.IntegerWidth(); x++) { const uchar* s = src + y * srcBPR + x; - uchar* d = dest + (y+dy) * destBPR + (x+dx); + uchar* d = dest + (y + dy) * destBPR + (x + dx); *d = *s; } } diff --git a/src/apps/showimage/ShowImageView.h b/src/apps/showimage/ShowImageView.h index b72be7d104..b14985b028 100644 --- a/src/apps/showimage/ShowImageView.h +++ b/src/apps/showimage/ShowImageView.h @@ -104,20 +104,20 @@ public: private: enum image_orientation { - k0, // 0 - k90, // 1 - k180, // 2 - k270, // 3 - k0V, // 4 - k90V, // 5 - k0H, // 6 - k270V, // 7 + k0, // 0 + k90, // 1 + k180, // 2 + k270, // 3 + k0V, // 4 + k90V, // 5 + k0H, // 6 + k270V, // 7 kNumberOfOrientations, }; void _SetHasSelection(bool bHasSelection); void _AnimateSelection(bool a); - void _SendMessageToWindow(BMessage *message); + void _SendMessageToWindow(BMessage* message); void _SendMessageToWindow(uint32 code); void _Notify(); void _UpdateStatusText(); diff --git a/src/apps/showimage/ShowImageWindow.cpp b/src/apps/showimage/ShowImageWindow.cpp index ac52492589..6aa6e9f613 100644 --- a/src/apps/showimage/ShowImageWindow.cpp +++ b/src/apps/showimage/ShowImageWindow.cpp @@ -990,7 +990,8 @@ ShowImageWindow::MessageReceived(BMessage* message) backgroundsMessage.AddRef("refs", fImageView->Image()); // This is used in the Backgrounds code for scaled placement backgroundsMessage.AddInt32("placement", 'scpl'); - be_roster->Launch("application/x-vnd.haiku-backgrounds", &backgroundsMessage); + be_roster->Launch("application/x-vnd.haiku-backgrounds", + &backgroundsMessage); break; } @@ -1050,15 +1051,15 @@ ShowImageWindow::MessageReceived(BMessage* message) if (message->FindFloat("offset", &offset) == B_OK && message->FindBool("show", &show) == B_OK) { // Compensate rounding errors with the final placement - if (show) { + if (show) fToolBarView->MoveTo(fToolBarView->Frame().left, 0); - } else { + else { fToolBarView->MoveTo(fToolBarView->Frame().left, offset); fToolBarView->Hide(); } BRect frame = fToolBarView->Parent()->Bounds(); frame.top = fToolBarView->Frame().bottom + 1; - fScrollView->MoveTo(0, frame.top); + fScrollView->MoveTo(fScrollView->Frame().left, frame.top); fScrollView->ResizeTo(fScrollView->Bounds().Width(), frame.Height() - B_H_SCROLL_BAR_HEIGHT + 1); fVerticalScrollBar->MoveTo( @@ -1174,7 +1175,8 @@ ShowImageWindow::_SaveToFile(BMessage* message) int32 i; for (i = 0; i < outCount; i++) { - if (outFormat[i].group == B_TRANSLATOR_BITMAP && outFormat[i].type == outType) + if (outFormat[i].group == B_TRANSLATOR_BITMAP && outFormat[i].type + == outType) break; } if (i == outCount) @@ -1271,7 +1273,7 @@ ShowImageWindow::_ToggleFullScreen() BScreen screen; fWindowFrame = Frame(); frame = screen.Frame(); - frame.top -= fBar->Bounds().Height()+1; + frame.top -= fBar->Bounds().Height() + 1; frame.right += B_V_SCROLL_BAR_WIDTH; frame.bottom += B_H_SCROLL_BAR_HEIGHT; frame.InsetBy(-1, -1); // PEN_SIZE in ShowImageView @@ -1414,7 +1416,7 @@ ShowImageWindow::_Print(BMessage* msg) float width; switch (fPrintOptions.Option()) { case PrintOptions::kFitToPage: { - float w1 = printableRect.Width()+1; + float w1 = printableRect.Width() + 1; float w2 = imageWidth * (printableRect.Height() + 1) / imageHeight; if (w2 < w1) diff --git a/src/apps/showimage/ToolBarView.cpp b/src/apps/showimage/ToolBarView.cpp index e1c2714ffa..a1ec2e20d1 100644 --- a/src/apps/showimage/ToolBarView.cpp +++ b/src/apps/showimage/ToolBarView.cpp @@ -51,8 +51,8 @@ ToolBarView::AddAction(uint32 command, BHandler* target, const BBitmap* icon, void -ToolBarView::AddAction(BMessage* message, BHandler* target, const BBitmap* icon, - const char* toolTipText) +ToolBarView::AddAction(BMessage* message, BHandler* target, + const BBitmap* icon, const char* toolTipText) { BIconButton* button = new BIconButton(NULL, NULL, message, target); button->SetIcon(icon); diff --git a/src/apps/soundrecorder/RecorderWindow.cpp b/src/apps/soundrecorder/RecorderWindow.cpp index f5c6e7ceaf..11b5a92997 100644 --- a/src/apps/soundrecorder/RecorderWindow.cpp +++ b/src/apps/soundrecorder/RecorderWindow.cpp @@ -62,7 +62,7 @@ // default window positioning static const float MIN_WIDTH = 400.0f; -static const float MIN_HEIGHT = 336.0f; +static const float MIN_HEIGHT = 175.0f; static const float XPOS = 100.0f; static const float YPOS = 200.0f; @@ -364,7 +364,7 @@ RecorderWindow::InitWindow() fSoundList = new SoundListView(r, B_TRANSLATE("Sound List"), B_FOLLOW_ALL); fSoundList->SetSelectionMessage(new BMessage(SOUND_SELECTED)); - fSoundList->SetViewColor(216, 216, 216); + fSoundList->SetViewColor(ui_color(B_PANEL_BACKGROUND_COLOR)); BScrollView *scroller = new BScrollView("scroller", fSoundList, B_FOLLOW_ALL, 0, false, true, B_FANCY_BORDER); fBottomBox->AddChild(scroller); @@ -374,43 +374,75 @@ RecorderWindow::InitWindow() r.bottom -= 25; r.InsetBy(10, 8); r.top -= 1; - fFileInfoBox = new BBox(r, "fileinfo", B_FOLLOW_LEFT | B_FOLLOW_BOTTOM); + fFileInfoBox = new BBox(r, "fileinfo", B_FOLLOW_LEFT); fFileInfoBox->SetLabel(B_TRANSLATE("File info")); + fFileInfoBox->SetHighColor(ui_color(B_PANEL_TEXT_COLOR)); + + BFont font = be_plain_font; + font.SetSize(font.Size() * 0.92f); + font_height height; + font.GetHeight(&height); + float fontHeight = height.ascent + height.leading + height.descent; + r = fFileInfoBox->Bounds(); r.left = 8; - r.top = 13; - r.bottom = r.top + 15; + r.top = fontHeight + 6; + r.bottom = r.top + fontHeight + 3; r.right -= 10; fFilename = new BStringView(r, "filename", B_TRANSLATE("File name:")); fFileInfoBox->AddChild(fFilename); - r.top += 13; - r.bottom = r.top + 15; + fFilename->SetFont(&font, B_FONT_SIZE); + fFilename->SetHighColor(ui_color(B_PANEL_TEXT_COLOR)); + + r.top += fontHeight; + r.bottom = r.top + fontHeight + 3; fFormat = new BStringView(r, "format", B_TRANSLATE("Format:")); fFileInfoBox->AddChild(fFormat); - r.top += 13; - r.bottom = r.top + 15; + fFormat->SetFont(&font, B_FONT_SIZE); + fFormat->SetHighColor(ui_color(B_PANEL_TEXT_COLOR)); + + r.top += fontHeight; + r.bottom = r.top + fontHeight + 3; fCompression = new BStringView(r, "compression", B_TRANSLATE("Compression:")); fFileInfoBox->AddChild(fCompression); - r.top += 13; - r.bottom = r.top + 15; + fCompression->SetFont(&font, B_FONT_SIZE); + fCompression->SetHighColor(ui_color(B_PANEL_TEXT_COLOR)); + + r.top += fontHeight; + r.bottom = r.top + fontHeight + 3; fChannels = new BStringView(r, "channels", B_TRANSLATE("Channels:")); fFileInfoBox->AddChild(fChannels); - r.top += 13; - r.bottom = r.top + 15; + fChannels->SetFont(&font, B_FONT_SIZE); + fChannels->SetHighColor(ui_color(B_PANEL_TEXT_COLOR)); + + r.top += fontHeight; + r.bottom = r.top + fontHeight + 3; fSampleSize = new BStringView(r, "samplesize", B_TRANSLATE("Sample size:")); fFileInfoBox->AddChild(fSampleSize); - r.top += 13; - r.bottom = r.top + 15; + fSampleSize->SetFont(&font, B_FONT_SIZE); + fSampleSize->SetHighColor(ui_color(B_PANEL_TEXT_COLOR)); + + r.top += fontHeight; + r.bottom = r.top + fontHeight + 3; fSampleRate = new BStringView(r, "samplerate", B_TRANSLATE("Sample rate:")); fFileInfoBox->AddChild(fSampleRate); - r.top += 13; - r.bottom = r.top + 15; + fSampleRate->SetFont(&font, B_FONT_SIZE); + fSampleRate->SetHighColor(ui_color(B_PANEL_TEXT_COLOR)); + + r.top += fontHeight; + r.bottom = r.top + fontHeight + 3; fDuration = new BStringView(r, "duration", B_TRANSLATE("Duration:")); fFileInfoBox->AddChild(fDuration); + fDuration->SetFont(&font, B_FONT_SIZE); + fDuration->SetHighColor(ui_color(B_PANEL_TEXT_COLOR)); + + fFileInfoBox->ResizeTo(fFileInfoBox->Frame().Width(), + r.bottom + fontHeight / 2.0f); + fDeployedHeight = MIN_HEIGHT + fFileInfoBox->Bounds().Height() + 40.0f; // Input selection lists all available physical inputs that produce // buffers with B_MEDIA_RAW_AUDIO format data. @@ -451,12 +483,10 @@ RecorderWindow::InitWindow() } // Create the actual widget - BRect frame(fBottomBox->Bounds()); - r = frame; - r.left = 42; - r.right = (r.left + r.right) / 2; - r.InsetBy(10,10); - r.top = r.bottom - 18; + r = fFileInfoBox->Bounds(); + r.top = r.bottom + 2; + r.bottom = r.top + 18; + r.InsetBy(10, 10); fInputField = new BMenuField(r, "Input", B_TRANSLATE("Input:"), popup); fInputField->SetDivider(fInputField->StringWidth(B_TRANSLATE("Input:")) + 4.0f); @@ -465,9 +495,8 @@ RecorderWindow::InitWindow() fBottomBox->AddChild(fFileInfoBox); fBottomBox->Hide(); - CalcSizes(Frame().Width(), MIN_HEIGHT-161); - ResizeTo(Frame().Width(), MIN_HEIGHT-161); - + CalcSizes(MIN_WIDTH, MIN_HEIGHT); + ResizeTo(Frame().Width(), MIN_HEIGHT); popup->Superitem()->SetLabel(selected_name); @@ -551,12 +580,12 @@ RecorderWindow::MessageReceived(BMessage * message) case VIEW_LIST: if (fUpDownButton->Value() == B_CONTROL_ON) { fBottomBox->Show(); - CalcSizes(Frame().Width(), MIN_HEIGHT); - ResizeTo(Frame().Width(), MIN_HEIGHT); + CalcSizes(MIN_WIDTH, fDeployedHeight); + ResizeTo(Frame().Width(), fDeployedHeight); } else { fBottomBox->Hide(); - CalcSizes(Frame().Width(), MIN_HEIGHT-161); - ResizeTo(Frame().Width(), MIN_HEIGHT-161); + CalcSizes(MIN_WIDTH, MIN_HEIGHT); + ResizeTo(Frame().Width(), MIN_HEIGHT); } break; diff --git a/src/apps/soundrecorder/RecorderWindow.h b/src/apps/soundrecorder/RecorderWindow.h index 34dec3a226..63f6b01c4b 100644 --- a/src/apps/soundrecorder/RecorderWindow.h +++ b/src/apps/soundrecorder/RecorderWindow.h @@ -94,6 +94,8 @@ private: BDirectory fTempDir; int fTempCount; + float fDeployedHeight; + BBox * fBottomBox; BBox * fFileInfoBox; BStringView *fFilename; diff --git a/src/apps/soundrecorder/SoundListView.cpp b/src/apps/soundrecorder/SoundListView.cpp index bd3bcab293..42cab62d92 100644 --- a/src/apps/soundrecorder/SoundListView.cpp +++ b/src/apps/soundrecorder/SoundListView.cpp @@ -34,12 +34,11 @@ void SoundListView::Draw(BRect updateRect) { if (IsEmpty()) { - SetHighColor(235,235,235); - FillRect(Bounds()); + SetLowColor(ViewColor()); + FillRect(Bounds(), B_SOLID_LOW); - SetHighColor(0,0,0); + SetHighColor(ui_color(B_PANEL_TEXT_COLOR)); BFont font(be_bold_font); - font.SetSize(12.0); SetFont(&font); font_height height; font.GetHeight(&height); @@ -58,7 +57,8 @@ void SoundListView::AttachedToWindow() { BListView::AttachedToWindow(); - SetViewColor(255,255,255); + SetViewColor(tint_color(ui_color(B_PANEL_BACKGROUND_COLOR), + B_LIGHTEN_1_TINT)); } diff --git a/src/kits/interface/ScrollBar.cpp b/src/kits/interface/ScrollBar.cpp index bf8fa2dc75..a12fdd3b9d 100644 --- a/src/kits/interface/ScrollBar.cpp +++ b/src/kits/interface/ScrollBar.cpp @@ -642,6 +642,22 @@ BScrollBar::MessageReceived(BMessage* message) ValueChanged(value); break; } + case B_MOUSE_WHEEL_CHANGED: + { + // Must handle this here since BView checks for the existence of + // scrollbars, which a scrollbar itself does not have + float deltaX = 0.0f, deltaY = 0.0f; + message->FindFloat("be:wheel_delta_x", &deltaX); + message->FindFloat("be:wheel_delta_y", &deltaY); + + if (deltaX == 0.0f && deltaY == 0.0f) + break; + + if (deltaX != 0.0f && deltaY == 0.0f) + deltaY = deltaX; + + ScrollWithMouseWheelDelta(this, deltaY); + } default: BView::MessageReceived(message); break; diff --git a/src/kits/interface/View.cpp b/src/kits/interface/View.cpp index 87fa465557..efbe9549a6 100644 --- a/src/kits/interface/View.cpp +++ b/src/kits/interface/View.cpp @@ -4350,31 +4350,12 @@ BView::MessageReceived(BMessage* msg) if (deltaX == 0.0f && deltaY == 0.0f) break; - float smallStep, largeStep; if (horizontal != NULL) { - horizontal->GetSteps(&smallStep, &largeStep); - - // pressing the option/command/control key scrolls faster - if (modifiers() - & (B_OPTION_KEY | B_COMMAND_KEY | B_CONTROL_KEY)) { - deltaX *= largeStep; - } else - deltaX *= smallStep * 3; - - horizontal->SetValue(horizontal->Value() + deltaX); + ScrollWithMouseWheelDelta(horizontal, deltaX); } if (vertical != NULL) { - vertical->GetSteps(&smallStep, &largeStep); - - // pressing the option/command/control key scrolls faster - if (modifiers() - & (B_OPTION_KEY | B_COMMAND_KEY | B_CONTROL_KEY)) { - deltaY *= largeStep; - } else - deltaY *= smallStep * 3; - - vertical->SetValue(vertical->Value() + deltaY); + ScrollWithMouseWheelDelta(vertical, deltaY); } break; } @@ -5721,6 +5702,26 @@ BView::_SwitchServerCurrentView() const } +void +BView::ScrollWithMouseWheelDelta(BScrollBar* scrollBar, float delta) +{ + if (scrollBar == NULL || delta == 0.0f) + return; + + float smallStep, largeStep; + scrollBar->GetSteps(&smallStep, &largeStep); + + // pressing the option/command/control key scrolls faster + if (modifiers() + & (B_OPTION_KEY | B_COMMAND_KEY | B_CONTROL_KEY)) { + delta *= largeStep; + } else + delta *= smallStep * 3; + + scrollBar->SetValue(scrollBar->Value() + delta); +} + + #if __GNUC__ == 2 diff --git a/src/kits/shared/Jamfile b/src/kits/shared/Jamfile index 109df80924..d56a8b6fe2 100644 --- a/src/kits/shared/Jamfile +++ b/src/kits/shared/Jamfile @@ -29,6 +29,7 @@ StaticLibrary libshared.a : RWLockManager.cpp SHA256.cpp ShakeTrackingFilter.cpp + StringForRate.cpp StringForSize.cpp Variant.cpp ; diff --git a/src/kits/shared/StringForRate.cpp b/src/kits/shared/StringForRate.cpp new file mode 100644 index 0000000000..4f0c163526 --- /dev/null +++ b/src/kits/shared/StringForRate.cpp @@ -0,0 +1,61 @@ +/* + * Copyright 2012 Haiku Inc. All rights reserved. + * Distributed under the terms of the MIT License. + */ + +#include "StringForRate.h" + +#include + +#include + +using BPrivate::gSystemCatalog; + + +#undef B_TRANSLATION_CONTEXT +#define B_TRANSLATION_CONTEXT "StringForRate" + + +namespace BPrivate { + + +const char* +string_for_rate(double rate, char* string, size_t stringSize, double base) +{ + double kbps = rate / base; + if (kbps < 1.0) { + const char* trKey = B_TRANSLATE_MARK("%.0f bps"); + snprintf(string, stringSize, gSystemCatalog.GetString(trKey, + B_TRANSLATION_CONTEXT), (int)rate); + return string; + } + double mbps = kbps / base; + if (mbps < 1.0) { + const char* trKey = B_TRANSLATE_MARK("%.0f kbps"); + snprintf(string, stringSize, gSystemCatalog.GetString(trKey, + B_TRANSLATION_CONTEXT), kbps); + return string; + } + double gbps = mbps / base; + if (gbps < 1.0) { + const char* trKey = B_TRANSLATE_MARK("%.0f mbps"); + snprintf(string, stringSize, gSystemCatalog.GetString(trKey, + B_TRANSLATION_CONTEXT), mbps); + return string; + } + double tbps = gbps / base; + if (tbps < 1.0) { + const char* trKey = B_TRANSLATE_MARK("%.0f gbps"); + snprintf(string, stringSize, gSystemCatalog.GetString(trKey, + B_TRANSLATION_CONTEXT), gbps); + return string; + } + const char* trKey = B_TRANSLATE_MARK("%.0f tbps"); + snprintf(string, stringSize, gSystemCatalog.GetString(trKey, + B_TRANSLATION_CONTEXT), tbps); + return string; +} + + +} // namespace BPrivate + diff --git a/src/system/kernel/vm/vm_page.cpp b/src/system/kernel/vm/vm_page.cpp index efedab5827..4c135a220a 100644 --- a/src/system/kernel/vm/vm_page.cpp +++ b/src/system/kernel/vm/vm_page.cpp @@ -714,7 +714,7 @@ public: private: bool fPrintStackTrace; page_num_t fPageFilter; - team_id fTeamFilter; + team_id fTeamFilter; thread_id fThreadFilter; }; @@ -1530,7 +1530,7 @@ free_page(vm_page* page, bool clear) TA(FreePage(page->physical_page_number)); #if VM_PAGE_ALLOCATION_TRACKING_AVAILABLE - page->allocation_tracking_info.Clear(); + page->allocation_tracking_info.Clear(); #endif ReadLocker locker(sFreePageQueuesLock); @@ -2295,12 +2295,12 @@ status_t page_writer(void* /*unused*/) { const uint32 kNumPages = 256; - uint32 writtenPages = 0; #ifdef TRACE_VM_PAGE + uint32 writtenPages = 0; bigtime_t lastWrittenTime = 0; -#endif bigtime_t pageCollectionTime = 0; bigtime_t pageWritingTime = 0; +#endif PageWriterRun run; if (run.Init(kNumPages) != B_OK) { @@ -2356,7 +2356,9 @@ page_writer(void* /*unused*/) // enough to do). // collect pages to be written +#ifdef TRACE_VM_PAGE pageCollectionTime -= system_time(); +#endif page_num_t maxPagesToSee = modifiedPages; @@ -2429,31 +2431,35 @@ page_writer(void* /*unused*/) numPages++; } +#ifdef TRACE_VM_PAGE pageCollectionTime += system_time(); - +#endif if (numPages == 0) continue; // write pages to disk and do all the cleanup +#ifdef TRACE_VM_PAGE pageWritingTime -= system_time(); +#endif uint32 failedPages = run.Go(); +#ifdef TRACE_VM_PAGE pageWritingTime += system_time(); // debug output only... writtenPages += numPages; if (writtenPages >= 1024) { -#ifdef TRACE_VM_PAGE bigtime_t now = system_time(); TRACE(("page writer: wrote 1024 pages (total: %llu ms, " "collect: %llu ms, write: %llu ms)\n", (now - lastWrittenTime) / 1000, pageCollectionTime / 1000, pageWritingTime / 1000)); lastWrittenTime = now; -#endif + writtenPages -= 1024; pageCollectionTime = 0; pageWritingTime = 0; } +#endif if (failedPages == numPages) pagesSinceLastSuccessfulWrite += modifiedPages - maxPagesToSee;