00:05:46 | | Join ii__ [0] (~ii@78.24.28.191) |
00:05:46 | | Quit ii_ (Read error: Connection reset by peer) |
00:13:14 | | Join dexpid [0] (~dexpid@cpe-184-59-114-126.cinci.res.rr.com) |
00:14:43 | | Quit wodz (Quit: Leaving) |
00:15:22 | | Quit the-kyle (Read error: Connection reset by peer) |
00:17:38 | | Join the-kyle [0] (~kyle@kyle.tk) |
00:22:39 | | Join us`0gb [0] (~0gb.us@c-50-137-60-25.hsd1.or.comcast.net) |
00:25:23 | [Saint] | JdGordon: One for you, sir. |
00:25:26 | [Saint] | http://forums.rockbox.org/index.php/topic,48084.new.html#new |
00:25:53 | [Saint] | (same guy that wanted the tag for color depth selection) |
00:26:40 | | Quit ZincAlloy (Quit: Leaving.) |
00:26:55 | [Saint] | A couple of the tests are "the wrong way" to do it, but...they should /technically/ behave in the same fashion. |
00:28:02 | [Saint] | But I guess its only "old hat" Rockbox peoples that know the "wrong" and "right" way to do things in the theme engine. There's several options for many cases, and we don;t exactly make it very clear what is deprecated and what isn't. |
00:28:32 | JdGordon | long read :'( |
00:28:34 | * | [Saint] shakes a fist at the choice to support legacy themes - sane, but, godfickkinasscockdammit. |
00:29:36 | [Saint] | In hindsight "in with the new, out with the old, update or die" would've been a better choice for both the code base and documentation. |
00:29:52 | *** | Saving seen data "./dancer.seen" |
00:30:37 | [Saint] | We don't so much have "new" and "old" syntax now as we do have "multiple ways of doing the same thing which may or may not be intended to work". |
00:30:53 | | Quit Mongey_ (Read error: Connection reset by peer) |
00:31:09 | | Join Mongey [0] (~Mongey@79.97.125.239) |
00:33:09 | JdGordon | yes, but removing all -duplicated- tags would just annoy too many people |
00:34:05 | | Quit ii__ (Remote host closed the connection) |
00:34:41 | | Join ii_ [0] (~ii@78.24.28.186) |
00:36:17 | | Quit ii_ (Remote host closed the connection) |
00:36:29 | | Join ii_ [0] (~ii@78.24.28.186) |
00:37:33 | | Quit ii_ (Remote host closed the connection) |
00:37:43 | | Quit ivanf (Ping timeout: 252 seconds) |
00:37:52 | | Join ivanf [0] (~ivan@cpe-74-73-249-133.nyc.res.rr.com) |
00:37:52 | | Quit ivanf (Changing host) |
00:37:52 | | Join ivanf [0] (~ivan@unaffiliated/kferdous) |
00:42:07 | | Quit Mongey (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) |
00:42:27 | [Saint] | TheSeven: If you're not too bucy, could you please poke your nose in at http://forums.rockbox.org/index.php/topic,48082.msg227396.html#msg227396 |
00:42:40 | [Saint] | *busy, even. |
00:45:58 | | Join Mongey [0] (~Mongey@79.97.125.239) |
00:49:06 | | Join jhMikeS [0] (~jethead71@rockbox/developer/jhMikeS) |
01:00 |
01:06:22 | | Quit Mongey (Ping timeout: 240 seconds) |
01:09:48 | | Quit bertrik (Remote host closed the connection) |
01:11:24 | | Join Mongey [0] (~Mongey@79.97.125.239) |
01:12:42 | | Join ii_ [0] (~ii@78.24.28.191) |
01:20:56 | | Quit Guest12921 (Quit: Quitte) |
01:25:27 | TheSeven | [Saint]: as far as I understand that post, this is in fact itunes failing to restore the ipod within disk mode |
01:26:16 | TheSeven | (the "use itunes to restore" screen will start disk mode as soon as it gets connected to USB) |
01:26:39 | [Saint] | I replied since, with a basic rundown of how to get to EDM. |
01:26:49 | TheSeven | my guess is that itunes is just screwing this up somehow |
01:27:02 | TheSeven | wouldn't been the first time, we've had lots of reports of that recently, though mostly on classics |
01:27:31 | TheSeven | we typically recommend downgrading to itunes 9.2.1, see http://appletoolbox.com/2010/09/how-to-downgrade-itunes-10-to-itunes-9-2-1/ |
01:27:55 | TheSeven | newer itunes versions seem to have somewhat buggy support for those old clickwheel ipods which apple doesn't really care about anymore |
01:28:44 | TheSeven | that itunes version should usually just happily restore the ipod from the state that it currently is in |
01:29:08 | TheSeven | no need to even enter disk mode manually |
01:31:22 | [Saint] | I have seen cases where iTunes has no idea what's going on until it sees an iPod in EDM, though. |
01:35:19 | | Quit APLU (Ping timeout: 265 seconds) |
01:39:29 | | Quit ii_ (Ping timeout: 264 seconds) |
01:43:35 | TheSeven | [Saint]: "use itunes to restore" screen IS in fact EDM, just triggered by bad firmware partition contents instead of a button combination |
01:43:52 | TheSeven | it boots the very same binary once it gets connected to USB |
01:44:14 | [Saint] | Ah, indeed. So it does. I'll amend my answer. |
01:46:05 | | Join APLU [0] (~mulx@2a01:e34:ee29:12b0::10) |
01:49:49 | | Quit Jack87 (Ping timeout: 265 seconds) |
01:52:19 | | Quit Mongey (Read error: Connection reset by peer) |
01:56:41 | | Join Mongey [0] (~Mongey@79.97.125.239) |
01:57:10 | | Join Jack87 [0] (Jack87@nasadmin/admin/jack87) |
02:00 |
02:12:44 | | Nick DormantBrain is now known as SuperBrainAK (~andy@2001:470:8:a61::5f92:59a1) |
02:21:52 | | Join Mongey_ [0] (~Mongey@79.97.125.239) |
02:25:35 | | Quit Mongey (Ping timeout: 240 seconds) |
02:29:55 | *** | Saving seen data "./dancer.seen" |
02:31:21 | | Join Mongey [0] (~Mongey@79.97.125.239) |
02:31:30 | | Quit Mongey_ (Read error: Connection reset by peer) |
02:47:22 | | Quit Mongey (Read error: Connection reset by peer) |
02:51:40 | | Join Mongey [0] (~Mongey@79.97.125.239) |
03:00 |
03:00:01 | | Quit AlexP (Remote host closed the connection) |
03:10:25 | | Quit ruskie (Excess Flood) |
03:10:38 | | Join ruskie [0] (ruskie@sourcemage/mage/ruskie) |
03:11:51 | | Quit Mongey (Read error: Connection reset by peer) |
03:19:27 | | Join Mongey [0] (~Mongey@79.97.125.239) |
03:27:55 | | Join tertu [0] (~quassel@143.44.65.14) |
03:32:27 | | Join Mongey_ [0] (~Mongey@79.97.125.239) |
03:32:45 | | Quit Mongey (Read error: Connection reset by peer) |
03:35:30 | | Join ii_ [0] (~ii@78.24.28.186) |
03:39:34 | | Quit ii_ (Ping timeout: 240 seconds) |
03:42:06 | | Quit cmhobbs (Ping timeout: 252 seconds) |
04:00 |
04:03:04 | | Quit Mongey_ (Read error: Connection reset by peer) |
04:03:43 | | Join Mongey [0] (~Mongey@79.97.125.239) |
04:10:09 | | Quit tertu (Quit: No Ping reply in 180 seconds.) |
04:10:09 | | Join tertu_ [0] (~quassel@143.44.65.14) |
04:13:33 | alexbobp | would it be possible to have a "backlight on hold" setting on devices with software hold? |
04:21:04 | jhMikeS | I would think so |
04:21:29 | | Join Mongey_ [0] (~Mongey@79.97.125.239) |
04:22:00 | | Quit Mongey (Ping timeout: 240 seconds) |
04:22:13 | alexbobp | I remember having it on the old fuze but it's absent on clip zip and fuze+ |
04:22:41 | alexbobp | it would be especially nice because it makes it easy to actually tell if the device is on hold |
04:24:04 | alexbobp | this is of course all sandisk's fault, physical hold switches are the best >_> |
04:24:36 | jhMikeS | they must be getting expensive |
04:25:55 | alexbobp | -_- |
04:26:32 | alexbobp | I wonder if I could use kickstarter to launch a dap |
04:27:17 | alexbobp | but all I really want is for them to make the fuze again |
04:29:21 | | Join amiconn_ [0] (quassel@rockbox/developer/amiconn) |
04:29:21 | | Quit amiconn (Disconnected by services) |
04:29:24 | | Nick amiconn_ is now known as amiconn (quassel@rockbox/developer/amiconn) |
04:29:58 | *** | Saving seen data "./dancer.seen" |
04:30:08 | | Quit pixelma (Ping timeout: 264 seconds) |
04:30:14 | | Join pixelma_ [0] (quassel@rockbox/staff/pixelma) |
04:30:16 | | Nick pixelma_ is now known as pixelma (quassel@rockbox/staff/pixelma) |
04:31:05 | | Join Mongey [0] (~Mongey@79.97.125.239) |
04:31:45 | | Quit Mongey_ (Read error: Connection reset by peer) |
04:34:40 | | Quit saratoga (Quit: Page closed) |
04:42:34 | | Join Mongey_ [0] (~Mongey@79.97.125.239) |
04:43:28 | | Quit Mongey (Ping timeout: 240 seconds) |
04:44:06 | | Quit Mongey_ (Read error: Connection reset by peer) |
04:44:12 | | Join Mongey [0] (~Mongey@79.97.125.239) |
04:49:42 | | Quit Mongey (Ping timeout: 264 seconds) |
04:49:55 | | Join Mongey [0] (~Mongey@79.97.125.239) |
04:54:12 | [Saint] | alexbobp: it should be fairly obvious if the device is on hold if the theme caters for this. |
04:54:27 | [Saint] | The "is hold on?" tag makes no distinction between software and hardware hold. |
04:55:19 | | Quit Mongey (Ping timeout: 246 seconds) |
04:56:05 | jhMikeS | that backlight on hold feature _currently_ needs a phsical button present |
04:56:56 | [Saint] | Yeah, I suspect that was an oversight. |
04:57:01 | [Saint] | Easily corrected. |
04:57:18 | jhMikeS | naw, it just didn't exist at the time |
04:57:41 | [Saint] | I meant when software hold was added. |
04:57:44 | jhMikeS | so long as you emulate a physical button, it should be easily patched in |
04:57:53 | jhMikeS | ah |
04:59:18 | [Saint] | It might get a bit confusing if it also catered for the touchscreen only soft lock too. |
04:59:31 | [Saint] | But I suspect no one uses that at all. |
04:59:42 | [Saint] | I'm fairly sure I was the only one who ever used it. |
05:00 |
05:00:39 | [Saint] | (its a touch region that disables all other touch regions except for itself {in order to disable itself}) |
05:02:08 | jhMikeS | what is that used on? I'm aware it's there, but do not use touchscreen devices for music |
05:03:10 | [Saint] | I use it in a couple of my themes, but nothing "official" uses it. |
05:03:56 | [Saint] | In the free time I do get, I am trying desperately to finish a tabbed UI template to serve as a base for a new cabbie. |
05:04:34 | | Join Mongey [0] (~Mongey@79.97.125.239) |
05:04:54 | [Saint] | The idea being that if I supply the templates, and some SVG art, future ports should only need to have a few size/location params adjusted and art generated. |
05:05:19 | jhMikeS | tabbed? shounds intereshting |
05:06:58 | [Saint] | Currently it has three tabs, "Now Playing"; "Info/More"; and "Settings". |
05:07:07 | [Saint] | But most of it is placeholders presently. |
05:08:36 | [Saint] | The "Settings" tab isn't /really/ needed, but I wanted to use it to show off a set of simple on/off touchscreen toggles as a teaching tool. |
05:09:00 | alexbobp | well I guess I could blame the theme... tbh I would rather the screen turn off anyways though :P |
05:09:02 | jhMikeS | I didn't know you could do tabs now |
05:09:27 | alexbobp | actually another nice thing would be if the "first keypress turns on backlight only" option could exempt the power/hold button on fuze+ |
05:09:39 | * | jhMikeS is usually scrounging around in the bilge code |
05:10:10 | [Saint] | jhMikeS: There's no "make a tabbbed structure for me" tag, but I can do some magic with touchscreen variables and conditional viewports. |
05:10:22 | | Quit Mongey (Ping timeout: 246 seconds) |
05:10:34 | alexbobp | I just want to simulate the workflow of turning the screen on and off with the power button to make the touchpanel do things or not do things :P |
05:10:53 | [Saint] | Tab touchscreen area sets (or increments, or decrements) a variable, check that variable to decide what viewport(s) to display. |
05:11:22 | jhMikeS | alexbobp: but it is already exempt if it works with the backlight off |
05:12:12 | [Saint] | Hm? |
05:12:27 | | Join nell_ [0] (b8263b74@gateway/web/freenode/ip.184.38.59.116) |
05:12:37 | jhMikeS | [Saint]: was wondering what alexbobp meant |
05:13:48 | nell_ | hello. how is everyone |
05:13:49 | [Saint] | I was wondering what "[17:11:23] <jhMikeS> alexbobp: but it is already exempt if it works with the backlight off" meant. |
05:13:54 | alexbobp | jhMikeS: it doesn't work with the backlight off |
05:14:01 | jhMikeS | [Saint]: I take it that it needs decent screen realestate |
05:14:35 | [Saint] | ...why? |
05:14:51 | alexbobp | right now if I set it so that I can turn off hold and also turn on the screen with one press of the power button, |
05:15:01 | jhMikeS | [Saint]: would it work on small displays (not phone-sized) |
05:15:11 | alexbobp | then it also means if the screen sleeps without me engaging hold, any stray swipe across the touch panel will muck things up |
05:15:12 | nell_ | ill throw my hat in the ring when this calms down. |
05:15:35 | [Saint] | jhMikeS: Ohhhhhh, right. Sorry, mixing two conversations. |
05:15:53 | [Saint] | jhMikeS: It _should_ go down to 240x320 comfortably. |
05:16:04 | [Saint] | (which, iiuc, is our smallest touchscreen target) |
05:16:23 | [Saint] | nell_: No no, go nuts, we're watching. :) |
05:16:29 | [Saint] | How may we service you? |
05:17:39 | jhMikeS | alexbobp: that sounds sort of wrong if it gets screen presses without being visible |
05:18:23 | [Saint] | Yeah...software hold is a bit, weird. |
05:18:27 | alexbobp | jhMikeS: the fuze+ has a touch panel below the screen |
05:18:42 | alexbobp | and rockbox treats it as buttons |
05:19:12 | alexbobp | so it should probably be optional to disable the touch panel when the backlight is off |
05:19:14 | [Saint] | (A hilariously bad touchpad at that) |
05:19:18 | alexbobp | yup |
05:19:21 | alexbobp | it's really bad |
05:20:02 | alexbobp | I ordered this: http://www.amazon.com/dp/B005GFXH6S/ref=pe_385040_30332190_TE_3p_M3T1_ST1_dp_1 |
05:20:05 | alexbobp | so wish me luck you guys |
05:20:29 | alexbobp | if it actually works on the fuze+ then I guess I'll almost have a comparably usable player to the old fuze for a comparable price :P |
05:21:03 | [Saint] | Errrr...that thing is HUGE. |
05:21:05 | jhMikeS | Ah I see it's similar to the SA9200 |
05:21:36 | jhMikeS | I would expect that to behave just like physical buttons though |
05:21:47 | [Saint] | I'm /almost/ willing to wager that that item is quite a bit larger than the DAP you're intended to fit it on. |
05:21:48 | alexbobp | oh crap you're right |
05:22:07 | alexbobp | yeah I should have looked at the pictures |
05:22:18 | alexbobp | there were smaller similar products and I grabbed the slightly cheaper one without noticing it was much bigger >_> |
05:22:33 | [Saint] | Lets hope the hand model is a midget. |
05:22:35 | alexbobp | oh well it's been shipped |
05:22:37 | alexbobp | and it was only $5 |
05:22:41 | [Saint] | Errr, little person. |
05:22:43 | alexbobp | I guess I can try to find a game for my phone |
05:24:31 | [Saint] | jhMikeS: The only thing I find unfortunate about a tabbed touchscreen UI is that there's no way to make a similar UI for the non-touch targets. |
05:25:02 | [Saint] | Even if variables were an option for non-touch, I can't think of a single target that has free keys to make use of it. |
05:25:18 | jhMikeS | [Saint]: nope, unless we extend input focus somehow |
05:25:19 | [Saint] | (and the alternative would be drastically remapping things, which isn;t an option) |
05:26:30 | [Saint] | A "one theme fits all" type deal doesn't work particularly well for us in this regard. |
05:29:34 | jhMikeS | It would likely diminish usability overall |
05:30:05 | * | [Saint] nods |
05:30:46 | [Saint] | The touchscreen cabbie in git presently is far from terrible, but, its rather obviously a non-touch UI with touch elements jammed into it. |
05:30:55 | * | jhMikeS wanted to make a crude comparison to something but then resisted |
05:33:08 | jhMikeS | I get the feeling I have to touch things, but, it's not obvious what to touch. Things don't come off as being active widgets |
05:33:57 | [Saint] | Right. |
05:34:16 | jhMikeS | It should display with clear controls |
05:34:45 | jhMikeS | I can use it with a mouse on the sim so I know what you mean |
05:35:51 | JdGordon | [Saint]: I tried pushing skin variables and gave up |
05:36:02 | JdGordon | there is definitly ways to get them in without extra buttons |
05:36:14 | JdGordon | but it means customising button presses which rubbed people the wrong way |
05:36:20 | [Saint] | Yeah. |
05:36:33 | JdGordon | except no, we have hotkeys now :/ |
05:36:50 | jhMikeS | so we have customizable button but we don't |
05:37:26 | [Saint] | The problem with hotkey is that the hotkey actions need to be defined prior to compile. |
05:37:46 | [Saint] | So we can't (simply" do a hotkey for "increment <var> foo" |
05:38:25 | [Saint] | And if we let hotkey be user defined, that's just asking for trouble with support. |
05:38:37 | [Saint] | No. *Begging* for it. |
05:38:51 | jhMikeS | why not event handling? |
05:40:11 | JdGordon | there is magic that could be done, i.e let the skin register some buttons and add them to th menu |
05:40:21 | JdGordon | but it wont work well when you switch |
05:41:38 | | Quit TheSeven (Disconnected by services) |
05:41:45 | | Join [7] [0] (~quassel@rockbox/developer/TheSeven) |
05:42:50 | jhMikeS | just start using HTML and JavaScript :P |
05:47:19 | Mode | "#rockbox +o [Saint]" by ChanServ (ChanServ@services.) |
05:47:27 | [Saint] | Don't temp me, jhMikeS ;) |
05:47:37 | Mode | "#rockbox -o [Saint]" by ChanServ (ChanServ@services.) |
05:48:21 | jhMikeS | :) |
05:48:46 | * | jhMikeS can kick back though |
05:57:59 | | Quit colin1 (Ping timeout: 252 seconds) |
06:00 |
06:02:01 | | Join colin1 [0] (~colin@rh-laurels-cs2-132-25.njit.edu) |
06:04:25 | | Quit Scromple (Quit: Leaving) |
06:12:10 | | Join Scromple [0] (~Simon@161.43.73.67) |
06:28:12 | | Nick SuperBrainAK is now known as DormantBrain (~andy@2001:470:8:a61::5f92:59a1) |
06:29:59 | *** | Saving seen data "./dancer.seen" |
06:32:33 | | Join ii_ [0] (~ii@78.24.28.191) |
06:41:54 | | Quit tertu_ (Ping timeout: 264 seconds) |
06:44:45 | | Quit [Saint] (Remote host closed the connection) |
06:46:54 | | Join [Saint] [0] (~saint@rockbox/staff/saint) |
06:48:15 | | Quit nell_ (Quit: Page closed) |
06:56:11 | | Join ferros [0] (~frrs@89-76-97-49.dynamic.chello.pl) |
07:00 |
07:05:58 | | Join ender` [0] (krneki@foo.eternallybored.org) |
07:10:23 | | Quit ii_ (Remote host closed the connection) |
07:10:55 | | Join ii_ [0] (~ii@78.24.28.186) |
07:15:19 | | Quit ii_ (Ping timeout: 246 seconds) |
07:44:54 | | Quit amiconn (Remote host closed the connection) |
07:44:55 | | Quit pixelma (Remote host closed the connection) |
07:45:45 | | Join amiconn [0] (amiconn@rockbox/developer/amiconn) |
07:45:45 | | Join pixelma [0] (pixelma@rockbox/staff/pixelma) |
08:00 |
08:02:13 | | Join fragilematter [0] (~fragilema@unaffiliated/fragilematter) |
08:03:12 | | Quit ferros (Ping timeout: 240 seconds) |
08:06:05 | | Join mortalis [0] (~kvirc@213.33.220.118) |
08:27:30 | | Quit [Saint] (Ping timeout: 264 seconds) |
08:30:01 | *** | Saving seen data "./dancer.seen" |
08:35:00 | | Join [Saint] [0] (~saint@rockbox/staff/saint) |
08:43:57 | | Join kuldeepdhaka [0] (~kuldeepdh@unaffiliated/kuldeepdhaka) |
08:48:18 | | Join ii_ [0] (~ii@78.24.28.191) |
09:00 |
09:24:00 | | Join mc2739 [0] (~mc2739@rockbox/developer/mc2739) |
09:30:36 | | Join petur [0] (5bb7304d@rockbox/developer/petur) |
09:31:08 | | Join pamaury [0] (~quassel@rockbox/developer/pamaury) |
10:00 |
10:06:01 | | Join Mongey [0] (~Mongey@79.97.125.239) |
10:11:36 | | Quit pamaury (Ping timeout: 240 seconds) |
10:12:36 | | Quit Mongey (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) |
10:30:05 | *** | Saving seen data "./dancer.seen" |
10:36:22 | | Join Mongey [0] (~Mongey@79.97.125.239) |
10:41:18 | | Quit Mongey (Ping timeout: 264 seconds) |
10:51:55 | | Join pamaury [0] (~quassel@rockbox/developer/pamaury) |
11:00 |
11:10:54 | | Quit ii_ (Remote host closed the connection) |
11:11:21 | | Join ii_ [0] (~ii@31.220.27.198) |
11:16:00 | pamaury | alexbobp: what is motivation for "first keypress turns on backlight only" to ignore the first hold off button ? |
11:16:11 | pamaury | that would mean you would have to press power twice, which is kind of weird |
11:20:00 | copper | maybe trying to avoid accidental power button press |
11:20:56 | | Quit ii_ (Remote host closed the connection) |
11:20:59 | | Join Mongey [0] (~Mongey@80.111.160.236) |
11:21:20 | | Join ii_ [0] (~ii@31.220.27.198) |
11:21:26 | | Join wodz [0] (~wodz@iwl138.internetdsl.tpnet.pl) |
11:21:47 | pamaury | copper: yeah but then how do you prevent it from being press twice ? or three times ? When will you start needing enter your password in morse with the power button to unlock ?! |
11:21:51 | * | pamaury is half-trolling |
11:22:09 | | Quit ii_ (Remote host closed the connection) |
11:22:41 | copper | :) |
11:22:45 | copper | oh oh oh |
11:23:03 | copper | pamaury: please implement pattern drawing on the touch pad for unlocking the Fuze+! |
11:23:06 | copper | :D |
11:24:36 | copper | http://www.iphonefaq.org/images/archives/tweak-patternunlock.jpg |
11:24:57 | alexbobp | pamaury: being able to reliably turn on the screen and operate the device without remembering if I put hold on |
11:25:19 | alexbobp | oh you misunderstand |
11:25:33 | alexbobp | I want the power button to turn off hold |
11:25:53 | copper | uh? |
11:25:56 | alexbobp | but I don't want the track skip button to work with the screen off |
11:25:56 | copper | that's what it does already |
11:26:13 | alexbobp | copper: I mean with the screen off |
11:26:29 | copper | I don't understand |
11:27:08 | alexbobp | there is a setting for ignoring the first keypress when the screen is off |
11:27:17 | copper | you mean you want to disable the touchpad while the display is off and soft hold is off too |
11:27:37 | alexbobp | if it's on, then I have to push power twice if it's asleep and on hold |
11:28:04 | alexbobp | copper: that'd be ideal actually |
11:28:24 | alexbobp | it's not quite what I was suggesting but probably better |
11:28:46 | alexbobp | right now I have to press power twice |
11:29:18 | alexbobp | but if I turn off that setting, I accidentally skip tracks with the screen off a lot :P |
11:30:06 | pamaury | On principle I agree we would need a setting for disable touchpad between: never, on soft hold, on screen off |
11:30:54 | alexbobp | jesus, fuse+ is impossible to use in the dark... |
11:31:26 | alexbobp | wait what'd be the point of soft hold if not to disable touchpad? :P |
11:31:53 | pamaury | alexbobp: it would power the screen on when you touch it (although with no effect) |
11:32:11 | alexbobp | how did this thing get through qa? do they not test things in dark rooms? |
11:32:32 | alexbobp | pamaury: yeah |
11:32:38 | alexbobp | that's what it does now |
11:32:43 | pamaury | with soft hold, you would need to press a physical button to light and then another to unlock, with screen off you just need to press a button |
11:33:10 | pamaury | at the moment, you *really* want to use soft hold, otherwise you get loads of accidental touch |
11:33:19 | alexbobp | yeah |
11:33:25 | alexbobp | true |
11:33:42 | alexbobp | hmm... in my perfect world I'd have screen off on soft hold |
11:33:54 | alexbobp | and screen backlight infinite otherwise |
11:34:02 | alexbobp | and that makes it easy |
11:34:30 | pamaury | you see, the problem is that there are as many settings as people, we cannot support all of them |
11:34:58 | alexbobp | there is already that feature on devices with physical hold switches |
11:35:16 | pamaury | yeah but you cannot compare, it's just two completely different things |
11:35:39 | alexbobp | but personally I have no idea how much coding it takes to enable that |
11:36:22 | alexbobp | but the setting could be in the same menu with the same name at least :P |
11:36:28 | pamaury | probably not a lot, the problem is to find where and how ^^ |
11:37:11 | alexbobp | why can't they just make more fuse2s :/ |
11:41:49 | | Join ikeboy [0] (~ikeboy@ool-435622d3.dyn.optonline.net) |
11:43:14 | alexbobp | pamaury: oh well, it seems like a good workflow to me, would you not want your fuze+ to behave like that? |
11:45:15 | copper | 10:33:42 UTC <alexbobp> hmm... in my perfect world I'd have screen off on soft hold |
11:45:23 | copper | screen turns off after a few seconds |
11:48:14 | | Join kok3 [0] (~kok3@aor239.neoplus.adsl.tpnet.pl) |
11:48:24 | kok3 | why stupid rockbox is made in C instead of C++ |
11:48:31 | kok3 | why their is no C++ and simple Codec class |
11:48:41 | kok3 | that you could derive from to implement codec |
11:48:49 | copper | alexbobp: wait, I don't understand |
11:48:51 | kok3 | Mp3Codec : Codec |
11:48:56 | kok3 | public Codec* |
11:49:12 | copper | alexbobp: seems like "first press enables backlight only" works on the Fuze+ |
11:49:18 | kok3 | it instead uses some badly named variables/functions and shitty 1000 functions |
11:49:18 | copper | I just tried it in the sim |
11:49:40 | kok3 | and there is no documentation to implement anything in rockbox |
11:49:44 | copper | kok3: you're not going to win many people over with that |
11:49:57 | kok3 | copper im just saying truth |
11:50:04 | kok3 | i dont understand why C instead of C++ |
11:50:29 | kok3 | it could be still a bit low level C++ (ex. not using boost etc.) |
11:50:41 | kok3 | but it would improve code redability by 1000 times |
11:51:36 | kok3 | !ops copper will anybody answer me? |
11:51:55 | copper | alexbobp: and when that setting is on, and soft hold is on, you have to press power twice to unlock it |
11:52:32 | | Nick Mongey is now known as Mongey-away (~Mongey@80.111.160.236) |
11:53:24 | copper | kok3: calling people's hard work "stupid" isn't the best way to get an answer |
11:53:30 | kok3 | copper i asked simple question, why C instead of C++, why they dont answer |
11:53:40 | ikeboy | kok3:How about first reimplement the entire rockbox in C++ (including the assembly parts) and benchmark to confirm it doesn't slow down or reduce battery before recommending a change |
11:53:48 | kok3 | copper but it is stupid. it's like sect. you dont provide tutorials or good code, i cant make anything |
11:54:09 | kok3 | ikebody ARE you trying to suggest c++ is slower than c.. you better dont do this.. |
11:54:28 | kok3 | ikeboy reimplement? it should be c++ from start |
11:54:40 | kok3 | it was obvious c++ is best language choice for project like rockbox |
11:54:54 | kok3 | if it was one-man project then maybe C would be equally good |
11:54:54 | copper | Personally, I would have written it all in BASH. |
11:55:07 | ikeboy | So use your time machine to go back to when rockbox was started and suggest the idea then |
11:55:34 | ikeboy | My point is that it can't realistically be switched to C++ at this point |
11:55:35 | kok3 | ikeboy so it seems just rockbox starters made very bad choice and now everybody has to pay for that |
11:55:40 | kok3 | ikeboy i know this |
11:55:48 | kok3 | ikeboy its too late probably |
11:55:55 | ikeboy | You can say that about most open-source projects |
11:56:05 | kok3 | but at least you could make tutorials ex.how to implement codec |
11:56:44 | kok3 | ikeboy yes. because open source are not-commercial, nobody care about future, and that it will take 10 hours to implement thing that could be implemented in 3 hours |
11:56:57 | kok3 | so they make stupid decisions and dont care about them |
11:56:59 | jhMikeS | I think there is but it's out of date. Anyway, just staring at the codecs should tell you how and what basic things are common to them all |
11:57:06 | copper | what codec would you like to implement? |
11:57:21 | | Join ii_ [0] (~ii@78.24.28.186) |
11:57:28 | kok3 | copper midi, better mod codec |
11:57:38 | kok3 | (so 2 codecs) |
11:57:43 | jhMikeS | there isn't alot to the basics of a codec |
11:57:55 | kok3 | actually i could just make midi codec based on midi plugin |
11:57:58 | kok3 | same with mod |
11:59:05 | alexbobp | copper: the setting works fine but put it on hold and let it sleep |
11:59:21 | alexbobp | oh wait you did |
11:59:31 | ikeboy | kok3:You've seen http://www.rockbox.org/wiki/HowToWriteCodecs? |
11:59:34 | alexbobp | yes, having to push power twice is not what I want |
11:59:36 | kok3 | yes ive seen |
12:00 |
12:00:09 | kok3 | im not sure, maybe i seen maybe not |
12:00:21 | copper | alexbobp: I meant, when soft hold is OFF, pressing "play" only turns on the display |
12:00:44 | copper | when soft hold is ON, pressing power once turns on the display, and a second time unlocks the Fuze+ |
12:00:54 | alexbobp | which is annoying |
12:01:16 | jhMikeS | hrm...I guess I did update that :p |
12:01:49 | copper | alexbobp: so you want the power button on soft hold to be immune to the "first button press" setting? |
12:01:56 | alexbobp | yes |
12:01:57 | ikeboy | Can I bump the review for g#758? |
12:01:59 | fs-bluebot | Gerrit review #758 at http://gerrit.rockbox.org/r/758 : Boost CPU before loading operations in textviewer by Avi Eisenberg |
12:02:02 | alexbobp | exactly |
12:02:12 | copper | pamaury: did you get that? ^^ |
12:02:23 | jhMikeS | I should probably update it again, since time-based resume is possible |
12:02:24 | alexbobp | look I'm just making suggestions, I made several suggestions that would improve my workflow, but even if none of them get implemented I still love you all :P |
12:02:38 | alexbobp | <3 rockbox |
12:03:12 | | Quit Mongey-away (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) |
12:03:59 | alexbobp | I think the most ideal fix is if I can set a backlight setting for software hold mode |
12:07:24 | alexbobp | or maybe the ideal fix is gestures that wouldn't happen by accident :P but that's gotta be more code |
12:08:42 | alexbobp | copper thinks I'm nuts D: |
12:08:48 | alexbobp | ok, I'm going to bed |
12:11:13 | | Quit ikeboy (Remote host closed the connection) |
12:14:17 | | Join ikeboy [0] (~ikeboy@ool-435622d3.dyn.optonline.net) |
12:14:37 | | Join kugel [0] (~kugel@91-65-145-11-dynip.superkabel.de) |
12:14:37 | | Quit kugel (Changing host) |
12:14:37 | | Join kugel [0] (~kugel@rockbox/developer/kugel) |
12:15:20 | kugel | jhMikeS: ping |
12:17:54 | | Quit kok3 (K-Lined) |
12:21:03 | wodz | huh, suggesting C++ over C for deeply embedded application is well ... stupid |
12:21:55 | | Join Mongey [0] (~Mongey@80.111.160.236) |
12:22:26 | | Nick Mongey is now known as Mongey-away (~Mongey@80.111.160.236) |
12:22:51 | | Quit Mongey-away (Client Quit) |
12:24:13 | | Join Mongey [0] (~Mongey@80.111.160.236) |
12:25:04 | | Quit ikeboy (Quit: Leaving) |
12:28:21 | jhMikeS | kugel: ? |
12:28:45 | kugel | jhMikeS: about g#692 |
12:28:47 | fs-bluebot | Gerrit review #692 at http://gerrit.rockbox.org/r/692 : thread.c: Replace block_thread/_w_tmo with block_thread_switch/_w_tmo. by Thomas Martitz |
12:28:59 | kugel | I didnt fully understand your last reply |
12:29:00 | jhMikeS | wodz: I'll admit at times I wouldn't mind it for a few things. |
12:29:42 | kugel | wodz: depends, if you restrict to a subset of c++ it can work well |
12:29:49 | wodz | jhMikeS: sure it makes some parts easier but at considerable cost |
12:30:02 | copper | is anyone aware that the table of themes on the theme page doesn't use the entire available width in Firefox? It works in Chromium. |
12:30:09 | *** | Saving seen data "./dancer.seen" |
12:30:20 | wodz | kugel: People that suggest C++ in embedded development doesn't understand the term 'safe subset of c++' |
12:30:25 | copper | http://themes.rockbox.org/index.php?target=ipod6g |
12:31:26 | kugel | wodz: I wouldnt generalize that statement |
12:31:26 | jhMikeS | kugel: You want the blocking abstracted so that it could be implemented in alternative ways. I'm not understanding what prevents that as things are. |
12:31:53 | kugel | jhMikeS: yes, I asked you what alternative ways there are |
12:32:21 | jhMikeS | wodz: I guess stack allocs and in-place new(). Nothing needing malloc is doable here obviously. |
12:32:54 | kugel | grr, I see I missed the new files for g#683, so you can't see how I do it |
12:32:55 | fs-bluebot | Gerrit review #683 at http://gerrit.rockbox.org/r/683 : playbacklib WIP by Thomas Martitz |
12:33:15 | copper | https://outpost.fr/tmp/ZID.png/ vs https://outpost.fr/tmp/5rb.png/ |
12:33:15 | jhMikeS | kugel: I thought you meant suggesting a framework for alternative ways :\ |
12:35:08 | kugel | ahaha, wtf |
12:35:34 | kugel | jhMikeS: actually I accidentally put the new files already in git master: http://git.rockbox.org/?p=rockbox.git;a=tree;f=firmware/kernel/pthread;h=b5f309824b624fe7870a6e06fc69b21626f0f2da;hb=HEAD |
12:36:19 | kugel | there, thread.c:216 shows why I need soem kind block_thread_switch() |
12:38:13 | kugel | because what I work on (playback parts running on pthreads natively, not using our scheduler) blocking and scheduling the currenth thread out has to be atmoic |
12:42:32 | jhMikeS | might be better with a semaphore, otherwise it's racy |
12:42:32 | pixelma | copper: looks like firefox does adhere to the width argument in the html "th" tag and chrome does not |
12:43:29 | kugel | jhMikeS: ??? |
12:43:37 | | Quit ii_ (Ping timeout: 246 seconds) |
12:43:58 | copper | pixelma: ugh |
12:44:14 | copper | is there any reason for fixing the table's width? |
12:44:22 | jhMikeS | if there's no thread waiting for a condition, it doesn't get a signal |
12:44:41 | jhMikeS | A sema on the other hand will remain signaled if the waker gets there first |
12:44:55 | pixelma | no idea, sorry |
12:44:57 | kugel | jhMikeS: what specific part are talking about now? |
12:46:07 | jhMikeS | wakeup_thread...ooooorrrr....it's because cl is always locked? |
12:46:16 | jhMikeS | at least for that call |
12:47:38 | kugel | yes, the cl is locked |
12:48:25 | jhMikeS | I suppose the difference is thread _slots_ have locks in the native scheduler as well as primitives |
12:49:04 | kugel | i used the corelock pattern for thread sync in queue.c because it's already used thoroughly |
12:49:37 | jhMikeS | a sema would make ->runnable redundant and not be racy |
12:50:11 | kugel | anyway, that's not related to the need for block_thread_switch() which you didnt seem to like |
12:50:14 | jhMikeS | In my WIP, the queues are handled in kernel.c |
12:50:37 | jhMikeS | I think you needed access to cl? |
12:50:57 | kugel | uhm, that's not nice. I want to re-use queue.c (just that) for my work |
12:52:13 | jhMikeS | I meant the wait queue, not the event queue |
12:52:40 | jhMikeS | add_to_list_l (the functional equivalent thereof) |
12:52:54 | pamaury | ah, it's a shame kok3, I would have loved to answer him |
12:53:07 | jhMikeS | ummm...yeah, I could post a copy of that stuff even though it's a rough draft atm |
12:54:03 | kugel | jhMikeS: ok, but I need queue.c (the event queue), running on pthreads, and for that I need an atomic way of block the current thread on <something> and switchting to another runnable thread |
12:55:49 | jhMikeS | semaphore :) |
12:55:53 | pamaury | alexbobp: there is a difference between what I want and what I have time to implement and my priorities on those |
12:56:06 | kugel | jhMikeS: you misunderstand |
12:56:56 | jhMikeS | I'm just looking at what you showed. I see no reason two threads can't be running at once, one blocking while another is getting woken |
12:57:16 | kugel | regardless of how the atomic switch looks like, the function performing that switch has to have an equivalent for Rockbox and our scheduler |
12:58:08 | kugel | I'm not asking for how to implement the atomic switch for pthreads :) |
12:58:40 | kugel | I'm asking how to have an atomic switch for our "legacy" scheduler because you don't seem to like what I came up with |
12:59:50 | jhMikeS | only because it's moving more wait queue and cl awareness into thread.c and I was hell bent on moving it away |
13:00 |
13:00:40 | jhMikeS | what is the "legacy" scheduler? |
13:01:58 | kugel | the rockbox scheduler |
13:02:32 | jhMikeS | the only thing atomic natively is the interrupt, not the cores. that's a bit racy and deliberately allowed |
13:02:40 | kugel | can you suggest a way to implement this atomic switch without conflicting with your work? |
13:03:19 | jhMikeS | heh, no. I think my work is a fork and not compatible with the project as a whole, even if some improvments can be shared between |
13:03:30 | kugel | atomic as in "a single function call that does both block the current and schedule the next runnable" |
13:04:48 | jhMikeS | hmmm...that's what it was like many moons ago |
13:05:24 | jhMikeS | so...combine block_threadXXX and switch_thread into one |
13:05:59 | kugel | yes that's exactly what g#692 does |
13:06:00 | fs-bluebot | Gerrit review #692 at http://gerrit.rockbox.org/r/692 : thread.c: Replace block_thread/_w_tmo with block_thread_switch/_w_tmo. by Thomas Martitz |
13:07:25 | jhMikeS | but where is the switch in this pthread implementation? |
13:07:42 | jhMikeS | I see the block, waiting for the condition |
13:08:24 | kugel | http://git.rockbox.org/?p=rockbox.git;a=blob;f=firmware/kernel/pthread/thread.c;h=a80ce876e8ba255bb684adcf6ac25a54e606c184;hb=HEAD#l216 |
13:09:23 | | Join cmhobbs [0] (~cmhobbs@ip98-186-66-92.fv.ks.cox.net) |
13:09:23 | | Quit cmhobbs (Changing host) |
13:09:23 | | Join cmhobbs [0] (~cmhobbs@fsf/member/cmhobbs) |
13:12:02 | jhMikeS | A different mutex each primitive (as corelock)?? |
13:12:33 | | Nick evilnick_ is now known as evilnick (~evilnick@d54C37FA5.access.telenet.be) |
13:12:43 | | Quit evilnick (Changing host) |
13:12:43 | | Join evilnick [0] (~evilnick@rockbox/staff/evilnick) |
13:12:52 | kugel | a corelock is a pthread mutex (and a mutex is also a pthread mutex) |
13:13:38 | kugel | the corelock protects the event queue's internal data from concurrent access in the same way as on COP builds |
13:14:42 | jhMikeS | yeah, I get that, but you're passing differnt one to the condition variable for each queue |
13:15:04 | jhMikeS | I'm not sure how that's gonna work |
13:16:00 | kugel | yes, the the corelock is per-event queue |
13:16:28 | kugel | (only talking about the on-pthreads version) |
13:18:22 | jhMikeS | bear with me. I'm tired and reading unfamiliar stuff. |
13:19:16 | kugel | the same corelock has to be taken before wakeup_thread(), and wakeup_thread() is called only from the event queue, so it's alright |
13:19:53 | jhMikeS | yes, I just got that, so I agree it's technically safe |
13:21:11 | kugel | (there is no wakep_thread from mutexes because native mutexes are used, and there sems are not used at all (compiled out)) |
13:22:48 | jhMikeS | sems are mostly in low-level stuff, tes, and codecs |
13:22:51 | jhMikeS | *yes |
13:25:16 | kugel | for codecs only in multicore builds |
13:26:01 | | Nick Mongey is now known as Mongey-away (~Mongey@80.111.160.236) |
13:26:31 | | Quit Mongey-away (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) |
13:29:00 | jhMikeS | so you're just doing this to support an event queue? |
13:30:30 | | Quit kuldeepdhaka (Ping timeout: 264 seconds) |
13:31:23 | | Join kuldeepdhaka [0] (~kuldeepdh@unaffiliated/kuldeepdhaka) |
13:31:50 | | Quit Zagor (Read error: Operation timed out) |
13:32:44 | | Join Mongey [0] (~Mongey@80.111.160.236) |
13:32:44 | | Quit Mongey (Client Quit) |
13:33:03 | jhMikeS | personally, I'd just reimplement them directly as pthread calls |
13:36:34 | jhMikeS | My feeling is that they'd be simpler that it first appears from the native implementation |
13:39:16 | | Quit cmhobbs (Ping timeout: 246 seconds) |
13:39:37 | kugel | jhMikeS: I considered that first, but it's really complicated |
13:40:28 | kugel | there is no native pthread data structure that allows the operations we do on event queues (e.g. peeking (especially queue_peek_ex()), so most of the logic of queue.c would have to be duplicated |
13:41:57 | kugel | so much would be duplicated that only thread sync would be left, and then we arrive at the same result |
13:43:46 | kugel | plus by using queue.c win32 compatibility comes for free (using pthread-win32); which is not the case for pipes, msg queues and others |
13:46:37 | | Join amayer [0] (~amayer@mail.weberadvertising.com) |
13:48:24 | | Join Zagor [0] (~bjst@80.239.169.194) |
13:48:24 | | Quit Zagor (Changing host) |
13:48:24 | | Join Zagor [242] (~bjst@rockbox/developer/Zagor) |
13:50:26 | | Join ii_ [0] (~ii@78.24.28.186) |
13:56:16 | jhMikeS | I suggest sem_wait/sem_post. If the thread hasn't arrived at sem_wait yet, it will just pass through the unblocked |
13:57:26 | jhMikeS | no need for a combo function |
13:57:51 | kugel | jhMikeS: i still need queue.c for the event queue? |
13:58:19 | jhMikeS | yeah, that's in that case |
13:58:57 | jhMikeS | you can unlock the corelock though, after changing the wait queue then just call sem_wait with nothing locked |
13:59:09 | kugel | i need a combo function so that queue.c can be the same for our scheduler and for pthreads |
13:59:42 | jhMikeS | it would be |
14:00 |
14:00:00 | | Quit Zagor (Ping timeout: 240 seconds) |
14:00:31 | | Join Zagor [242] (~bjst@rockbox/developer/Zagor) |
14:02:10 | kugel | you mean void switch_thread() { sem_wait(&sem); } ? |
14:02:11 | jhMikeS | I guess switch_thread would actually do the block |
14:02:17 | jhMikeS | :) |
14:02:58 | kugel | no |
14:03:36 | kugel | it's undesirable that sems remember the count (such that subsequent sem_wait don't block) |
14:04:05 | kugel | because event queues don't call switch_thread() if there are aready messages |
14:04:07 | jhMikeS | why? |
14:04:34 | kugel | so a queue_post() would cause a switch_thread() to go without blocking when it should block |
14:05:07 | jhMikeS | queue_post doesn't do one |
14:05:33 | kugel | it calls wakeup_thread unconditionally |
14:05:34 | jhMikeS | if there are no threads in the wait queue, it shouldn't post anything |
14:06:07 | jhMikeS | the native one does nothing if no threads are found at the queue head |
14:06:24 | kugel | the "contract" for wakeup_thread is to wakeup the thread inly of its blocked, and do nothing (no side effects) if it isnt |
14:08:06 | kugel | a wakeup_thread (doing sem_post) does have a side effect, causing subsequent switch_threads (doing sem_wait) to do nothing |
14:08:23 | kugel | I already considered this and found the semaphore model doesnt fit |
14:09:10 | jhMikeS | line 1371, thread.c |
14:09:20 | jhMikeS | no thread found, no action |
14:09:42 | kugel | exactly |
14:09:47 | jhMikeS | basically, it shouldn't post anything in that case, just return with no action |
14:09:48 | kugel | this is what I said |
14:10:03 | jhMikeS | no extra counts |
14:10:20 | kugel | sem_post does never do nothing |
14:10:42 | jhMikeS | just don't call it if the head is NULL |
14:11:04 | | Quit Zagor (Ping timeout: 255 seconds) |
14:11:22 | jhMikeS | actually, you're doing that already |
14:11:56 | kugel | hmm |
14:12:29 | jhMikeS | the head won't change with the corelock held, which is the idea |
14:13:07 | | Join Zagor [0] (~bjst@80.239.169.203) |
14:13:07 | | Quit Zagor (Changing host) |
14:13:07 | | Join Zagor [242] (~bjst@rockbox/developer/Zagor) |
14:13:26 | jhMikeS | a bit more troubling is the timeout though |
14:13:47 | kugel | there's sem_timedwait() |
14:14:22 | kugel | hm, IIRC there was another problem with semaphores (i really considered them already before I implemented the cond stuff) |
14:14:38 | jhMikeS | what was that? |
14:15:25 | kugel | don't remember |
14:15:58 | kugel | i think I'll try your suggestion |
14:16:33 | jhMikeS | t->obj_cl should be saving the lock pointer, so no need to pass it |
14:17:27 | jhMikeS | should/could if "IF_COP" is not a null macro there |
14:18:18 | kugel | well, a impl with sem wouldnt have to deal with the corelock at all |
14:18:42 | jhMikeS | the queue internals themselves need mutual exclusion still |
14:18:52 | kugel | yes sure |
14:19:18 | kugel | but not switch_thread() itself |
14:19:26 | kugel | so no need to pass the corelock anyway |
14:19:28 | jhMikeS | indeed not |
14:20:05 | jhMikeS | explicit wakeup and timed-out wait queue removal do have to hold it |
14:21:06 | kugel | isnt it racy if I check the head after the corelock is released? |
14:21:41 | kugel | (I think I wanted the corelock-release and thread-block to be atomic) |
14:22:00 | kugel | (which only works with conditions) |
14:22:13 | jhMikeS | it is, thread could time out before waking thread checks the head |
14:22:19 | jhMikeS | *for instance |
14:22:24 | | Quit mortalis (Ping timeout: 240 seconds) |
14:23:06 | kugel | so a switch_thread() that checks the head before calling sem_wait() is racy |
14:23:19 | kugel | argh |
14:23:29 | jhMikeS | yes |
14:23:42 | kugel | switch_thread() doesnt need to check it, only wakeup_thread() and the corelock is held during that |
14:23:48 | jhMikeS | it's not done natively that way |
14:23:54 | jhMikeS | right |
14:24:09 | jhMikeS | and when removing during a timeout |
14:25:22 | jhMikeS | which is what is done currently: lock object, wake thread implicitly, unlock it |
14:26:23 | jhMikeS | cats are being violent; I'd better feed them :) |
14:30:12 | *** | Saving seen data "./dancer.seen" |
14:32:14 | kugel | jhMikeS: how do you mean "and when removing during a timeout"? |
14:34:05 | jhMikeS | in the err == ETIMEDOUT case, have to lock the corelock before it pulls itself from the wait queue |
14:35:40 | kugel | you mean before calling remove_from_list_l(t->bqp, t)? |
14:35:48 | jhMikeS | yes |
14:37:38 | kugel | ok, but also unlock again because queue.c will re-aquire the lock before checking the event count |
14:38:19 | | Quit amayer (Write error: Broken pipe) |
14:38:40 | kugel | add_to_list_l needs to have the lock too, no? |
14:39:04 | jhMikeS | yes |
14:39:19 | kugel | uhm |
14:39:49 | kugel | but switch_thread is called without the lock |
14:39:51 | jhMikeS | but that already has it on entry as it is |
14:41:21 | jhMikeS | and somehow you need to indicate the block type to switch_thread (by setting something in the thread block?) |
14:42:07 | jhMikeS | yes is is called that way, it's fine at that point |
14:42:43 | kugel | but I'd need to lock again for add_to_list_l |
14:43:30 | jhMikeS | why? |
14:43:42 | kugel | it must be called with the lock taken? |
14:43:45 | jhMikeS | yes |
14:44:04 | jhMikeS | do that list stuff in block_thread |
14:44:22 | kugel | oh, you suggest I should also implement block_thread |
14:44:28 | | Quit [Saint] (Ping timeout: 258 seconds) |
14:44:30 | kugel | now I understasnd |
14:44:42 | jhMikeS | and *w_tmo of course |
14:45:07 | ii_ | does rockbox have software balance or only supports it if hardware has balance / dual volume? |
14:45:46 | jhMikeS | ii_: it has it. hifiman ports use it |
14:46:34 | kugel | jhMikeS: alright, thanks for the help, I will try that |
14:46:59 | jhMikeS | kugel: I guess block_thread just has to set timeout to 0 or something to tell switch_thread which sem_* to call |
14:47:04 | jhMikeS | np |
14:47:05 | kugel | perhaps I'll hit the road block that I envisioned for semaphores if I don't remember again |
14:48:10 | kugel | might be that it was just that, switch_thread() not knowing about the timeout |
14:48:56 | | Join amayer [0] (~amayer@mail.weberadvertising.com) |
14:49:35 | kugel | but i should be able to stash the timeout value (if any) in some TLS area |
14:50:17 | | Quit whiskers75 (Ping timeout: 240 seconds) |
14:50:30 | jhMikeS | struct thread_entry has it already |
14:57:19 | | Join whiskers75 [0] (~whiskers7@unaffiliated/whiskers75) |
14:58:03 | ii_ | how do I at least find the code for software balance? I can see it set into sound_prescaler.balance in firmware/sound.c, but can't find it used anywhere |
14:58:06 | jhMikeS | kugel: the current code does end up grabbing the lock thricely to get through queue_wait_w_tmo. |
14:59:13 | jhMikeS | ii_: It's actually implemented in firmware/pcm_sw_volume.c |
14:59:57 | ii_ | aha! great, now I see |
15:00 |
15:01:45 | jhMikeS | in the hifimans, the dummy codec volume function actually calls the software volume. the rest of rockbox doesn't know the difference |
15:04:17 | | Join ikeboy [0] (~ikeboy@ool-435622d3.dyn.optonline.net) |
15:10:24 | | Quit kugel (Ping timeout: 240 seconds) |
15:12:06 | | Quit wodz (Quit: Leaving) |
15:13:12 | | Quit jhMikeS (Ping timeout: 240 seconds) |
15:13:23 | | Quit ii_ (Remote host closed the connection) |
15:14:07 | | Join ii_ [0] (~ii@78.24.28.186) |
15:18:24 | | Quit ii_ (Ping timeout: 240 seconds) |
15:39:15 | | Join ii_ [0] (~ii@78.24.28.191) |
15:52:10 | | Join mc2739_ [0] (~mc2739@rockbox/developer/mc2739) |
15:52:12 | | Quit mc2739 (Disconnected by services) |
15:52:15 | | Nick mc2739_ is now known as mc2739 (~mc2739@rockbox/developer/mc2739) |
16:00 |
16:02:13 | | Quit Strife89 (Excess Flood) |
16:03:50 | | Quit Zagor (Excess Flood) |
16:04:11 | | Join Zagor [242] (~bjst@rockbox/developer/Zagor) |
16:04:15 | | Quit Zagor (Client Quit) |
16:04:23 | | Join Zagor [0] (~bjst@80.239.169.203) |
16:04:23 | | Quit Zagor (Changing host) |
16:04:23 | | Join Zagor [242] (~bjst@rockbox/developer/Zagor) |
16:30:15 | *** | Saving seen data "./dancer.seen" |
16:34:05 | | Quit the-kyle (Remote host closed the connection) |
16:45:42 | | Join the-kyle [0] (~kyle@kyle.tk) |
16:45:43 | | Quit ii_ (Remote host closed the connection) |
16:46:27 | | Join ii_ [0] (~ii@78.24.28.191) |
16:49:01 | | Join AlexP [0] (~alex@rockbox/staff/AlexP) |
16:50:58 | | Quit ii_ (Ping timeout: 269 seconds) |
16:53:27 | | Join ii_ [0] (~ii@78.24.28.191) |
16:59:46 | | Quit fragilematter (Quit: Leaving.) |
17:00 |
17:00:45 | | Quit ii_ (Remote host closed the connection) |
17:01:19 | | Join ii_ [0] (~ii@78.24.28.191) |
17:05:40 | | Quit ii_ (Ping timeout: 255 seconds) |
17:06:33 | | Quit ikeboy (Quit: Leaving) |
17:07:42 | | Join ii_ [0] (~ii@78.24.28.191) |
17:15:42 | | Nick DormantBrain is now known as SuperBrainAK (~andy@2001:470:8:a61::5f92:59a1) |
17:25:28 | | Join ferros [0] (~frrs@89-76-97-49.dynamic.chello.pl) |
17:30:00 | | Quit Zarggg (Ping timeout: 240 seconds) |
17:35:23 | | Join ii__ [0] (~ii@78.24.28.186) |
17:35:29 | | Quit ii_ (Read error: Connection reset by peer) |
17:40:40 | | Join Zarggg [0] (~zarggg@24.229.140.62.res-cmts.sm.ptd.net) |
17:41:58 | | Join saratoga [0] (123e11e0@gateway/web/freenode/ip.18.62.17.224) |
17:42:09 | saratoga | what kind of monster would write a codec in c++ |
17:44:33 | copper | lol |
17:46:23 | | Quit ii__ (Ping timeout: 240 seconds) |
17:47:19 | pamaury | I think this guy didn't really know what he was talking about |
17:48:30 | | Quit Zagor (Quit: Clint excited) |
17:51:52 | | Quit petur (Ping timeout: 245 seconds) |
17:54:18 | | Nick KotH is now known as the_guy_with_the (~attila@lou-outside.kinali.ch) |
17:54:30 | | Nick the_guy_with_the is now known as chocolate_JIHAD (~attila@lou-outside.kinali.ch) |
18:00 |
18:01:35 | | Join ii_ [0] (~ii@78.24.28.191) |
18:02:38 | | Join thomasjfox [0] (~thomasjfo@rockbox/developer/thomasjfox) |
18:07:05 | | Join mtguru [0] (~mtguru@91.213.93.175) |
18:14:31 | | Quit Slasheri (Ping timeout: 264 seconds) |
18:14:37 | | Quit draft (Ping timeout: 240 seconds) |
18:14:40 | | Join Slasheri [0] (miipekk@rockbox/developer/Slasheri) |
18:15:36 | | Join draft [0] (draft@irc.disharmony.fi) |
18:19:16 | | Nick chocolate_JIHAD is now known as KotH (~attila@lou-outside.kinali.ch) |
18:20:27 | | Join bertrik [0] (~quassel@ip117-49-211-87.adsl2.static.versatel.nl) |
18:20:27 | | Quit bertrik (Changing host) |
18:20:27 | | Join bertrik [0] (~quassel@rockbox/developer/bertrik) |
18:29:59 | | Quit thomasjfox (Ping timeout: 240 seconds) |
18:30:09 | | Join thomasjfox [0] (~thomasjfo@rockbox/developer/thomasjfox) |
18:30:17 | *** | Saving seen data "./dancer.seen" |
18:33:25 | | Quit ii_ (Remote host closed the connection) |
18:34:12 | | Join ii_ [0] (~ii@78.24.28.191) |
18:37:56 | | Quit ii_ (Read error: Connection reset by peer) |
18:38:28 | | Join ii_ [0] (~ii@78.24.28.186) |
18:40:01 | | Quit mtguru (K-Lined) |
18:40:03 | ii_ | on ibasso dx50 I have an access to single hardware volume control (no L/R), which I want to combine with software balance control, implemented in pcm_sw_volume.c |
18:41:17 | saratoga | we should probably have a software balance DSP |
18:41:17 | ii_ | would it be a good idea to implement hardware volume control in pcm_set_prescaler() or I understand that wrong? |
18:41:40 | saratoga | it would be nice for things like player with line out where you can't always use the DAC gain (IIRC the X5 was like this) |
18:43:11 | | Quit pamaury (Ping timeout: 240 seconds) |
18:43:17 | | Join cmhobbs [0] (~cmhobbs@wsip-70-166-234-2.ks.ks.cox.net) |
18:43:17 | | Quit cmhobbs (Changing host) |
18:43:17 | | Join cmhobbs [0] (~cmhobbs@fsf/member/cmhobbs) |
18:49:35 | | Quit cmhobbs (Ping timeout: 240 seconds) |
18:55:36 | | Quit Zarggg (Excess Flood) |
18:55:40 | | Join Zarggg_ [0] (~zarggg@24.229.140.62.res-cmts.sm.ptd.net) |
19:00 |
19:03:40 | | Quit bluebrother (Disconnected by services) |
19:03:45 | | Join bluebrother [0] (~dom@rockbox/developer/bluebrother) |
19:05:54 | | Quit fs-bluebot (Ping timeout: 264 seconds) |
19:06:24 | | Join fs-bluebot [0] (~fs-bluebo@g225252121.adsl.alicedsl.de) |
19:09:36 | | Quit ii_ (Ping timeout: 240 seconds) |
19:12:25 | | Join ii_ [0] (~ii@78.24.28.191) |
19:17:21 | | Join pamaury [0] (~quassel@rockbox/developer/pamaury) |
19:27:26 | ii_ | Looks like I've found the way to combine hw volume with sw balance. In audiohw_set_volume(int vol_l, int vol_r): max(vol_l,vol_r) goes to pcm_set_mixer_volume (hardware) and {vol_l+max, vol_r+max} go to pcm_set_master_volume (pcm_sw_volume.c) |
19:32:18 | | Join tertu [0] (~quassel@143.44.65.14) |
19:57:37 | | Join lebellium [0] (~chatzilla@89-93-178-161.hfc.dyn.abo.bbox.fr) |
20:00 |
20:15:09 | | Join n1s [0] (~n1s@nl118-168-30.student.uu.se) |
20:15:09 | | Quit n1s (Changing host) |
20:15:09 | | Join n1s [0] (~n1s@rockbox/developer/n1s) |
20:26:23 | | Quit [7] (Ping timeout: 240 seconds) |
20:27:16 | | Join TheSeven [0] (~quassel@rockbox/developer/TheSeven) |
20:30:05 | | Quit kuldeepdhaka (Quit: Leaving) |
20:30:20 | *** | Saving seen data "./dancer.seen" |
20:32:08 | | Quit thomasjfox (Quit: Konversation terminated!) |
20:34:03 | | Quit AlexP (Remote host closed the connection) |
20:35:44 | | Join AlexP [0] (~alex@rockbox/staff/AlexP) |
20:48:46 | | Quit AlexP (Remote host closed the connection) |
20:49:55 | | Quit lebellium (Quit: ChatZilla 0.9.90.1 [Firefox 28.0/20140306171728]) |
20:50:33 | | Join lebellium [0] (~chatzilla@89-93-178-161.hfc.dyn.abo.bbox.fr) |
20:50:53 | | Join AlexP [0] (~alex@rockbox/staff/AlexP) |
20:52:50 | | Nick lebellium is now known as lebellium_ (~chatzilla@89-93-178-161.hfc.dyn.abo.bbox.fr) |
20:53:58 | | Nick bertrik is now known as lebellium (~quassel@rockbox/developer/bertrik) |
20:57:01 | | Nick lebellium is now known as bertrik (~quassel@rockbox/developer/bertrik) |
20:58:15 | | Join lebellium_gs2 [0] (~lebellium@89-93-178-161.hfc.dyn.abo.bbox.fr) |
20:58:40 | | Nick lebellium_gs2 is now known as lebellium (~lebellium@89-93-178-161.hfc.dyn.abo.bbox.fr) |
21:00 |
21:04:30 | | Join |akaWolf| [0] (~akaWolf@188.134.9.161) |
21:04:43 | | Quit lebellium (Disconnected by services) |
21:05:06 | | Join lebellium_gs2 [0] (~lebellium@89-93-178-161.hfc.dyn.abo.bbox.fr) |
21:05:19 | | Nick lebellium_ is now known as lebellium (~chatzilla@89-93-178-161.hfc.dyn.abo.bbox.fr) |
21:06:04 | | Quit lebellium_gs2 (Client Quit) |
21:06:26 | | Quit |akaWolf| (Read error: Connection reset by peer) |
21:07:32 | | Join |akaWolf| [0] (~akaWolf@188.134.9.161) |
21:10:46 | | Nick lebellium is now known as lebellium_ (~chatzilla@89-93-178-161.hfc.dyn.abo.bbox.fr) |
21:15:25 | | Nick lebellium_ is now known as lebellium (~chatzilla@89-93-178-161.hfc.dyn.abo.bbox.fr) |
21:30:40 | | Quit bertrik (Quit: No Ping reply in 180 seconds.) |
21:31:02 | | Join bertrik [0] (~quassel@ip117-49-211-87.adsl2.static.versatel.nl) |
21:31:02 | | Quit bertrik (Changing host) |
21:31:02 | | Join bertrik [0] (~quassel@rockbox/developer/bertrik) |
21:46:14 | | Join einhirn [0] (~Miranda@bsod.rz.tu-clausthal.de) |
21:53:40 | | Quit tertu (Ping timeout: 255 seconds) |
21:53:47 | | Join tertu [0] (~quassel@143.44.65.14) |
22:00 |
22:09:50 | | Quit amiconn (Remote host closed the connection) |
22:09:50 | | Quit pixelma (Remote host closed the connection) |
22:10:14 | | Join amiconn [0] (amiconn@rockbox/developer/amiconn) |
22:10:14 | | Join pixelma [0] (quassel@rockbox/staff/pixelma) |
22:21:47 | | Join ii__ [0] (~ii@78.24.28.191) |
22:21:47 | | Quit ii_ (Read error: Connection reset by peer) |
22:25:39 | | Quit us`0gb (Ping timeout: 246 seconds) |
22:30:21 | *** | Saving seen data "./dancer.seen" |
22:31:33 | | Quit amayer (Quit: Leaving) |
22:46:06 | | Quit ii__ (Remote host closed the connection) |
22:46:53 | | Join ii_ [0] (~ii@78.24.28.186) |
22:47:44 | | Quit n1s (Quit: Ex-Chat) |
22:51:11 | | Quit ii_ (Ping timeout: 240 seconds) |
22:51:50 | | Join ii_ [0] (~ii@78.24.28.191) |
22:53:04 | | Join kugel [0] (~kugel@91-65-145-11-dynip.superkabel.de) |
22:53:04 | | Quit kugel (Changing host) |
22:53:04 | | Join kugel [0] (~kugel@rockbox/developer/kugel) |
23:00 |
23:02:01 | | Quit |akaWolf| (Quit: my exit) |
23:03:03 | | Join us`0gb [0] (~0gb.us@c-50-137-60-25.hsd1.or.comcast.net) |
23:08:08 | | Quit ender` (Quit: Measuring programming progress by lines of code is like measuring aircraft building progress by weight. -- Bill Gates) |
23:17:00 | | Join Strife89 [0] (~Strife89@adsl-98-80-237-172.mcn.bellsouth.net) |
23:17:57 | | Quit pamaury (Ping timeout: 240 seconds) |
23:23:10 | | Join jhMikeS [0] (~jethead71@rockbox/developer/jhMikeS) |
23:35:56 | | Quit ferros (Quit: Leaving) |
23:52:55 | | Quit einhirn (Ping timeout: 255 seconds) |
23:53:49 | | Quit ii_ (Ping timeout: 255 seconds) |