col);
return 0;
#endif
-#if 0 // def BCM_ACCEL
- bcm_accel_fill(
- dst->data_phys, dst->x, dst->y, dst->stride,
- area.left(), area.top(), area.width(), area.height(),
- col);
- return 0;
+#ifdef BCM_ACCEL
+ if (!m_bcm_accel_state) {
+ bcm_accel_fill(
+ dst->data_phys, dst->x, dst->y, dst->stride,
+ area.left(), area.top(), area.width(), area.height(),
+ col);
+ return 0;
+ }
#endif
return -1;
}
int x, int y, int width, int height,
unsigned long color)
{
-// printf("unimplemented bcm_accel_fill\n");
+ C(0x43); // reset source
+ C(0x53); // reset dest
+ C(0x5b); // reset pattern
+ C(0x67); // reset blend
+ C(0x75); // reset output
+
+ // clear dest surface
+ P(0x0, 0);
+ P(0x1, 0);
+ P(0x2, 0);
+ P(0x3, 0);
+ P(0x4, 0);
+ C(0x45);
+
+ // clear src surface
+ P(0x0, 0);
+ P(0x1, 0);
+ P(0x2, 0);
+ P(0x3, 0);
+ P(0x4, 0);
+ C(0x5);
+
+ P(0x2d, color);
+
+ P(0x2e, x); // prepare output rect
+ P(0x2f, y);
+ P(0x30, width);
+ P(0x31, height);
+ C(0x6e); // set this rect as output rect
+
+ P(0x0, dst_addr); // prepare output surface
+ P(0x1, dst_stride);
+ P(0x2, dst_width);
+ P(0x3, dst_height);
+ P(0x4, 0x7e48888);
+ C(0x69); // set output surface
+
+ P(0x6f, 0);
+ P(0x70, 0);
+ P(0x71, 2);
+ P(0x72, 2);
+ C(0x73); // select color keying
+
+ C(0x77); // do it
+
+ exec_list();
}
answer[1][1]()
from Tools.BoundFunction import boundFunction
+import inspect
# depends on InfoBarExtensions
return name
def getPluginList(self):
- list = [((boundFunction(self.getPluginName, p.name), boundFunction(self.runPlugin, p), lambda: True), None, p.name) for p in plugins.getPlugins(where = PluginDescriptor.WHERE_EXTENSIONSMENU)]
- list.sort(key = lambda e: e[2]) # sort by name
- return list
+ l = []
+ for p in plugins.getPlugins(where = PluginDescriptor.WHERE_EXTENSIONSMENU):
+ args = inspect.getargspec(p.__call__)[0]
+ if len(args) == 1 or len(args) == 2 and isinstance(self, InfoBarChannelSelection):
+ l.append(((boundFunction(self.getPluginName, p.name), boundFunction(self.runPlugin, p), lambda: True), None, p.name))
+ l.sort(key = lambda e: e[2]) # sort by name
+ return l
def runPlugin(self, plugin):
if isinstance(self, InfoBarChannelSelection):