Merge branch 'master' of github.com:OpenELEC/OpenELEC.tv into openelec-next

This commit is contained in:
Stephan Raue 2012-09-13 00:02:33 +02:00
commit 085369fc8e
33 changed files with 1064 additions and 439 deletions

33
packages/audio/taglib/build Executable file
View File

@ -0,0 +1,33 @@
#!/bin/sh
################################################################################
# This file is part of OpenELEC - http://www.openelec.tv
# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv)
#
# This Program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This Program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with OpenELEC.tv; see the file COPYING. If not, write to
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
# http://www.gnu.org/copyleft/gpl.html
################################################################################
. config/options $1
cd $PKG_BUILD
mkdir -p build && cd build
cmake -DCMAKE_TOOLCHAIN_FILE=$CMAKE_CONF \
-DCMAKE_INSTALL_PREFIX=/usr \
..
make
$MAKEINSTALL

27
packages/audio/taglib/install Executable file
View File

@ -0,0 +1,27 @@
#!/bin/sh
################################################################################
# This file is part of OpenELEC - http://www.openelec.tv
# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv)
#
# This Program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This Program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with OpenELEC.tv; see the file COPYING. If not, write to
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
# http://www.gnu.org/copyleft/gpl.html
################################################################################
. config/options $1
mkdir -p $INSTALL/usr/lib
cp -P $PKG_BUILD/build/taglib/*.so* $INSTALL/usr/lib
cp -P $PKG_BUILD/build/bindings/c/*.so* $INSTALL/usr/lib

View File

@ -0,0 +1,36 @@
################################################################################
# This file is part of OpenELEC - http://www.openelec.tv
# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv)
#
# This Program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This Program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with OpenELEC.tv; see the file COPYING. If not, write to
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
# http://www.gnu.org/copyleft/gpl.html
################################################################################
PKG_NAME="taglib"
PKG_VERSION="1.8"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="LGPL"
PKG_SITE="http://taglib.github.com/"
PKG_URL="https://github.com/downloads/taglib/$PKG_NAME/$PKG_NAME-$PKG_VERSION.tar.gz"
PKG_DEPENDS="zlib"
PKG_BUILD_DEPENDS="toolchain zlib"
PKG_PRIORITY="optional"
PKG_SECTION="audio"
PKG_SHORTDESC="taglib: a library for reading and editing the meta-data of several popular audio formats."
PKG_LONGDESC="TagLib is a library for reading and editing the meta-data of several popular audio formats."
PKG_IS_ADDON="no"
PKG_AUTORECONF="no"

View File

@ -19,7 +19,7 @@
################################################################################
PKG_NAME="libcec"
PKG_VERSION="1.8.1"
PKG_VERSION="1.9.0"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"

42
packages/devel/pcre-host/build Executable file
View File

@ -0,0 +1,42 @@
#!/bin/sh
################################################################################
# This file is part of OpenELEC - http://www.openelec.tv
# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv)
#
# This Program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This Program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with OpenELEC.tv; see the file COPYING. If not, write to
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
# http://www.gnu.org/copyleft/gpl.html
################################################################################
. config/options $1
$SCRIPTS/unpack pcre
setup_toolchain host
cd $BUILD/pcre-*
mkdir -p m4 && do_autoreconf
mkdir -p .build-host && cd .build-host
../configure --host=$HOST_NAME \
--build=$HOST_NAME \
--prefix=$ROOT/$TOOLCHAIN \
--enable-utf8 \
--enable-unicode-properties \
--with-gnu-ld
make
make install

View File

@ -0,0 +1,36 @@
################################################################################
# This file is part of OpenELEC - http://www.openelec.tv
# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv)
#
# This Program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This Program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with OpenELEC.tv; see the file COPYING. If not, write to
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
# http://www.gnu.org/copyleft/gpl.html
################################################################################
PKG_NAME="pcre-host"
PKG_VERSION=""
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="OSS"
PKG_SITE="http://www.pcre.org/"
PKG_URL=""
PKG_DEPENDS=""
PKG_BUILD_DEPENDS="toolchain"
PKG_PRIORITY="optional"
PKG_SECTION="devel"
PKG_SHORTDESC="pcre: Perl Compatible Regulat Expressions"
PKG_LONGDESC="The PCRE library is a set of functions that implement regular expression pattern matching using the same syntax and semantics as Perl 5. PCRE has its own native API, as well as a set of wrapper functions that correspond to the POSIX regular expression API. The PCRE library is free, even for building commercial software."
PKG_IS_ADDON="no"
PKG_AUTORECONF="no"

View File

@ -24,7 +24,9 @@
cd $PKG_BUILD
mkdir -p m4 && do_autoreconf
./configure --host=$TARGET_NAME \
mkdir -p .build-target && cd .build-target
../configure --host=$TARGET_NAME \
--build=$HOST_NAME \
--prefix=/usr \
--exec-prefix=/usr \

View File

@ -23,5 +23,5 @@
. config/options $1
mkdir -p $INSTALL/usr/lib
cp -P $PKG_BUILD/.libs/libpcre*.so*[.0-9] $INSTALL/usr/lib
cp -P $PKG_BUILD/.build-target/.libs/libpcre*.so*[.0-9] $INSTALL/usr/lib

View File

@ -19,7 +19,7 @@
################################################################################
PKG_NAME="bcm2835-driver"
PKG_VERSION="790681a"
PKG_VERSION="05bb1ec"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="nonfree"

View File

@ -1,8 +1,8 @@
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 987c72d..5285fbf 100644
index 987c72d..b58af94 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -955,6 +955,22 @@ config PLAT_SPEAR
@@ -955,6 +955,23 @@ config PLAT_SPEAR
help
Support for ST's SPEAr platform (SPEAr3xx, SPEAr6xx and SPEAr13xx).
@ -14,6 +14,7 @@ index 987c72d..5285fbf 100644
+ select HAVE_SCHED_CLOCK
+ select NEED_MACH_MEMORY_H
+ select CLKDEV_LOOKUP
+ select ARCH_HAS_CPUFREQ
+ select GENERIC_CLOCKEVENTS
+ select ARM_ERRATA_411920
+ select MACH_BCM2708
@ -25,7 +26,7 @@ index 987c72d..5285fbf 100644
config ARCH_VT8500
bool "VIA/WonderMedia 85xx"
select CPU_ARM926T
@@ -1098,6 +1114,7 @@ source "arch/arm/plat-versatile/Kconfig"
@@ -1098,6 +1115,7 @@ source "arch/arm/plat-versatile/Kconfig"
source "arch/arm/mach-vt8500/Kconfig"
source "arch/arm/mach-w90x900/Kconfig"
@ -618,10 +619,10 @@ index 0000000..3b8bd74
+CONFIG_LIBCRC32C=y
diff --git a/arch/arm/configs/bcmrpi_defconfig b/arch/arm/configs/bcmrpi_defconfig
new file mode 100644
index 0000000..5ed9c30
index 0000000..35c5042
--- /dev/null
+++ b/arch/arm/configs/bcmrpi_defconfig
@@ -0,0 +1,907 @@
@@ -0,0 +1,913 @@
+# CONFIG_ARM_PATCH_PHYS_VIRT is not set
+CONFIG_EXPERIMENTAL=y
+# CONFIG_LOCALVERSION_AUTO is not set
@ -670,6 +671,12 @@ index 0000000..5ed9c30
+CONFIG_ZBOOT_ROM_BSS=0x0
+CONFIG_CMDLINE="dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 root=/dev/mmcblk0p2 rootfstype=ext3 rootwait"
+CONFIG_KEXEC=y
+CONFIG_CPU_FREQ=y
+CONFIG_CPU_FREQ_STAT=m
+CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
+CONFIG_CPU_FREQ_GOV_POWERSAVE=y
+CONFIG_CPU_FREQ_GOV_USERSPACE=y
+CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y
+CONFIG_CPU_IDLE=y
+CONFIG_VFP=y
+CONFIG_BINFMT_MISC=m
@ -2103,6 +2110,20 @@ index 207f9d6..5233d54 100644
+ENTRY(__FIQ_Branch)
+ mov pc, r8
+ENDPROC(__FIQ_Branch)
diff --git a/arch/arm/kernel/vmlinux.lds.S b/arch/arm/kernel/vmlinux.lds.S
index 20b3041..e952a30 100644
--- a/arch/arm/kernel/vmlinux.lds.S
+++ b/arch/arm/kernel/vmlinux.lds.S
@@ -174,7 +174,9 @@ SECTIONS
}
#endif
+#ifdef CONFIG_SMP
PERCPU_SECTION(32)
+#endif
#ifdef CONFIG_XIP_KERNEL
__data_loc = ALIGN(4); /* location in binary */
diff --git a/arch/arm/mach-bcm2708/Kconfig b/arch/arm/mach-bcm2708/Kconfig
new file mode 100644
index 0000000..5593167
@ -5964,10 +5985,10 @@ index 0000000..9d41c3a
+
diff --git a/arch/arm/mach-bcm2708/include/mach/vcio.h b/arch/arm/mach-bcm2708/include/mach/vcio.h
new file mode 100644
index 0000000..ace4ea4
index 0000000..7dfd14e
--- /dev/null
+++ b/arch/arm/mach-bcm2708/include/mach/vcio.h
@@ -0,0 +1,43 @@
@@ -0,0 +1,108 @@
+/*
+ * arch/arm/mach-bcm2708/include/mach/vcio.h
+ *
@ -5999,16 +6020,81 @@ index 0000000..ace4ea4
+/* Constants shared with the ARM identifying separate mailbox channels */
+#define MBOX_CHAN_POWER 0 /* for use by the power management interface */
+#define MBOX_CHAN_FB 1 /* for use by the frame buffer */
+#define MBOX_CHAN_VUART 2 /* for use by the virtual UART */
+#define MBOX_CHAN_VCHIQ 3 /* for use by the VCHIQ interface */
+#define MBOX_CHAN_LEDS 4 /* for use by the leds interface */
+#define MBOX_CHAN_BUTTONS 5 /* for use by the buttons interface */
+#define MBOX_CHAN_TOUCH 6 /* for use by the touchscreen interface */
+#define MBOX_CHAN_PROPERTY 8 /* for use by the property channel */
+#define MBOX_CHAN_COUNT 9
+
+/* Mailbox property tags */
+enum {
+ VCMSG_PROPERTY_END = 0x00000000,
+ VCMSG_GET_FIRMWARE_REVISION = 0x00000001,
+ VCMSG_GET_BOARD_MODEL = 0x00010001,
+ VCMSG_GET_BOARD_REVISION = 0x00020002,
+ VCMSG_GET_BOARD_MAC_ADDRESS = 0x00020003,
+ VCMSG_GET_BOARD_SERIAL = 0x00020004,
+ VCMSG_GET_ARM_MEMORY = 0x00020005,
+ VCMSG_GET_VC_MEMORY = 0x00020006,
+ VCMSG_GET_CLOCKS = 0x00020007,
+ VCMSG_GET_COMMAND_LINE = 0x00050001,
+ VCMSG_GET_DMA_CHANNELS = 0x00060001,
+ VCMSG_GET_POWER_STATE = 0x00020001,
+ VCMSG_GET_TIMING = 0x00020002,
+ VCMSG_SET_POWER_STATE = 0x00028001,
+ VCMSG_GET_CLOCK_STATE = 0x00030001,
+ VCMSG_SET_CLOCK_STATE = 0x00038001,
+ VCMSG_GET_CLOCK_RATE = 0x00030002,
+ VCMSG_SET_CLOCK_RATE = 0x00038002,
+ VCMSG_GET_VOLTAGE = 0x00030003,
+ VCMSG_SET_VOLTAGE = 0x00038003,
+ VCMSG_GET_MAX_CLOCK = 0x00030004,
+ VCMSG_GET_MAX_VOLTAGE = 0x00030005,
+ VCMSG_GET_TEMPERATURE = 0x00030006,
+ VCMSG_GET_MIN_CLOCK = 0x00030007,
+ VCMSG_GET_MIN_VOLTAGE = 0x00030008,
+ VCMSG_GET_TURBO = 0x00030009,
+ VCMSG_SET_TURBO = 0x00038009,
+ VCMSG_SET_ALLOCATE_BUFFER = 0x00040001,
+ VCMSG_SET_RELEASE_BUFFER = 0x00048001,
+ VCMSG_SET_BLANK_SCREEN = 0x00040002,
+ VCMSG_TST_BLANK_SCREEN = 0x00044002,
+ VCMSG_GET_PHYSICAL_WIDTH_HEIGHT = 0x00040003,
+ VCMSG_TST_PHYSICAL_WIDTH_HEIGHT = 0x00044003,
+ VCMSG_SET_PHYSICAL_WIDTH_HEIGHT = 0x00048003,
+ VCMSG_GET_VIRTUAL_WIDTH_HEIGHT = 0x00040004,
+ VCMSG_TST_VIRTUAL_WIDTH_HEIGHT = 0x00044004,
+ VCMSG_SET_VIRTUAL_WIDTH_HEIGHT = 0x00048004,
+ VCMSG_GET_DEPTH = 0x00040005,
+ VCMSG_TST_DEPTH = 0x00044005,
+ VCMSG_SET_DEPTH = 0x00048005,
+ VCMSG_GET_PIXEL_ORDER = 0x00040006,
+ VCMSG_TST_PIXEL_ORDER = 0x00044006,
+ VCMSG_SET_PIXEL_ORDER = 0x00048006,
+ VCMSG_GET_ALPHA_MODE = 0x00040007,
+ VCMSG_TST_ALPHA_MODE = 0x00044007,
+ VCMSG_SET_ALPHA_MODE = 0x00048007,
+ VCMSG_GET_PITCH = 0x00040008,
+ VCMSG_TST_PITCH = 0x00044008,
+ VCMSG_SET_PITCH = 0x00048008,
+ VCMSG_GET_VIRTUAL_OFFSET = 0x00040009,
+ VCMSG_TST_VIRTUAL_OFFSET = 0x00044009,
+ VCMSG_SET_VIRTUAL_OFFSET = 0x00048009,
+ VCMSG_GET_OVERSCAN = 0x0004000a,
+ VCMSG_TST_OVERSCAN = 0x0004400a,
+ VCMSG_SET_OVERSCAN = 0x0004800a,
+ VCMSG_GET_PALETTE = 0x0004000b,
+ VCMSG_TST_PALETTE = 0x0004400b,
+ VCMSG_SET_PALETTE = 0x0004800b,
+ VCMSG_GET_LAYER = 0x0004000c,
+ VCMSG_TST_LAYER = 0x0004400c,
+ VCMSG_SET_LAYER = 0x0004800c,
+ VCMSG_GET_TRANSFORM = 0x0004000d,
+ VCMSG_TST_TRANSFORM = 0x0004400d,
+ VCMSG_SET_TRANSFORM = 0x0004800d,
+};
+
+extern int /*rc*/ bcm_mailbox_read(unsigned chan, uint32_t *data28);
+extern int /*rc*/ bcm_mailbox_write(unsigned chan, uint32_t data28);
+extern int /*rc*/ bcm_mailbox_property(void *data, int size);
+
+#endif
diff --git a/arch/arm/mach-bcm2708/include/mach/vmalloc.h b/arch/arm/mach-bcm2708/include/mach/vmalloc.h
@ -6239,10 +6325,10 @@ index 0000000..256bf1a
+MODULE_LICENSE("GPL");
diff --git a/arch/arm/mach-bcm2708/vc_mem.c b/arch/arm/mach-bcm2708/vc_mem.c
new file mode 100644
index 0000000..775c213
index 0000000..ae1810c
--- /dev/null
+++ b/arch/arm/mach-bcm2708/vc_mem.c
@@ -0,0 +1,510 @@
@@ -0,0 +1,499 @@
+/*****************************************************************************
+* Copyright 2010 - 2011 Broadcom Corporation. All rights reserved.
+*
@ -6373,44 +6459,33 @@ index 0000000..775c213
+ uint32_t end_tag; /* an end identifier, should be set to NULL */
+};
+
+#define VCMSG_GET_ARM_MEMORY 0x00010005
+#define VCMSG_GET_VC_MEMORY 0x00010006
+
+static void vc_mem_update(void)
+{
+ uint32_t success;
+ dma_addr_t vc_mem; /* the memory address accessed from videocore */
+ struct vc_set_msg *get_mem; /* the memory address accessed from driver */
+ struct vc_set_msg msg; /* the memory address accessed from driver */
+ uint32_t s;
+
+ /* allocate some memory for the messages to use throughout the lifetime of the driver, use the larger of the two message structures */
+ get_mem = (struct vc_set_msg *)dma_alloc_coherent(NULL, PAGE_ALIGN(sizeof(struct vc_set_msg)), &vc_mem, GFP_ATOMIC);
+ /* clear any garbage */
+ memset(get_mem, 0, sizeof(struct vc_set_msg));
+ memset(&msg, 0, sizeof msg);
+ /* create the message */
+ get_mem->msg_size = sizeof(struct vc_set_msg);
+ get_mem->tag[0].tag_id = VCMSG_GET_VC_MEMORY;
+ get_mem->tag[0].buffer_size = 8;
+ get_mem->tag[0].data_size = 0;
+ get_mem->tag[1].tag_id = VCMSG_GET_ARM_MEMORY;
+ get_mem->tag[1].buffer_size = 8;
+ get_mem->tag[1].data_size = 0;
+ msg.msg_size = sizeof msg;
+ msg.tag[0].tag_id = VCMSG_GET_VC_MEMORY;
+ msg.tag[0].buffer_size = 8;
+ msg.tag[0].data_size = 0;
+ msg.tag[1].tag_id = VCMSG_GET_ARM_MEMORY;
+ msg.tag[1].buffer_size = 8;
+ msg.tag[1].data_size = 0;
+
+ /* send the message */
+ wmb();
+ bcm_mailbox_write(MBOX_CHAN_PROPERTY,(uint32_t)vc_mem);
+ bcm_mailbox_read(MBOX_CHAN_PROPERTY, &success);
+ rmb();
+ s = bcm_mailbox_property(&msg, sizeof msg);
+
+ LOG_DBG("%s: resp %x, vcbase=%x vcsize=%x armbase=%x armsize=%x", __func__, get_mem->request_code,
+ get_mem->tag[0].base, get_mem->tag[0].size, get_mem->tag[1].base, get_mem->tag[1].size);
+ LOG_DBG("%s: success=%d resp %x, vcbase=%x vcsize=%x armbase=%x armsize=%x", __func__, s, msg.request_code,
+ msg.tag[0].base, msg.tag[0].size, msg.tag[1].base, msg.tag[1].size);
+
+ /* check we're all good */
+ if (get_mem->request_code & 0x80000000) {
+ mm_vc_mem_base = get_mem->tag[0].base;
+ mm_vc_mem_size = get_mem->tag[0].size+get_mem->tag[1].size;
+ mm_vc_mem_phys_addr = get_mem->tag[1].base;
+ if (s == 0 && msg.request_code & 0x80000000) {
+ mm_vc_mem_base = msg.tag[0].base;
+ mm_vc_mem_size = msg.tag[0].size+msg.tag[1].size;
+ mm_vc_mem_phys_addr = msg.tag[1].base;
+ }
+ dma_free_coherent(NULL, PAGE_ALIGN(sizeof(struct vc_set_msg)), (void *)get_mem, vc_mem);
+}
+
+
@ -6755,10 +6830,10 @@ index 0000000..775c213
+MODULE_AUTHOR("Broadcom Corporation");
diff --git a/arch/arm/mach-bcm2708/vcio.c b/arch/arm/mach-bcm2708/vcio.c
new file mode 100644
index 0000000..3874051
index 0000000..468fdef
--- /dev/null
+++ b/arch/arm/mach-bcm2708/vcio.c
@@ -0,0 +1,304 @@
@@ -0,0 +1,338 @@
+/*
+ * linux/arch/arm/mach-bcm2708/vcio.c
+ *
@ -6977,6 +7052,40 @@ index 0000000..3874051
+ mbox_dev = dev;
+}
+
+extern int bcm_mailbox_property(void *data, int size)
+{
+ uint32_t success;
+ dma_addr_t mem_bus; /* the memory address accessed from videocore */
+ void *mem_kern; /* the memory address accessed from driver */
+ int s = 0;
+
+ /* allocate some memory for the messages communicating with GPU */
+ mem_kern = dma_alloc_coherent(NULL, PAGE_ALIGN(size), &mem_bus, GFP_ATOMIC);
+ if (mem_kern) {
+ /* create the message */
+ memcpy(mem_kern, data, size);
+
+ /* send the message */
+ wmb();
+ s = bcm_mailbox_write(MBOX_CHAN_PROPERTY, (uint32_t)mem_bus);
+ if (s == 0) {
+ s = bcm_mailbox_read(MBOX_CHAN_PROPERTY, &success);
+ }
+ if (s == 0) {
+ /* copy the response */
+ rmb();
+ memcpy(data, mem_kern, size);
+ }
+ dma_free_coherent(NULL, PAGE_ALIGN(size), mem_kern, mem_bus);
+ } else {
+ s = -ENOMEM;
+ }
+ if (s != 0)
+ printk(KERN_ERR DRIVER_NAME ": %s failed (%d)\n", __func__, s);
+ return s;
+}
+EXPORT_SYMBOL_GPL(bcm_mailbox_property);
+
+/* ----------------------------------------------------------------------
+ * Platform Device for Mailbox
+ * -------------------------------------------------------------------- */
@ -7121,6 +7230,279 @@ index d061d2f..436dc2c 100644
mov pc, lr
ENTRY(cpu_v6_dcache_clean_area)
diff --git a/drivers/cpufreq/Kconfig.arm b/drivers/cpufreq/Kconfig.arm
index 72a0044..c28423d 100644
--- a/drivers/cpufreq/Kconfig.arm
+++ b/drivers/cpufreq/Kconfig.arm
@@ -30,3 +30,11 @@ config ARM_EXYNOS4210_CPUFREQ
SoC (S5PV310 or S5PC210).
If in doubt, say N.
+
+config ARM_BCM2835_CPUFREQ
+ bool "BCM2835 Driver"
+ default y
+ help
+ This adds the CPUFreq driver for BCM2835
+
+ If in doubt, say N.
diff --git a/drivers/cpufreq/Makefile b/drivers/cpufreq/Makefile
index a48bc02..51ebbb3 100644
--- a/drivers/cpufreq/Makefile
+++ b/drivers/cpufreq/Makefile
@@ -43,6 +43,7 @@ obj-$(CONFIG_UX500_SOC_DB8500) += db8500-cpufreq.o
obj-$(CONFIG_ARM_S3C64XX_CPUFREQ) += s3c64xx-cpufreq.o
obj-$(CONFIG_ARM_S5PV210_CPUFREQ) += s5pv210-cpufreq.o
obj-$(CONFIG_ARM_EXYNOS4210_CPUFREQ) += exynos4210-cpufreq.o
+obj-$(CONFIG_ARM_BCM2835_CPUFREQ) += bcm2835-cpufreq.o
##################################################################################
# PowerPC platform drivers
diff --git a/drivers/cpufreq/bcm2835-cpufreq.c b/drivers/cpufreq/bcm2835-cpufreq.c
new file mode 100755
index 0000000..aa6fc66
--- /dev/null
+++ b/drivers/cpufreq/bcm2835-cpufreq.c
@@ -0,0 +1,239 @@
+/*****************************************************************************
+* Copyright 2011 Broadcom Corporation. All rights reserved.
+*
+* Unless you and Broadcom execute a separate written software license
+* agreement governing use of this software, this software is licensed to you
+* under the terms of the GNU General Public License version 2, available at
+* http://www.broadcom.com/licenses/GPLv2.php (the "GPL").
+*
+* Notwithstanding the above, under no circumstances may you combine this
+* software in any way with any other Broadcom software provided under a
+* license other than the GPL, without Broadcom's express prior written
+* consent.
+*****************************************************************************/
+
+/*****************************************************************************
+* FILENAME: bcm2835-cpufreq.h
+* DESCRIPTION: This driver dynamically manages the CPU Frequency of the ARM
+* processor. Messages are sent to Videocore either setting or requesting the
+* frequency of the ARM in order to match an appropiate frequency to the current
+* usage of the processor. The policy which selects the frequency to use is
+* defined in the kernel .config file, but can be changed during runtime.
+*****************************************************************************/
+
+/* ---------- INCLUDES ---------- */
+#include <linux/kernel.h>
+#include <linux/init.h>
+#include <linux/module.h>
+#include <linux/cpufreq.h>
+#include <mach/vcio.h>
+
+/* ---------- DEFINES ---------- */
+/*#define CPUFREQ_DEBUG_ENABLE*/ /* enable debugging */
+#define MODULE_NAME "bcm2835-cpufreq"
+
+#define VCMSG_ID_ARM_CLOCK 0x000000003 /* Clock/Voltage ID's */
+
+/* debug printk macros */
+#ifdef CPUFREQ_DEBUG_ENABLE
+#define print_debug(fmt,...) pr_debug("%s:%s:%d: "fmt, MODULE_NAME, __func__, __LINE__, ##__VA_ARGS__)
+#else
+#define print_debug(fmt,...)
+#endif
+#define print_err(fmt,...) pr_err("%s:%s:%d: "fmt, MODULE_NAME, __func__,__LINE__, ##__VA_ARGS__)
+#define print_info(fmt,...) pr_info("%s: "fmt, MODULE_NAME, ##__VA_ARGS__)
+
+/* tag part of the message */
+struct vc_msg_tag {
+ uint32_t tag_id; /* the message id */
+ uint32_t buffer_size; /* size of the buffer (which in this case is always 8 bytes) */
+ uint32_t data_size; /* amount of data being sent or received */
+ uint32_t dev_id; /* the ID of the clock/voltage to get or set */
+ uint32_t val; /* the value (e.g. rate (in Hz)) to set */
+};
+
+/* message structure to be sent to videocore */
+struct vc_msg {
+ uint32_t msg_size; /* simply, sizeof(struct vc_msg) */
+ uint32_t request_code; /* holds various information like the success and number of bytes returned (refer to mailboxes wiki) */
+ struct vc_msg_tag tag; /* the tag structure above to make */
+ uint32_t end_tag; /* an end identifier, should be set to NULL */
+};
+
+/* ---------- GLOBALS ---------- */
+static struct cpufreq_driver bcm2835_cpufreq_driver; /* the cpufreq driver global */
+
+/*
+ ===============================================
+ clk_rate either gets or sets the clock rates.
+ ===============================================
+*/
+static uint32_t bcm2835_cpufreq_set_clock(int cur_rate, int arm_rate)
+{
+ int s, actual_rate=0;
+ struct vc_msg msg;
+
+ /* wipe all previous message data */
+ memset(&msg, 0, sizeof msg);
+
+ msg.msg_size = sizeof msg;
+
+ msg.tag.tag_id = VCMSG_SET_CLOCK_RATE;
+ msg.tag.buffer_size = 8;
+ msg.tag.data_size = 8; /* we're sending the clock ID and the new rates which is a total of 2 words */
+ msg.tag.dev_id = VCMSG_ID_ARM_CLOCK;
+ msg.tag.val = arm_rate * 1000;
+
+ /* send the message */
+ s = bcm_mailbox_property(&msg, sizeof msg);
+
+ /* check if it was all ok and return the rate in KHz */
+ if (s == 0 && (msg.request_code & 0x80000000))
+ actual_rate = msg.tag.val/1000;
+
+ print_debug("Setting new frequency = %d -> %d (actual %d)", cur_rate, arm_rate, actual_rate);
+ return actual_rate;
+}
+
+static uint32_t bcm2835_cpufreq_get_clock(int tag)
+{
+ int s;
+ int arm_rate = 0;
+ struct vc_msg msg;
+
+ /* wipe all previous message data */
+ memset(&msg, 0, sizeof msg);
+
+ msg.msg_size = sizeof msg;
+ msg.tag.tag_id = tag;
+ msg.tag.buffer_size = 8;
+ msg.tag.data_size = 4; /* we're just sending the clock ID which is one word long */
+ msg.tag.dev_id = VCMSG_ID_ARM_CLOCK;
+
+ /* send the message */
+ s = bcm_mailbox_property(&msg, sizeof msg);
+
+ /* check if it was all ok and return the rate in KHz */
+ if (s == 0 && (msg.request_code & 0x80000000))
+ arm_rate = msg.tag.val/1000;
+
+ print_debug("%s frequency = %d",
+ tag == VCMSG_GET_CLOCK_RATE ? "Current":
+ tag == VCMSG_GET_MIN_CLOCK ? "Min":
+ tag == VCMSG_GET_MAX_CLOCK ? "Max":
+ "Unexpected", arm_rate);
+
+ return arm_rate;
+}
+
+/*
+ ====================================================
+ Module Initialisation registers the cpufreq driver
+ ====================================================
+*/
+static int __init bcm2835_cpufreq_module_init(void)
+{
+ print_debug("IN");
+ return cpufreq_register_driver(&bcm2835_cpufreq_driver);
+}
+
+/*
+ =============
+ Module exit
+ =============
+*/
+static void __exit bcm2835_cpufreq_module_exit(void)
+{
+ print_debug("IN");
+ cpufreq_unregister_driver(&bcm2835_cpufreq_driver);
+ return;
+}
+
+/*
+ ==============================================================
+ Initialisation function sets up the CPU policy for first use
+ ==============================================================
+*/
+static int bcm2835_cpufreq_driver_init(struct cpufreq_policy *policy)
+{
+ /* measured value of how long it takes to change frequency */
+ policy->cpuinfo.transition_latency = 355000; /* ns */
+
+ /* now find out what the maximum and minimum frequencies are */
+ policy->min = policy->cpuinfo.min_freq = bcm2835_cpufreq_get_clock(VCMSG_GET_MIN_CLOCK);
+ policy->max = policy->cpuinfo.max_freq = bcm2835_cpufreq_get_clock(VCMSG_GET_MAX_CLOCK);
+ policy->cur = bcm2835_cpufreq_get_clock(VCMSG_GET_CLOCK_RATE);
+
+ print_info("min=%d max=%d cur=%d", policy->min, policy->max, policy->cur);
+ return 0;
+}
+
+/*
+ =================================================================================
+ Target function chooses the most appropriate frequency from the table to enable
+ =================================================================================
+*/
+
+static int bcm2835_cpufreq_driver_target(struct cpufreq_policy *policy, unsigned int target_freq, unsigned int relation)
+{
+ unsigned int target = target_freq;
+ unsigned int cur = policy->cur;
+ print_debug("%s: min=%d max=%d cur=%d target=%d",policy->governor->name,policy->min,policy->max,policy->cur,target_freq);
+
+ /* if we are above min and using ondemand, then just use max */
+ if (strcmp("ondemand", policy->governor->name)==0 && target > policy->min)
+ target = policy->max;
+ /* if the frequency is the same, just quit */
+ if (target == policy->cur)
+ return 0;
+
+ /* otherwise were good to set the clock frequency */
+ policy->cur = bcm2835_cpufreq_set_clock(policy->cur, target);
+
+ if (!policy->cur)
+ {
+ print_err("Error occurred setting a new frequency (%d)!", target);
+ policy->cur = bcm2835_cpufreq_get_clock(VCMSG_GET_CLOCK_RATE);
+ return -EINVAL;
+ }
+ print_info("Freq %d->%d (min=%d max=%d target=%d request=%d)", cur, policy->cur, policy->min, policy->max, target_freq, target);
+ return 0;
+}
+
+static unsigned int bcm2835_cpufreq_driver_get(unsigned int cpu)
+{
+ unsigned int actual_rate = bcm2835_cpufreq_get_clock(VCMSG_GET_CLOCK_RATE);
+ print_debug("%d", actual_rate);
+ return actual_rate;
+}
+
+/*
+ =================================================================================
+ Verify ensures that when a policy is changed, it is suitable for the CPU to use
+ =================================================================================
+*/
+
+static int bcm2835_cpufreq_driver_verify(struct cpufreq_policy *policy)
+{
+ print_info("switching to governor %s", policy->governor->name);
+ return 0;
+}
+
+
+/* the CPUFreq driver */
+static struct cpufreq_driver bcm2835_cpufreq_driver = {
+ .name = "BCM2835 CPUFreq",
+ .owner = THIS_MODULE,
+ .init = bcm2835_cpufreq_driver_init,
+ .verify = bcm2835_cpufreq_driver_verify,
+ .target = bcm2835_cpufreq_driver_target,
+ .get = bcm2835_cpufreq_driver_get
+};
+
+MODULE_AUTHOR("Dorian Peake and Dom Cobley");
+MODULE_DESCRIPTION("CPU frequency driver for BCM2835 chip");
+MODULE_LICENSE("GPL");
+
+module_init(bcm2835_cpufreq_module_init);
+module_exit(bcm2835_cpufreq_module_exit);
+
diff --git a/drivers/i2c/busses/Kconfig b/drivers/i2c/busses/Kconfig
index a3afac4..cbc62ff 100644
--- a/drivers/i2c/busses/Kconfig
@ -32338,7 +32720,7 @@ index 7ca290f..802dda6 100644
obj-$(CONFIG_USB_OCTEON2_COMMON) += octeon2-common.o
diff --git a/drivers/usb/host/dwc_common_port/Makefile b/drivers/usb/host/dwc_common_port/Makefile
new file mode 100644
index 0000000..203c7ea
index 0000000..63e3485
--- /dev/null
+++ b/drivers/usb/host/dwc_common_port/Makefile
@@ -0,0 +1,58 @@
@ -32374,9 +32756,9 @@ index 0000000..203c7ea
+
+else
+
+ifeq ($(KDIR),)
+$(error Must give "KDIR=/path/to/kernel/source" on command line or in environment)
+endif
+#ifeq ($(KDIR),)
+#$(error Must give "KDIR=/path/to/kernel/source" on command line or in environment)
+#endif
+
+ifeq ($(ARCH),)
+$(error Must give "ARCH=<arch>" on command line or in environment. Also, if \
@ -62145,7 +62527,7 @@ index 0000000..8a0e41b
+#endif
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_hcd.c b/drivers/usb/host/dwc_otg/dwc_otg_hcd.c
new file mode 100644
index 0000000..20f989e
index 0000000..0ce7e46
--- /dev/null
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd.c
@@ -0,0 +1,3478 @@
@ -62973,6 +63355,7 @@ index 0000000..20f989e
+ } else if (dwc_otg_hcd->status_buf != NULL) {
+ DWC_FREE(dwc_otg_hcd->status_buf);
+ }
+ DWC_SPINLOCK_FREE(dwc_otg_hcd->channel_lock);
+ DWC_SPINLOCK_FREE(dwc_otg_hcd->lock);
+ /* Set core_if's lock pointer to NULL */
+ dwc_otg_hcd->core_if->lock = NULL;
@ -62999,6 +63382,7 @@ index 0000000..20f989e
+ dwc_hc_t *channel;
+
+ hcd->lock = DWC_SPINLOCK_ALLOC();
+ hcd->channel_lock = DWC_SPINLOCK_ALLOC();
+ DWC_DEBUGPL(DBG_HCDV, "init of HCD %p given core_if %p\n",
+ hcd, core_if);
+ if (!hcd->lock) {
@ -63399,7 +63783,7 @@ index 0000000..20f989e
+ dwc_otg_qh_t *qh;
+ int num_channels;
+ dwc_irqflags_t flags;
+ dwc_spinlock_t *channel_lock = DWC_SPINLOCK_ALLOC();
+ dwc_spinlock_t *channel_lock = hcd->channel_lock;
+ dwc_otg_transaction_type_e ret_val = DWC_OTG_TRANSACTION_NONE;
+
+#ifdef DEBUG_SOF
@ -63499,8 +63883,6 @@ index 0000000..20f989e
+#ifdef DEBUG_HOST_CHANNELS
+ last_sel_trans_num_avail_hc_at_end = hcd->available_host_channels;
+#endif /* DEBUG_HOST_CHANNELS */
+
+ DWC_SPINLOCK_FREE(channel_lock);
+ return ret_val;
+}
+
@ -65629,7 +66011,7 @@ index 0000000..20f989e
+#endif /* DWC_DEVICE_ONLY */
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_hcd.h b/drivers/usb/host/dwc_otg/dwc_otg_hcd.h
new file mode 100644
index 0000000..dd30f47
index 0000000..6d82127
--- /dev/null
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd.h
@@ -0,0 +1,824 @@
@ -66183,7 +66565,7 @@ index 0000000..dd30f47
+
+ /* */
+ dwc_spinlock_t *lock;
+
+ dwc_spinlock_t *channel_lock;
+ /**
+ * Private data that could be used by OS wrapper.
+ */
@ -66459,10 +66841,10 @@ index 0000000..dd30f47
+#endif /* DWC_DEVICE_ONLY */
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_hcd_ddma.c b/drivers/usb/host/dwc_otg/dwc_otg_hcd_ddma.c
new file mode 100644
index 0000000..d0d5fa1
index 0000000..a2ceb77
--- /dev/null
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd_ddma.c
@@ -0,0 +1,1133 @@
@@ -0,0 +1,1132 @@
+/*==========================================================================
+ * $File: //dwh/usb_iip/dev/software/otg/linux/drivers/dwc_otg_hcd_ddma.c $
+ * $Revision: #10 $
@ -66741,7 +67123,7 @@ index 0000000..d0d5fa1
+static void release_channel_ddma(dwc_otg_hcd_t * hcd, dwc_otg_qh_t * qh)
+{
+ dwc_irqflags_t flags;
+ dwc_spinlock_t *channel_lock = DWC_SPINLOCK_ALLOC();
+ dwc_spinlock_t *channel_lock = hcd->channel_lock;
+
+ dwc_hc_t *hc = qh->channel;
+ if (dwc_qh_is_non_per(qh)) {
@ -66771,7 +67153,6 @@ index 0000000..d0d5fa1
+ dwc_memset(qh->desc_list, 0x00,
+ sizeof(dwc_otg_host_dma_desc_t) * max_desc_num(qh));
+ }
+ DWC_SPINLOCK_FREE(channel_lock);
+}
+
+/**
@ -68021,10 +68402,10 @@ index 0000000..04ca4c2
+#endif /* DWC_DEVICE_ONLY */
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c b/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c
new file mode 100644
index 0000000..f1658fa
index 0000000..21e8f09
--- /dev/null
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c
@@ -0,0 +1,2230 @@
@@ -0,0 +1,2229 @@
+/* ==========================================================================
+ * $File: //dwh/usb_iip/dev/software/otg/linux/drivers/dwc_otg_hcd_intr.c $
+ * $Revision: #89 $
@ -68949,7 +69330,7 @@ index 0000000..f1658fa
+ dwc_otg_transaction_type_e tr_type;
+ int free_qtd;
+ dwc_irqflags_t flags;
+ dwc_spinlock_t *channel_lock = DWC_SPINLOCK_ALLOC();
+ dwc_spinlock_t *channel_lock = hcd->channel_lock;
+
+ DWC_DEBUGPL(DBG_HCDV, " %s: channel %d, halt_status %d, xfer_len %d\n",
+ __func__, hc->hc_num, halt_status, hc->xfer_len);
@ -69036,7 +69417,6 @@ index 0000000..f1658fa
+ if (tr_type != DWC_OTG_TRANSACTION_NONE) {
+ dwc_otg_hcd_queue_transactions(hcd, tr_type);
+ }
+ DWC_SPINLOCK_FREE(channel_lock);
+}
+
+/**
@ -90656,10 +91036,10 @@ index 0000000..68d838d
+}
diff --git a/sound/arm/bcm2835.c b/sound/arm/bcm2835.c
new file mode 100755
index 0000000..3f6b0ea
index 0000000..44bedb5
--- /dev/null
+++ b/sound/arm/bcm2835.c
@@ -0,0 +1,424 @@
@@ -0,0 +1,418 @@
+/*****************************************************************************
+* Copyright 2011 Broadcom Corporation. All rights reserved.
+*
@ -90749,10 +91129,7 @@ index 0000000..3f6b0ea
+ bcm2835_chip_t *chip;
+ struct snd_card *card;
+ int err;
+ printk(KERN_INFO "### snd_bcm2835_alsa_probe %p ###", pdev);
+
+ printk
+ ("############ PROBING FOR bcm2835 ALSA device (%d):(%d) ###############\n",
+ printk(KERN_INFO "Probing FOR bcm2835 ALSA device (%d):(%d)\n",
+ dev, enable[dev]);
+
+ if (dev >= MAX_SUBSTREAMS)
@ -90776,7 +91153,6 @@ index 0000000..3f6b0ea
+ strcpy(g_card->shortname, "bcm2835 ALSA");
+ sprintf(g_card->longname, "%s", g_card->shortname);
+
+ printk("Creating device/chip ..\n");
+ err = snd_bcm2835_create(g_card, pdev, &chip);
+ if (err < 0) {
+ printk(KERN_ERR "Failed to create bcm2835 chip\n");
@ -90790,7 +91166,6 @@ index 0000000..3f6b0ea
+ goto out_bcm2835_new_pcm;
+ }
+
+ printk("Adding controls ..\n");
+ err = snd_bcm2835_new_ctl(chip);
+ if (err < 0) {
+ printk(KERN_ERR "Failed to create new BCM2835 ctl\n");
@ -90807,7 +91182,6 @@ index 0000000..3f6b0ea
+ chip->pdev[dev] = pdev;
+
+ if (dev == 0) {
+ printk("Registering card ....\n");
+ err = snd_card_register(card);
+ if (err < 0) {
+ printk(KERN_ERR
@ -90815,9 +91189,9 @@ index 0000000..3f6b0ea
+ goto out_card_register;
+ }
+ platform_set_drvdata(pdev, card);
+ printk("bcm2835 ALSA CARD CREATED!\n");
+ printk(KERN_INFO "bcm2835 ALSA card created!\n");
+ } else {
+ printk("bcm2835 ALSA CHIP CREATED!\n");
+ printk(KERN_INFO "bcm2835 ALSA chip created!\n");
+ platform_set_drvdata(pdev, (void *)dev);
+ }
+
@ -91042,7 +91416,7 @@ index 0000000..3f6b0ea
+ printk("Error registering bcm2835_alsa7_driver %d .\n", err);
+ goto unregister_6;
+ }
+ printk(KERN_INFO "### BCM2835 ALSA driver init %s ### \n",
+ printk(KERN_INFO "BCM2835 ALSA driver init %s\n",
+ err ? "FAILED" : "OK");
+
+ return 0;

View File

@ -19,7 +19,7 @@
################################################################################
PKG_NAME="xbmc-frodo-theme-Confluence"
PKG_VERSION="c49247d"
PKG_VERSION="0c1f4e1"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View File

@ -19,14 +19,14 @@
################################################################################
PKG_NAME="xbmc-frodo"
PKG_VERSION="c49247d"
PKG_VERSION="0c1f4e1"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"
PKG_SITE="http://www.xbmc.org"
PKG_URL="$DISTRO_SRC/$PKG_NAME-$PKG_VERSION.tar.xz"
PKG_DEPENDS="boost Python zlib bzip2 systemd pcre ffmpeg libass curl libssh rtmpdump fontconfig tinyxml freetype libmad libogg libmodplug faad2 flac libmpeg2 yajl sqlite bc xbmc-addon-settings"
PKG_BUILD_DEPENDS="toolchain boost Python zlib bzip2 systemd lzo pcre ffmpeg libass enca curl libssh rtmpdump fontconfig fribidi tinyxml libjpeg-turbo libpng tiff freetype jasper libmad libsamplerate libogg libcdio libmodplug faad2 flac libmpeg2 yajl sqlite mysql"
PKG_DEPENDS="boost Python zlib bzip2 systemd pcre ffmpeg libass curl libssh rtmpdump fontconfig tinyxml freetype libmad libogg libmodplug faad2 flac libmpeg2 taglib yajl sqlite bc xbmc-addon-settings"
PKG_BUILD_DEPENDS="toolchain boost Python zlib bzip2 systemd lzo pcre swig ffmpeg libass enca curl libssh rtmpdump fontconfig fribidi tinyxml libjpeg-turbo libpng tiff freetype jasper libmad libsamplerate libogg libcdio libmodplug faad2 flac libmpeg2 taglib yajl sqlite mysql"
PKG_PRIORITY="optional"
PKG_SECTION="mediacenter"
PKG_SHORTDESC="xbmc: XBMC Mediacenter"

View File

@ -0,0 +1,274 @@
From f1a8e4d64edb0d432deb8191f07d63d40515d44b Mon Sep 17 00:00:00 2001
From: gimli <ebsi4711@gmail.com>
Date: Wed, 12 Sep 2012 20:59:51 +0200
Subject: [PATCH] [linux/arm] fixed 'System Info -> Hardware' for arm devices
and give GetXBVerInfo the name it deserves.
---
xbmc/utils/CPUInfo.cpp | 55 ++++++++++++++++++++++++++++++++++
xbmc/utils/CPUInfo.h | 12 ++++++++
xbmc/utils/SystemInfo.cpp | 22 +++++++++++++-
xbmc/utils/SystemInfo.h | 6 +++-
xbmc/utils/test/TestCPUInfo.cpp | 24 +++++++++++++++
xbmc/utils/test/TestSystemInfo.cpp | 24 +++++++++++++--
xbmc/windows/GUIWindowSystemInfo.cpp | 12 +++++++-
7 files changed, 150 insertions(+), 5 deletions(-)
diff --git a/xbmc/utils/CPUInfo.cpp b/xbmc/utils/CPUInfo.cpp
index b43d5fc..854b7b1 100644
--- a/xbmc/utils/CPUInfo.cpp
+++ b/xbmc/utils/CPUInfo.cpp
@@ -198,6 +198,61 @@ static inline int _private_gettimeofday( struct timeval *tv, void *tz )
m_cores[nCurrId].m_strVendor.Trim();
}
}
+ else if (strncmp(buffer, "Processor", strlen("Processor"))==0)
+ {
+ char *needle = strstr(buffer, ":");
+ if (needle && strlen(needle)>3)
+ {
+ needle+=2;
+ m_cpuModel = needle;
+ m_cores[nCurrId].m_strModel = m_cpuModel;
+ m_cores[nCurrId].m_strModel.Trim();
+ }
+ }
+ else if (strncmp(buffer, "BogoMIPS", strlen("BogoMIPS"))==0)
+ {
+ char *needle = strstr(buffer, ":");
+ if (needle && strlen(needle)>3)
+ {
+ needle+=2;
+ m_cpuBogoMips = needle;
+ m_cores[nCurrId].m_strBogoMips = m_cpuBogoMips;
+ m_cores[nCurrId].m_strBogoMips.Trim();
+ }
+ }
+ else if (strncmp(buffer, "Hardware", strlen("Hardware"))==0)
+ {
+ char *needle = strstr(buffer, ":");
+ if (needle && strlen(needle)>3)
+ {
+ needle+=2;
+ m_cpuHardware = needle;
+ m_cores[nCurrId].m_strHardware = m_cpuHardware;
+ m_cores[nCurrId].m_strHardware.Trim();
+ }
+ }
+ else if (strncmp(buffer, "Revision", strlen("Revision"))==0)
+ {
+ char *needle = strstr(buffer, ":");
+ if (needle && strlen(needle)>3)
+ {
+ needle+=2;
+ m_cpuRevision = needle;
+ m_cores[nCurrId].m_strRevision = m_cpuRevision;
+ m_cores[nCurrId].m_strRevision.Trim();
+ }
+ }
+ else if (strncmp(buffer, "Serial", strlen("Serial"))==0)
+ {
+ char *needle = strstr(buffer, ":");
+ if (needle && strlen(needle)>3)
+ {
+ needle+=2;
+ m_cpuSerial = needle;
+ m_cores[nCurrId].m_strSerial = m_cpuSerial;
+ m_cores[nCurrId].m_strSerial.Trim();
+ }
+ }
else if (strncmp(buffer, "model name", strlen("model name"))==0)
{
char *needle = strstr(buffer, ":");
diff --git a/xbmc/utils/CPUInfo.h b/xbmc/utils/CPUInfo.h
index e8bcf3c..82cd1bd 100644
--- a/xbmc/utils/CPUInfo.h
+++ b/xbmc/utils/CPUInfo.h
@@ -55,6 +55,10 @@ struct CoreInfo
unsigned long long m_io;
CStdString m_strVendor;
CStdString m_strModel;
+ CStdString m_strBogoMips;
+ CStdString m_strHardware;
+ CStdString m_strRevision;
+ CStdString m_strSerial;
CoreInfo() : m_id(0), m_fSpeed(.0), m_fPct(.0), m_user(0LL), m_nice(0LL), m_system(0LL), m_idle(0LL), m_io(0LL) {}
};
@@ -69,6 +73,10 @@ class CCPUInfo
float getCPUFrequency();
bool getTemperature(CTemperature& temperature);
std::string& getCPUModel() { return m_cpuModel; }
+ std::string& getCPUBogoMips() { return m_cpuBogoMips; }
+ std::string& getCPUHardware() { return m_cpuHardware; }
+ std::string& getCPURevision() { return m_cpuRevision; }
+ std::string& getCPUSerial() { return m_cpuSerial; }
const CoreInfo &GetCoreInfo(int nCoreId);
bool HasCoreId(int nCoreId) const;
@@ -96,6 +104,10 @@ class CCPUInfo
int m_lastUsedPercentage;
XbmcThreads::EndTime m_nextUsedReadTime;
std::string m_cpuModel;
+ std::string m_cpuBogoMips;
+ std::string m_cpuHardware;
+ std::string m_cpuRevision;
+ std::string m_cpuSerial;
int m_cpuCount;
unsigned int m_cpuFeatures;
diff --git a/xbmc/utils/SystemInfo.cpp b/xbmc/utils/SystemInfo.cpp
index 34e4a61..e5a31e8 100644
--- a/xbmc/utils/SystemInfo.cpp
+++ b/xbmc/utils/SystemInfo.cpp
@@ -294,11 +294,31 @@ bool CSysInfo::GetDiskSpace(const CStdString drive,int& iTotal, int& iTotalFree,
return bRet;
}
-CStdString CSysInfo::GetXBVerInfo()
+CStdString CSysInfo::GetCPUModel()
{
return "CPU: " + g_cpuInfo.getCPUModel();
}
+CStdString CSysInfo::GetCPUBogoMips()
+{
+ return "BogoMips: " + g_cpuInfo.getCPUBogoMips();
+}
+
+CStdString CSysInfo::GetCPUHardware()
+{
+ return "Hardware: " + g_cpuInfo.getCPUHardware();
+}
+
+CStdString CSysInfo::GetCPURevision()
+{
+ return "Revision: " + g_cpuInfo.getCPURevision();
+}
+
+CStdString CSysInfo::GetCPUSerial()
+{
+ return "Serial: " + g_cpuInfo.getCPUSerial();
+}
+
bool CSysInfo::IsAeroDisabled()
{
#ifdef _WIN32
diff --git a/xbmc/utils/SystemInfo.h b/xbmc/utils/SystemInfo.h
index 8bc3462..0ecf910 100644
--- a/xbmc/utils/SystemInfo.h
+++ b/xbmc/utils/SystemInfo.h
@@ -105,7 +105,11 @@ class CSysInfo : public CInfoLoader
bool IsAeroDisabled();
bool IsVistaOrHigher();
static CStdString GetKernelVersion();
- CStdString GetXBVerInfo();
+ CStdString GetCPUModel();
+ CStdString GetCPUBogoMips();
+ CStdString GetCPUHardware();
+ CStdString GetCPURevision();
+ CStdString GetCPUSerial();
bool GetDiskSpace(const CStdString drive,int& iTotal, int& iTotalFree, int& iTotalUsed, int& iPercentFree, int& iPercentUsed);
CStdString GetHddSpaceInfo(int& percent, int drive, bool shortText=false);
CStdString GetHddSpaceInfo(int drive, bool shortText=false);
diff --git a/xbmc/utils/test/TestCPUInfo.cpp b/xbmc/utils/test/TestCPUInfo.cpp
index 3c14d1f..dfd1fd2 100644
--- a/xbmc/utils/test/TestCPUInfo.cpp
+++ b/xbmc/utils/test/TestCPUInfo.cpp
@@ -51,6 +51,30 @@
EXPECT_STRNE("", s.c_str());
}
+TEST(TestCPUInfo, getCPUBogoMips)
+{
+ std::string s = g_cpuInfo.getCPUBogoMips();
+ EXPECT_STRNE("", s.c_str());
+}
+
+TEST(TestCPUInfo, getCPUHardware)
+{
+ std::string s = g_cpuInfo.getCPUHardware();
+ EXPECT_STRNE("", s.c_str());
+}
+
+TEST(TestCPUInfo, getCPURevision)
+{
+ std::string s = g_cpuInfo.getCPURevision();
+ EXPECT_STRNE("", s.c_str());
+}
+
+TEST(TestCPUInfo, getCPUSerial)
+{
+ std::string s = g_cpuInfo.getCPUSerial();
+ EXPECT_STRNE("", s.c_str());
+}
+
TEST(TestCPUInfo, CoreInfo)
{
ASSERT_TRUE(g_cpuInfo.HasCoreId(0));
diff --git a/xbmc/utils/test/TestSystemInfo.cpp b/xbmc/utils/test/TestSystemInfo.cpp
index 958e881..73bc3f3 100644
--- a/xbmc/utils/test/TestSystemInfo.cpp
+++ b/xbmc/utils/test/TestSystemInfo.cpp
@@ -108,9 +108,29 @@ class TestSystemInfo : public testing::Test
std::cout << "GetKernelVersion(): " << CSysInfo::GetKernelVersion() << "\n";
}
-TEST_F(TestSystemInfo, GetXBVerInfo)
+TEST_F(TestSystemInfo, GetCPUModel)
{
- std::cout << "GetXBVerInfo(): " << g_sysinfo.GetXBVerInfo() << "\n";
+ std::cout << "GetCPUModel(): " << g_sysinfo.GetCPUModel() << "\n";
+}
+
+TEST_F(TestSystemInfo, GetCPUBogoMips)
+{
+ std::cout << "GetCPUBogoMips(): " << g_sysinfo.GetCPUBogoMips() << "\n";
+}
+
+TEST_F(TestSystemInfo, GetCPUHardware)
+{
+ std::cout << "GetCPUHardware(): " << g_sysinfo.GetCPUHardware() << "\n";
+}
+
+TEST_F(TestSystemInfo, GetCPURevision)
+{
+ std::cout << "GetCPURevision(): " << g_sysinfo.GetCPURevision() << "\n";
+}
+
+TEST_F(TestSystemInfo, GetCPUSerial)
+{
+ std::cout << "GetCPUSerial(): " << g_sysinfo.GetCPUSerial() << "\n";
}
TEST_F(TestSystemInfo, GetDiskSpace)
diff --git a/xbmc/windows/GUIWindowSystemInfo.cpp b/xbmc/windows/GUIWindowSystemInfo.cpp
index c88700a..4c78d3d 100644
--- a/xbmc/windows/GUIWindowSystemInfo.cpp
+++ b/xbmc/windows/GUIWindowSystemInfo.cpp
@@ -144,11 +144,21 @@ void CGUIWindowSystemInfo::FrameMove()
{
SET_CONTROL_LABEL(40,g_localizeStrings.Get(20160));
#ifdef HAS_SYSINFO
- SET_CONTROL_LABEL(i++, g_sysinfo.GetXBVerInfo());
+ SET_CONTROL_LABEL(i++, g_sysinfo.GetCPUModel());
+#if defined(__arm__) && defined(TARGET_LINUX)
+ SET_CONTROL_LABEL(i++, g_sysinfo.GetCPUBogoMips());
+ SET_CONTROL_LABEL(i++, g_sysinfo.GetCPUHardware());
+ SET_CONTROL_LABEL(i++, g_sysinfo.GetCPURevision());
+ SET_CONTROL_LABEL(i++, g_sysinfo.GetCPUSerial());
+#endif
SetControlLabel(i++, "%s %s", 22011, SYSTEM_CPU_TEMPERATURE);
+#if !defined(__arm__)
SetControlLabel(i++, "%s %s", 13284, SYSTEM_CPUFREQUENCY);
#endif
+#endif
+#if !(defined(__arm__) && defined(TARGET_LINUX))
SetControlLabel(i++, "%s %s", 13271, SYSTEM_CPU_USAGE);
+#endif
i++; // empty line
SetControlLabel(i++, "%s: %s", 22012, SYSTEM_TOTAL_MEMORY);
SetControlLabel(i++, "%s: %s", 158, SYSTEM_FREE_MEMORY);
--
1.7.10

View File

@ -1,11 +0,0 @@
diff -Naur xbmc-10.1-Dharma/system/keymaps/remote.xml xbmc-10.1-Dharma.patch/system/keymaps/remote.xml
--- xbmc-10.1-Dharma/system/keymaps/remote.xml 2011-03-08 02:49:23.000000000 +0100
+++ xbmc-10.1-Dharma.patch/system/keymaps/remote.xml 2011-06-18 01:48:26.887811969 +0200
@@ -63,6 +63,7 @@
<volumeminus>VolumeDown</volumeminus>
<mute>Mute</mute>
<power>XBMC.ShutDown()</power>
+ <eject>XBMC.EjectTray()</eject>
<myvideo>XBMC.ActivateWindow(MyVideos)</myvideo>
<mymusic>XBMC.ActivateWindow(MyMusic)</mymusic>
<mypictures>XBMC.ActivateWindow(MyPictures)</mypictures>

View File

@ -1,26 +0,0 @@
diff -Naur xbmc-rpi-c767513/xbmc/windows/GUIWindowSystemInfo.cpp xbmc-rpi-c767513.patch/xbmc/windows/GUIWindowSystemInfo.cpp
--- xbmc-rpi-c767513/xbmc/windows/GUIWindowSystemInfo.cpp 2012-05-17 13:59:53.000000000 +0200
+++ xbmc-rpi-c767513.patch/xbmc/windows/GUIWindowSystemInfo.cpp 2012-05-22 03:28:07.651129799 +0200
@@ -136,11 +136,14 @@
SetControlLabel(i++, "%s %s", 22023, SYSTEM_RENDER_VENDOR);
SetControlLabel(i++, "%s %s", 22024, SYSTEM_RENDER_VERSION);
#endif
+#ifndef TARGET_RASPBERRY_PI
SetControlLabel(i++, "%s %s", 22010, SYSTEM_GPU_TEMPERATURE);
+#endif
}
else if (m_section == CONTROL_BT_HARDWARE)
{
SET_CONTROL_LABEL(40,g_localizeStrings.Get(20160));
+#ifndef TARGET_RASPBERRY_PI
#ifdef HAS_SYSINFO
SET_CONTROL_LABEL(i++, g_sysinfo.GetXBVerInfo());
SetControlLabel(i++, "%s %s", 22011, SYSTEM_CPU_TEMPERATURE);
@@ -148,6 +151,7 @@
#endif
SetControlLabel(i++, "%s %s", 13271, SYSTEM_CPU_USAGE);
i++; // empty line
+#endif
SetControlLabel(i++, "%s: %s", 22012, SYSTEM_TOTAL_MEMORY);
SetControlLabel(i++, "%s: %s", 158, SYSTEM_FREE_MEMORY);
}

View File

@ -1,304 +0,0 @@
diff -Naur xbmc-f3b0020/xbmc/guilib/GUIToggleButtonControl.h xbmc-f3b0020.patch/xbmc/guilib/GUIToggleButtonControl.h
--- xbmc-f3b0020/xbmc/guilib/GUIToggleButtonControl.h 2011-12-10 22:16:22.000000000 +0100
+++ xbmc-f3b0020.patch/xbmc/guilib/GUIToggleButtonControl.h 2011-12-17 18:43:42.183704449 +0100
@@ -57,6 +57,7 @@
virtual CStdString GetDescription() const;
void SetToggleSelect(const CStdString &toggleSelect);
void SetAltClickActions(const CGUIAction &clickActions);
+ bool IsSelected() const { return m_bSelected; };
protected:
virtual bool UpdateColors();
diff -Naur xbmc-f3b0020/xbmc/interfaces/python/xbmcmodule/control.h xbmc-f3b0020.patch/xbmc/interfaces/python/xbmcmodule/control.h
--- xbmc-f3b0020/xbmc/interfaces/python/xbmcmodule/control.h 2011-12-10 22:16:21.000000000 +0100
+++ xbmc-f3b0020.patch/xbmc/interfaces/python/xbmcmodule/control.h 2011-12-17 18:43:42.216705084 +0100
@@ -135,6 +135,11 @@
typedef struct {
PyObject_HEAD_XBMC_CONTROL
+ bool bIsSelected;
+ } ControlToggle;
+
+ typedef struct {
+ PyObject_HEAD_XBMC_CONTROL
std::string strFont;
color_t textColor;
std::vector<std::string> vecLabels;
@@ -263,7 +268,8 @@
extern PyTypeObject ControlRadioButton_Type;
extern PyTypeObject ControlSlider_Type;
extern PyTypeObject ControlEdit_Type;
-
+ extern PyTypeObject ControlToggle_Type;
+
CGUIControl* ControlLabel_Create(ControlLabel* pControl);
CGUIControl* ControlFadeLabel_Create(ControlFadeLabel* pControl);
CGUIControl* ControlTextBox_Create(ControlTextBox* pControl);
@@ -276,6 +282,7 @@
CGUIControl* ControlRadioButton_Create(ControlRadioButton* pControl);
CGUIControl* ControlSlider_Create(ControlSlider* pControl);
CGUIControl* ControlEdit_Create(ControlEdit* pControl);
+ CGUIControl* ControlToggle_Create(ControlToggle* pControl);
void initControl_Type();
void initControlSpin_Type();
@@ -291,6 +298,7 @@
void initControlRadioButton_Type();
void initControlSlider_Type();
void initControlEdit_Type();
+ void initControlToggle_Type();
}
#ifdef __cplusplus
diff -Naur xbmc-f3b0020/xbmc/interfaces/python/xbmcmodule/controltogglebutton.cpp xbmc-f3b0020.patch/xbmc/interfaces/python/xbmcmodule/controltogglebutton.cpp
--- xbmc-f3b0020/xbmc/interfaces/python/xbmcmodule/controltogglebutton.cpp 1970-01-01 01:00:00.000000000 +0100
+++ xbmc-f3b0020.patch/xbmc/interfaces/python/xbmcmodule/controltogglebutton.cpp 2011-12-17 18:43:42.217705104 +0100
@@ -0,0 +1,181 @@
+/*
+ * Copyright (C) 2005-2011 Team XBMC
+ * http://www.xbmc.org
+ *
+ * This Program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2, or (at your option)
+ * any later version.
+ *
+ * This Program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with XBMC; see the file COPYING. If not, write to
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ */
+
+#include <Python.h>
+
+#include "guilib/GUIToggleButtonControl.h"
+#include "guilib/GUIFontManager.h"
+#include "control.h"
+#include "pyutil.h"
+
+using namespace std;
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+namespace PYXBMC
+{
+ PyObject* ControlToggle_New(
+ PyTypeObject *type,
+ PyObject *args,
+ PyObject *kwds )
+ {
+ static const char *keywords[] = {
+ "x", "y", "width", "height", "label",
+ "focusTexture", "noFocusTexture",
+ "textOffsetX", "textOffsetY", "alignment",
+ "font", "textColor", "disabledColor", "angle", "shadowColor", "focusedColor", NULL };
+ ControlToggle *self;
+ char* cFont = NULL;
+ char* cTextureFocus = NULL;
+ char* cTextureNoFocus = NULL;
+ char* cTextColor = NULL;
+ char* cDisabledColor = NULL;
+ char* cShadowColor = NULL;
+ char* cFocusedColor = NULL;
+
+ PyObject* pObjectText;
+
+ self = (ControlToggle*)type->tp_alloc(type, 0);
+ if (!self) return NULL;
+ new(&self->bIsSelected) bool();
+
+ if (!PyArg_ParseTupleAndKeywords(
+ args,
+ kwds,
+ (char*)"llllO|sslllssslss",
+ (char**)keywords,
+ &self->dwPosX,
+ &self->dwPosY,
+ &self->dwWidth,
+ &self->dwHeight,
+ &pObjectText,
+ &cTextureFocus,
+ &cTextureNoFocus,
+ &cFont,
+ &cTextColor,
+ &cDisabledColor,
+ &cShadowColor,
+ &cFocusedColor))
+ {
+ Py_DECREF( self );
+ return NULL;
+ }
+
+
+ cTextureFocus :
+ PyXBMCGetDefaultImage((char*)"button", (char*)"texturefocus", (char*)"button-focus.png");
+ cTextureNoFocus :
+ PyXBMCGetDefaultImage((char*)"button", (char*)"texturenofocus", (char*)"button-nofocus.jpg");
+
+ return (PyObject*)self;
+ }
+
+ void ControlToggle_Dealloc(ControlToggle* self)
+ {
+ self->ob_type->tp_free((PyObject*)self);
+ }
+
+
+ // isSelected() Method
+ PyDoc_STRVAR(isSelected__doc__,
+ "isSelected() -- Returns the toggle buttons's selected status.\n"
+ "\n"
+ "example:\n"
+ " - is = self.togglebutton.isSelected()\n");
+
+ PyObject* ControlToggle_IsSelected(ControlToggle *self, PyObject *args)
+ {
+ bool isSelected = false;
+
+ PyXBMCGUILock();
+ if (self->pGUIControl)
+ isSelected = ((CGUIToggleButtonControl*)self->pGUIControl)->IsSelected();
+ PyXBMCGUIUnlock();
+
+ return Py_BuildValue((char*)"b", isSelected);
+ }
+
+
+ PyMethodDef ControlToggle_methods[] = {
+ {(char*)"isSelected", (PyCFunction)ControlToggle_IsSelected, METH_VARARGS, isSelected__doc__},
+ {NULL, NULL, 0, NULL}
+ };
+
+ // ControlRadioButton class
+ PyDoc_STRVAR(ControlToggle__doc__,
+ "ControlRadioButton class.\n"
+ "\n"
+ "ControlRadioButton(x, y, width, height, label[, focusTexture, noFocusTexture, textOffsetX, textOffsetY,\n"
+ " alignment, font, textColor, disabledColor, angle, shadowColor, focusedColor,\n"
+ " radioFocusTexture, noRadioFocusTexture])\n"
+ "\n"
+ "x : integer - x coordinate of control.\n"
+ "y : integer - y coordinate of control.\n"
+ "width : integer - width of control.\n"
+ "height : integer - height of control.\n"
+ "label : string or unicode - text string.\n"
+ "focusTexture : [opt] string - filename for focus texture.\n"
+ "noFocusTexture : [opt] string - filename for no focus texture.\n"
+ "textOffsetX : [opt] integer - x offset of label.\n"
+ "textOffsetY : [opt] integer - y offset of label.\n"
+ "alignment : [opt] integer - alignment of label - *Note, see xbfont.h\n"
+ "font : [opt] string - font used for label text. (e.g. 'font13')\n"
+ "textColor : [opt] hexstring - color of enabled radio button's label. (e.g. '0xFFFFFFFF')\n"
+ "disabledColor : [opt] hexstring - color of disabled radio button's label. (e.g. '0xFFFF3300')\n"
+ "angle : [opt] integer - angle of control. (+ rotates CCW, - rotates CW)\n"
+ "shadowColor : [opt] hexstring - color of radio button's label's shadow. (e.g. '0xFF000000')\n"
+ "focusedColor : [opt] hexstring - color of focused radio button's label. (e.g. '0xFF00FFFF')\n"
+ "radioFocusTexture : [opt] string - filename for radio focus texture.\n"
+ "noRadioFocusTexture : [opt] string - filename for radio no focus texture.\n"
+ "\n"
+ "*Note, You can use the above as keywords for arguments and skip certain optional arguments.\n"
+ " Once you use a keyword, all following arguments require the keyword.\n"
+ " After you create the control, you need to add it to the window with addControl().\n"
+ "\n"
+ "example:\n"
+ " - self.radiobutton = xbmcgui.ControlToggleButton(100, 250, 200, 50, 'Status', font='font14')\n");
+
+ // Restore code and data sections to normal.
+
+ PyTypeObject ControlToggle_Type;
+
+ void initControlToggle_Type()
+ {
+ PyXBMCInitializeTypeObject(&ControlToggle_Type);
+
+ ControlToggle_Type.tp_name = (char*)"xbmcgui.ControlToggleButton";
+ ControlToggle_Type.tp_basicsize = sizeof(ControlToggle);
+ ControlToggle_Type.tp_dealloc = (destructor)ControlToggle_Dealloc;
+ ControlToggle_Type.tp_compare = 0;
+ ControlToggle_Type.tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE;
+ ControlToggle_Type.tp_doc = ControlToggle__doc__;
+ ControlToggle_Type.tp_methods = ControlToggle_methods;
+ ControlToggle_Type.tp_base = &Control_Type;
+ ControlToggle_Type.tp_new = ControlToggle_New;
+ }
+}
+
+#ifdef __cplusplus
+}
+#endif
diff -Naur xbmc-f3b0020/xbmc/interfaces/python/xbmcmodule/Makefile.in xbmc-f3b0020.patch/xbmc/interfaces/python/xbmcmodule/Makefile.in
--- xbmc-f3b0020/xbmc/interfaces/python/xbmcmodule/Makefile.in 2011-12-10 22:16:21.000000000 +0100
+++ xbmc-f3b0020.patch/xbmc/interfaces/python/xbmcmodule/Makefile.in 2011-12-17 18:44:47.447960296 +0100
@@ -13,6 +13,7 @@
controlslider.cpp \
controlspin.cpp \
controltextbox.cpp \
+ controltogglebutton.cpp \
dialog.cpp \
GUIPythonWindow.cpp \
GUIPythonWindowDialog.cpp \
diff -Naur xbmc-f3b0020/xbmc/interfaces/python/xbmcmodule/window.cpp xbmc-f3b0020.patch/xbmc/interfaces/python/xbmcmodule/window.cpp
--- xbmc-f3b0020/xbmc/interfaces/python/xbmcmodule/window.cpp 2011-12-10 22:16:21.000000000 +0100
+++ xbmc-f3b0020.patch/xbmc/interfaces/python/xbmcmodule/window.cpp 2011-12-17 18:43:42.218705123 +0100
@@ -277,6 +277,12 @@
if (li.font) ((ControlEdit*)pControl)->strFont = li.font->GetFontName();
((ControlButton*)pControl)->align = li.align;
break;
+ case CGUIControl::GUICONTROL_TOGGLEBUTTON:
+ pControl = (Control*)ControlToggle_Type.tp_alloc(&ControlToggle_Type, 0);
+ new(&((ControlToggle*)pControl)->bIsSelected) bool();
+
+ break;
+
default:
break;
}
diff -Naur xbmc-f3b0020/xbmc/interfaces/python/xbmcmodule/xbmcguimodule.cpp xbmc-f3b0020.patch/xbmc/interfaces/python/xbmcmodule/xbmcguimodule.cpp
--- xbmc-f3b0020/xbmc/interfaces/python/xbmcmodule/xbmcguimodule.cpp 2011-12-10 22:16:21.000000000 +0100
+++ xbmc-f3b0020.patch/xbmc/interfaces/python/xbmcmodule/xbmcguimodule.cpp 2011-12-17 18:43:42.219705142 +0100
@@ -138,6 +138,7 @@
initAction_Type();
initControlRadioButton_Type();
initControlEdit_Type();
+ initControlToggle_Type();
if (PyType_Ready(&Window_Type) < 0 ||
PyType_Ready(&WindowDialog_Type) < 0 ||
@@ -160,7 +161,8 @@
PyType_Ready(&ControlSlider_Type) < 0 ||
PyType_Ready(&ControlRadioButton_Type) < 0 ||
PyType_Ready(&ControlEdit_Type) < 0 ||
- PyType_Ready(&Action_Type) < 0)
+ PyType_Ready(&Action_Type) < 0 ||
+ PyType_Ready(&ControlToggle_Type) < 0)
return;
}
@@ -200,6 +202,7 @@
Py_INCREF(&Action_Type);
Py_INCREF(&ControlRadioButton_Type);
Py_INCREF(&ControlEdit_Type);
+ Py_INCREF(&ControlToggle_Type);
pXbmcGuiModule = Py_InitModule3((char*)"xbmcgui", xbmcGuiMethods, xbmcgui_module_documentation);
@@ -227,7 +230,8 @@
PyModule_AddObject(pXbmcGuiModule, (char*)"Action", (PyObject *)&Action_Type);
PyModule_AddObject(pXbmcGuiModule, (char*)"ControlRadioButton", (PyObject*)&ControlRadioButton_Type);
PyModule_AddObject(pXbmcGuiModule, (char*)"ControlEdit", (PyObject*)&ControlEdit_Type);
-
+ PyModule_AddObject(pXbmcGuiModule, (char*)"ControlToggle", (PyObject*)&ControlToggle_Type);
+
PyModule_AddStringConstant(pXbmcGuiModule, (char*)"__author__", (char*)PY_XBMC_AUTHOR);
PyModule_AddStringConstant(pXbmcGuiModule, (char*)"__date__", (char*)"14 July 2006");
PyModule_AddStringConstant(pXbmcGuiModule, (char*)"__version__", (char*)"1.2");
diff -Naur xbmc-f3b0020/XBMC.xcodeproj/project.pbxproj xbmc-f3b0020.patch/XBMC.xcodeproj/project.pbxproj

View File

@ -46,6 +46,9 @@ elif [ -f /sys/class/hwmon/hwmon0/device/temp1_input ]; then
elif [ -f /sys/class/hwmon/hwmon0/device/temp2_input ]; then
# used on ION systems
TEMP=`cat /sys/class/hwmon/hwmon0/device/temp2_input`
elif [ -x /usr/bin/vcgencmd ]; then
# for RaspberryPi only
TEMP=`echo "$(/usr/bin/vcgencmd measure_temp | sed -e "s,temp=,,g" -e "s,'C,,g" | cut -d . -f 1 ) * 1000" | bc`
fi
echo "$(( $TEMP / 1000 )) C"

View File

@ -0,0 +1,43 @@
From 864acb01cc73762918794ddecf0fc2f7b6cf8529 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?S=C3=A9bastien=20Brochet?= <blinkseb@xbmc.org>
Date: Sun, 15 Apr 2012 22:43:46 +0200
Subject: [PATCH 1/3] added: support for OTF fonts
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Sébastien Brochet <blinkseb@xbmc.org>
---
libavcodec/avcodec.h | 1 +
libavformat/matroska.c | 1 +
2 files changed, 2 insertions(+), 0 deletion(-)
diff --git a/lib/ffmpeg/libavcodec/avcodec.h b/lib/ffmpeg/libavcodec/avcodec.h
index 0b756d0..6996c92 100644
--- a/libavcodec/avcodec.h
+++ b/libavcodec/avcodec.h
@@ -435,6 +435,7 @@ enum CodecID {
CODEC_ID_BINTEXT = MKBETAG('B','T','X','T'),
CODEC_ID_XBIN = MKBETAG('X','B','I','N'),
CODEC_ID_IDF = MKBETAG( 0 ,'I','D','F'),
+ CODEC_ID_OTF = MKBETAG( 0 ,'O','T','F'),
CODEC_ID_PROBE = 0x19000, ///< codec_id is not known (like CODEC_ID_NONE) but lavf should attempt to identify it
diff --git a/lib/ffmpeg/libavformat/matroska.c b/lib/ffmpeg/libavformat/matroska.c
index 52481d7..2f5b617 100644
--- a/libavformat/matroska.c
+++ b/libavformat/matroska.c
@@ -90,6 +90,7 @@ const CodecMime ff_mkv_mime_tags[] = {
{"image/tiff" , CODEC_ID_TIFF},
{"application/x-truetype-font", CODEC_ID_TTF},
{"application/x-font" , CODEC_ID_TTF},
+ {"application/vnd.ms-opentype", CODEC_ID_OTF},
{"" , CODEC_ID_NONE}
};
index 17cbd48..4524141 100644
--
1.7.10.msysgit.1

View File

@ -0,0 +1,58 @@
#!/bin/sh
################################################################################
# This file is part of OpenELEC - http://www.openelec.tv
# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv)
#
# This Program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This Program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with OpenELEC.tv; see the file COPYING. If not, write to
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
# http://www.gnu.org/copyleft/gpl.html
################################################################################
. config/options $1
setup_toolchain host
cd $PKG_BUILD
./configure --host=$HOST_NAME \
--build=$HOST_NAME \
--prefix=$ROOT/$TOOLCHAIN \
--with-pcre-prefix=$ROOT/$TOOLCHAIN \
--with-boost=no \
--without-x \
--without-tcl \
--without-python \
--without-python3 \
--without-perl5 \
--without-octave \
--without-java \
--without-gcj \
--without-android \
--without-guile \
--without-mzscheme \
--without-ruby \
--without-php \
--without-ocaml \
--without-pike \
--without-chicken \
--without-csharp \
--without-lua \
--without-allegrocl \
--without-clisp \
--without-r \
--without-go \
--without-d \
make
make install

View File

@ -0,0 +1,36 @@
################################################################################
# This file is part of OpenELEC - http://www.openelec.tv
# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv)
#
# This Program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This Program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with OpenELEC.tv; see the file COPYING. If not, write to
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
# http://www.gnu.org/copyleft/gpl.html
################################################################################
PKG_NAME="swig"
PKG_VERSION="2.0.8"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"
PKG_SITE="http://www.swig.org"
PKG_URL="$SOURCEFORGE_SRC/swig/$PKG_NAME-$PKG_VERSION.tar.gz"
PKG_DEPENDS=""
PKG_BUILD_DEPENDS="ccache pcre-host"
PKG_PRIORITY="optional"
PKG_SECTION="toolchain/devel"
PKG_SHORTDESC="SWIG: a software development tool that connects programs written in C and C++ with a variety of high-level programming languages."
PKG_LONGDESC="SWIG is a software development tool that connects programs written in C and C++ with a variety of high-level programming languages."
PKG_IS_ADDON="no"
PKG_AUTORECONF="no"

View File

@ -19,7 +19,7 @@
################################################################################
PKG_NAME="bcm2835-bootloader"
PKG_VERSION="790681a"
PKG_VERSION="05bb1ec"
PKG_REV="1"
PKG_ARCH="arm"
PKG_LICENSE="nonfree"

View File

@ -2,6 +2,8 @@
<advancedsettings>
<!--<loglevel>1</loglevel>-->
<splash>false</splash>
<cputempcommand>cputemp</cputempcommand>
<gputempcommand>cputemp</gputempcommand>
<showexitbutton>false</showexitbutton>
<destroywindowcontrols>false</destroywindowcontrols>

View File

@ -33,8 +33,8 @@ case $1 in
deps_pkg="wget"
;;
build)
deps="gcc g++ sed patch touch tar bzip2 gzip perl cp gawk makeinfo gperf cvs zip unzip mkfontscale diff xsltproc"
deps_pkg="gcc g++ sed patch fileutils tar bzip2 gzip perl coreutils gawk texinfo gperf cvs zip unzip xutils diff xsltproc"
deps="gcc g++ sed patch touch tar bzip2 gzip perl cp gawk makeinfo gperf cvs zip unzip mkfontscale diff xsltproc java"
deps_pkg="gcc g++ sed patch fileutils tar bzip2 gzip perl coreutils gawk texinfo gperf cvs zip unzip xutils diff xsltproc sun-java6-jre"
files="/usr/include/stdio.h /usr/include/ncurses.h"
files_pkg="libc6-dev libncurses5-dev"
;;