Re: Windows ME error already resolved
hjP I am studying Freeamp and I have some questions. hjP If I find a bug report that is already resolved, how can I find the part of Freeamp source related to the bug report? hjP I tested Freeamp 2.0.8 on Windows ME before. hjP Just after exiting from freeamp, fast execution icons and Explorer icons had problem(disappeared). hjP But with Freeamp 2.1.0, I don't have this error on Windows ME. hjP Who fixed this problem? what is the bug report number? And in which module can I find the fixed part of Freeamp source? Well... it's never easy, even if you're using most advanced configuration management system. 1) if coding guidelines says that every change in file must be tagged and described somewhere in file's header, problem would be solved - somebody would just search source files for certain keywords until they find the line. 2) we have got CVS with some short descriptions of checkins. if you search checkin messages, you might hit the one that says it fixed ME bug. 3) we got bugzilla. it is possible to search in bugzila. you might find the bug (if it was reported) and read it's history. if it was fixed by attaching a patch to it - you just examine the patch. yeah, too bad coupling between CVS and Bugzilla is very loose, at best you might get Bugzillas bug id in CVS checkin message and that's it.. but this has some advantages, yes. -- Valters WaTT Vingolds ___ [EMAIL PROTECTED] http://www.freeamp.org/mailman/listinfo/freeamp-dev
Re: Enhanced command line user interface.
Hello Dave, Sunday, June 03, 2001, 2:16:16 AM, you wrote: DM I've made several enhancements to FreeAmp's command line user interface DM (freeampcmd.ui), and think that all its users would benefit from them. How do I DM go about having these changes incorporated into a formal FreeAmp release? a good approach is as follows: 1) create nice diff file 2) create a readme file describing what the changes are and how you do it 3) go to freeamp's bugzilla and open a bug 4) attach the diff and readme to bug 5) announce the bug in this list, post the readme 6) person responsible for component most likely will show up and accept the patch. 7) if not, keep writing to list, we will find someone with CVS write access at some point ;) -- Valters WaTT Vingolds ___ [EMAIL PROTECTED] http://www.freeamp.org/mailman/listinfo/freeamp-dev
Re: unable to compile
That's musicbrains, I think. You have to update the MusicBrains client, then recompile it, and only then proceed with FreeAmp. On Tuesday 01 May 2001 21:40, you wrote: Freeamp crashes when I read the ID3 info. I'm assuming some file's ID3 tag is corrupted. So, I'm trying to build a debug version of Freeamp, but I keep getting lots of erros. Here's a sample: base/aps/apsinterface.cpp:245: `MBQ_LookupMetadata' undeclared I think I have an out-of-date library somewhere. Any idea? This happens w/CVS as well as the latest tarball. Also, are there any design docs available? I'd like to add a view to the explorer of all files sorted by Genre. Thanks. Nope, haven't seen those. :) I'd like to add a view where some songs are not grouped by Artist name but by Album. Because if album happens to be some compilation, we get a load of artists with one or maybe two songs under them. And no convenient way to actually listen to the compilation album... -- Valters WaTT Vingolds ___ [EMAIL PROTECTED] http://www.freeamp.org/mailman/listinfo/freeamp-dev
Re: Track numbers for MP3s
On Wednesday 14 March 2001 10:11, Colin Marquardt wrote: [SKIPd] What would I use, however, to *create* ID3v2 tags? id3lib/id3v2 from sourceforge? Does it really work? A few months ago, I heard that id3lib wasn't really up to speed yet, and it seems there hasn't been a new release since then... Cheers, Colin Well, to create ID3v2 tags you use a dedicated tagger. I last tried Helium tagger - worked more or less fine. id3v2 lib should be fine, also. so... I think it would be really fun if we hacked Musicbrowser to support editing v2 tags. It's tag editor right now is quite powerful. (powerful means quite good mass-editing capabilities) -- "Freedom for those who can buy it!" /Atari Teenage Riot/ Valters "WaTT" Vingolds ___ [EMAIL PROTECTED] http://www.freeamp.org/mailman/listinfo/freeamp-dev
Re: kde2 integration .ui
Isaac Richards wrote: On 23-Feb-2001 Steve Kemp wrote: Is there still plans to have a Winamp-like visualization plugin/ I remember a long time ago somebody presented code that would load simple WinAmp plugins - is that dead, or have there been updates that I've missed? Eventually.. we decided not to graft it on to the existing audio pipeline, and instead wait until it can be done properly when stuff's rewritten for 3.0. yeah and I think, that was me who created the initial support code. never managed to stop from crashing. I think I was doing something wrong with the shared memory. I should ask the guy who wrote MUX plugin for Winamp (plugin that loads multiple visualization plugins in itself) how he does it. -- Valters "WaTT" Vingolds ... self improvement is masturbation. self destruction might be the answer. ___ [EMAIL PROTECTED] http://www.freeamp.org/mailman/listinfo/freeamp-dev
Re: musicbrowser improvement (help request)
Edric Edric wrote: I did something similar. I did some work just for myself that extended the artist/album/track paradigm to let users specify all the orders they want (album/track, or artist/year/track, or I even extended it to composer/artist/album/track (absolutely necessary if you do classical music)). I'm travelling right now and don't have access to my source. I extended the in-memory data structures representing the music database, and I extended the win32 UI to handle it, I didn't work on the Unix flavors at all. If you'd like, and if you can wait for a coupla weeks, I'll send you my code changes. I really would be interested! (So, where did you keep 'composer' bit?) Of course Unix musicbrowser is quite different from Win32 part... I be digging. -- Valters "WaTT" Vingolds ... self improvement is masturbation. self destruction might be the answer. ___ [EMAIL PROTECTED] http://www.freeamp.org/mailman/listinfo/freeamp-dev
Re: musicbrowser improvement (help request)
I don't care - I probably will develop it even if it's only for me. I am quite tired of those hundreds of one-song artists that show up in musicbrowser tree. If you have some 10-20 techno/house collection CD's you might know what I am talking about. That's some major "one hit group" subculture. I'd like all those artists to disappear and instead see those 10-20 CD titles. So, any pointer in which source file I should start digging? :-) Isaac Richards wrote: Hm. Basically, don't plan on anything like this changing/being accepted until after the 2.1 release.. And actually, changes like this might not really be worth the effort, unless we decide to do a 2.2 release instead of just starting on 3.0 as I'm hoping.. Isaac On 21-Feb-2001 Valters Vingolds wrote: hi. I have been thinking about one particular feature that I would like to see in musicbrowser. It's about the "My Music" tree view of the MP3. The tree is constructed of "Artist/Album/Song name" hierarchy. What I would like to do, I'd like to create second pass for to filter the mp3 db to determine if the some artists have only one song on "Album" and the "Album" actually has a lot of "Artists" on it. Basically, I would like to have Various Artists albums to have 1) their name to be first in hierarchy - replacing "Artist" 2) probably no artists should be listed below that - proceed to "Song name" listing immediately. -- Valters "WaTT" Vingolds ... self improvement is masturbation. self destruction might be the answer. ___ [EMAIL PROTECTED] http://www.freeamp.org/mailman/listinfo/freeamp-dev
Re: kde2 integration .ui
Isaac Richards wrote: It'd be nice to integrate this into the distribution, but I won't do that unless the build process is integrated properly -- ie, using configure, etc. nah, the plugin currently does not work that well. if I manage to get it working properly, I might push for including the code in freeamp releases, it's not in that state right now. Maybe it would be OK to check code in ZIP file into CVS anyway? Somebody could pick up where I left, if anything. It shouldn't be hard at all, just check out how the existing plugins decide to get built or not in configure.in.. Actually I do think that unified make is not way to go. As you mention going 3.0, the major wish would be to get plugins / the various parts of freeamp work - AND BUILD - as independently as possible. So it would enable various "integration" parts that only build under exotic configurations to be developed more or less independently and then plugged in. -- Valters "WaTT" Vingolds ... self improvement is masturbation. self destruction might be the answer. ___ [EMAIL PROTECTED] http://www.freeamp.org/mailman/listinfo/freeamp-dev
musicbrowser improvement (help request)
hi. I have been thinking about one particular feature that I would like to see in musicbrowser. It's about the "My Music" tree view of the MP3. The tree is constructed of "Artist/Album/Song name" hierarchy. What I would like to do, I'd like to create second pass for to filter the mp3 db to determine if the some artists have only one song on "Album" and the "Album" actually has a lot of "Artists" on it. Basically, I would like to have Various Artists albums to have 1) their name to be first in hierarchy - replacing "Artist" 2) probably no artists should be listed below that - proceed to "Song name" listing immediately. I have converted to Linux, by the way. I took a brief look into GTK Musicbrowser and decided to post a query here for time being ;) another thing that I might be working on: I got me very nice 45Gb harddrive, so far some 10gb is filled with MP3. This means I might be looking into how FreeAmp scales when fed huge playlists, etc (does this qualify as huge?:). You guys probably have access to way more mp3... Anyway, nice project would be to insure that FreeAmp would not hiccup even on terabyte collections ;) -- Valters "WaTT" Vingolds ... self improvement is masturbation. self destruction might be the answer. ___ [EMAIL PROTECTED] http://www.freeamp.org/mailman/listinfo/freeamp-dev
kde2 integration .ui
Hi.. Actually, I have created some pretty rudimentary KDE2 tray .ui that sits in tray and allows user to Play/Pause and Next,Prev the songs. It's rea nice if the player is running in different desktop - the tray is common to all desktops. The ui itself runs as "secondaryUI". Of course there are some issues, but currently I can't really fix them. I have created a readme file for the UI - it's attached. If you read it, you might become interested... I attached the archive with source files and patch for Make process (needs some guidance) in Bugzilla under bug 1250. http://www.freeamp.org/bugzilla/show_bug.cgi?id=1250 Hmmm I had to put it under Linux FreeAmp UI component... -- Valters "WaTT" Vingolds ... self improvement is masturbation. self destruction might be the answer. kdetray: a UI plugin for KDE2 implementing interface on tray. Why it's useful? ~~~ 1) Icon on tray is easily accessible from all desktops 2) Fast'n'minimalistic 3) It's a step in direction of integration into kde How to compile ~~ Patch Makefile.in and Makefile-plugins.in and Makefile.header.in with kdemake.patch. (I hope I did not forget something... write me email if it won't work) Re-generate makefiles. Before compiling freeamp you need to modify Makefile.header KDEINCL= line and Makefile-plugins KDELIBS= and MOC= lines and write the correct paths there. (i assumed KDE2 is in /opt/kde2 and QT is in /usr/lib/qt2 - that's where Suse7 puts them) Known bugs ~~ 1) Problem deinitializing. I just can't figure out how to quit it once it has started. See line 148 of kdetray.cpp (as of 25 Jan 2001) - there's some #ifdefed code. The proper shutdown just won't work. kdetray.ui keeps crashing with SIGSEGV (at least that's what KDE2 is thinking and dr.konqi says... oh and lately i have messed it up so much dr konqi won't even run). Probably KDE calls some routine in kdetray.ui after the object has already been deleted. (maybe I am not disconnecting some signals? hmm) 2) The tray icon I made is unspeakably ugly. If someone just could convert windows .ico to .xpm and replace the current xpm. 3) ToolTip does not show up when song is first changed in 'main ui' and you hover the mouse over tray icon. In order to for tip to start showing one has to fiddle with tray icon a little - left click it or right click it, then tooltip starts appearing. No idea why such behaviour. Maybe toplevel.cpp should set some 'focus' in code or something. 4) debug prints everywhere. oh, but that's not a bug... Wishlist 1) Make architecture is not right. This here UI takes compile requirements of Freeamp to extreme - for it to compile you need to have QT2 and KDE2 (and their brother) installed. Basically, it makes no sense to compile it as part of regular FreeAmp. It should come with it's own makefile and ./configure should detect if KDE2 is installed and then opt compile if this UI in. Probably similar setup should be used for building CorbaUI and other 'integration' ui's. 2) Tray applet. Make tray applet which could show cool visualizations. Kudos ~ based on code of cmdline.ui (ok, which .ui was -not- based off that? ;) based on code of tee cooker toy of kde2. Valters "WaTT" Vingolds email: [EMAIL PROTECTED]
Re[2]: Request for testing.
Hello Chris, Thursday, September 28, 2000, 02:30:27, you wrote: CK large catalogs of music. The tree helps, but when some audiofile with that's audiophile, OK ?!?! :) we are talking audiophiles here... CK alot of money rips his 1000 cds, he needs a search prompt as well. So CK it is worth trying to do it Right (tm) the first time, and so I am CK glad there is discussion about how to do it. on the historical note - i have followed freeamp progress from '99 spring, i think... when it was first mentioned on slashdot.org as GPL mp3 player. I do admire your courage, don't be put off by my skeptical attitude. but still, patch is only good when it is significant improvement and does not cause much trouble. it is funny how after some project has been frozen for, say, 10-20 months, most desired improvement/feature is actually five-ten lines of code... ;) -- Valters "WaTT" Vingolds ___ [EMAIL PROTECTED] http://www.freeamp.org/mailman/listinfo/freeamp-dev
Re: Request for testing.
Hello Chris, Wednesday, September 27, 2000, 17:47:04, you wrote: CK My changes to Metadata to use the HashStore for string storage CK are far enough along to start thinking about getting someone else CK to help test it. (sorry, haven't looked at it or compiled freeamp lately somehow - it's too much of moving target, i guess...;) Tell you what - I hear a lot from you how your patch segfaults and segfaults. I don't really hear how it saves megabytes and megabytes of memory. Do you really think introducing the unstability that will have to be debugged and cleaned up for months is absolutely beneficial? -- Valters "WaTT" Vingolds ___ [EMAIL PROTECTED] http://www.freeamp.org/mailman/listinfo/freeamp-dev
diet-freeamp target
I think it would be very nice if someone created a freeamp target that has all the extra dependencies removed (as,no httpinput, no plugins, no cd input, no musicbrowser - only the mp3 player itself). So, a new developer would be able to compile it a lot faster and maybe not get the perception that freeamp is so huge that he/she will never grok it. -- Valters "WaTT" Vingolds ... in order to succeed you have to learn to think of yourself as of a product. ___ [EMAIL PROTECTED] http://www.freeamp.org/mailman/listinfo/freeamp-dev
Re: Queueing Behavior
Does drag-n-drop of file in musicbrowser from my music tree view to playlist view work yet? Should be equivalent of doubleclicking on song. Somehow I find it very intuitive to use drag-n-drop, but I was a bit annoyed when it didn't work. Now I have a question for you guys... since we are adding in streams support does it make sense to queue a stream? should the default behavior ffor a stream ALWAYS be play immediately? Well, no... if I want it queued, I mean it. I personally want player to play when I press Play, not before. I don't play streams that much, though. But I vote for streams to be considered ordinary files. -- Valters "WaTT" Vingolds ... in order to succeed you have to learn to think of yourself as of a product. ___ [EMAIL PROTECTED] http://www.freeamp.org/mailman/listinfo/freeamp-dev
RE: errors like this:
The whole thing goes like this: Set Freeamp as active project when you first compile. Then, if you feel like hacking the freeamp ui (the user interface) you set freeampui as active project and freeamp.exe as executable to run. If you feel like hacking other part of freeamp, set that other part as active. To freeamp team - why leave "MakeTheme" as active when checking into CVS? MakeTheme has zlib dependency because it compresses theme when making it. Ofcourse zlib should be added as dependency to it (if visual studio does not object). Note that you will need about 150 MB of free space on disk to compile. Be sure that you don't run out of free space. At 11:53 5/28/00 -0500, you wrote: trying to compile the freeamp project I get this error: (of course I dont have a correct configuration of my workspace, can you tell me how can I do a correct cnfiguration, about Tools, Project, Build, etc) please. Victor, Try right clicking on the FreeAmp project and setting it to the active project and then to a Build All. I'm not sure right off if the MakeTheme project has a depenency on zlib (don't have the code open right now), but i'm very sure FreeAmp does, and then you can set MakeTheme to be the active project and compile it. mike ___ [EMAIL PROTECTED] http://www.freeamp.org/mailman/listinfo/freeamp-dev -- Valters "WaTT" Vingolds ... in order to succeed you have to learn to think of yourself as of a product. ___ [EMAIL PROTECTED] http://www.freeamp.org/mailman/listinfo/freeamp-dev
Re: New developer - CD Player or ripper
Have you looked at CDex effort? (The best CD ripper there is, and open source!) It's home page is www.cdex.n3.net At 15:15 4/22/00 -0700, you wrote: I am interested in helping out with the efforts to create a CD Player and a CD Ripper. I would like to know who I should talk to. I would like to be pointed to the correct parts of the source tree which I should examine. Also, any design docs or requirements (even rudimentary) that have been created would be very helpful. As I am as yet an unproven member of the team, please feel free to simply tell me what to do if you feel that is easier. = Derek Bennett mailto:[EMAIL PROTECTED] http://TheBennetts.org/derek -- Valters "WaTT" Vingolds ... in order to succeed you have to learn to think of yourself as of a product. ___ [EMAIL PROTECTED] http://www.freeamp.org/mailman/listinfo/freeamp-dev
bug: tooltip support not working after changing theme
problem: maybe you have noticed that tooltip support goes dead after you switch themes. (after you change to another theme, tooltips won't display). resolution: that happens because for some reason in Win32Window::CreateTooltips() is this code: if (m_bMindMeldInProgress) return; well... CreateTooltips() gets called on initialization of window AND from VulcanMindMeld() - exactly while MindMeld is in progress. That is, when changing themes CreateTooltips does not get executed, but it should. I could not figure out why this "if" is there - probably added by mistake? When removed everything works quite fine. Sorry for not using bugzilla. Keep up the good work! I'll be back a bit later, maybe bearing some code :) Actually I want to implement "knob" control (so one could convert some of those immensely cool kjofol skins to freeamp). Maybe you can explain me about the state table (TransitionsInfo) - I can't seem to figure it out. -- Valters "WaTT" Vingolds ... in order to succeed you have to learn to think of yourself as of a product. ___ [EMAIL PROTECTED] http://www.freeamp.org/mailman/listinfo/freeamp-dev
those coca cola themes
hmm, it's nice to see how freeamp gets accepted more and more! however, what do you say about that coca cola theme 'licence agreement'? 1) they are referring to .fat as "mp3 skin" ... huh?! 2) forbiding to "reverse assemble, reverse compile and otherwise attempt to create source code" - that includes unpacking, i guess. this is SICK!!! 3) forbidding to "translate, duplicate, reproduce or copy" - kind of stupid. well, i would understand if they copyrighted the artwork and left the distribution alone... i would even understand if they forbid redistribution because they want everyone to download from their site! but n... this is kind of sad. maybe they should fobid using the theme under linux, for completeness sake. flamebait -- Valters "WaTT" Vingolds ... in order to succeed you have to learn to think of yourself as of a product. ___ [EMAIL PROTECTED] http://www.freeamp.org/mailman/listinfo/freeamp-dev
Re: BRANDING (logo button)
At 11:19 10/31/99 -0800, Mark B. Elrod wrote: not a bad idea... what we might want to do is provie a URL button type that will take you to a site. that way there could be multiple links. one to FreeAmp , one to a special site for instance. hey, don't get so greedy - there is button for freeamp.org in 'About' already. :) elrod Valters Vingolds wrote: while I think LOGO button is great idea, in my opinion it is wrong to make it to go only to BRANDING_URL site. I think skin's creator should be able to set which url his LOGO button goes - well, it's quite intuitive that it should point to his (skin's creators) webpage - for user to check for skin updates, etc. for example - emusic bands could create their own freeamp skins that advertise their web presence :) -- Valters "WaTT" Vingolds : Well, now we have to learn to think of ourselves as of a product. -- Valters "WaTT" Vingolds ... in order to succeed you have to learn to think of yourself as of a product.
Re: volume gets lost
did you? volume is still getting decreased in beta2. try clicking 'next song' repeatedly for some time. (didn't have guts to update from CVS today, so I did not look into source). other: strange thing, in order to get 'directory' format theme visible in Options dialog one needs to have directory to end with extension '.FAT'. working as designed? At 15:09 10/7/99 -0700, you wrote: I just fixed all that crap -- it will be in the next commit. Possibly later today, maybe tomorrow. --ruaok Freezerburn! All else is only icing. -- Soul Coughing Robert Kaye -- [EMAIL PROTECTED] http://moon.eorbit.net/~robert - Original Message - From: Valters Vingolds [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Thursday, October 07, 1999 3:02 PM Subject: volume gets lost But then there is another problem: void SoundCardPMO::SetVolume(int32 volume) { // When we begin playing the volume does not get set properly. // In order to work around that, we'll save the last volume // settting and then set the volume on the stream after we open // the stream in init. waveOutSetVolume( (HWAVEOUT)WAVE_MAPPER, MAKELPARAM( 0x*volume/100, 0x*volume/100)); m_iLastVolume = volume; } int32 SoundCardPMO::GetVolume() { int32 volume = 0; waveOutGetVolume((HWAVEOUT)WAVE_MAPPER, (DWORD*)volume); (!)volume = (int32)(100 * ((float)LOWORD(volume)/(float)0x)); return volume; } These volume (slowly) deteriorates when calling these two. I think it is because marked (!) line makes it lose precision and decrease. I can't think of a way how to stop that, currently - maybe you can do it better? -- Valters "WaTT" Vingolds -- Valters "WaTT" Vingolds
theme.ui glitch: play button turns to 'pause' inappropriately
When 'Play' is pressed, it turns to pause. If song does not play (file not found or pmo/pmi error) the button should not become 'pause' really. It should remain as 'play'. Perhaps good solution would be not to do as: [from HandleControlMessage()] if (oControlName == string("Play") eMesg == CM_Pressed) { int iState = 0; // get control state m_pWindow-ControlIntValue(oControlName, false, iState); if (iState == 0) // PLAY { // set button state to PAUSE iState = 1; m_pWindow-ControlIntValue(oControlName, true, iState); m_pContext-target-AcceptEvent(new Event(CMD_Play)); m_bPlayShown = false; } else // PAUSE { // set button state to PLAY iState = 0; m_pWindow-ControlIntValue(oControlName, true, iState); m_pContext-target-AcceptEvent(new Event(CMD_Pause)); m_bPlayShown = true; } return kError_NoErr; } but to remove the above button manipulations and leave button state transitions to code that already is under AcceptEvent(): case INFO_Playing: { int iState = 1; m_pWindow-ControlIntValue(string("Play"), true, iState); m_bPlayShown = true; break; } case INFO_Paused: case INFO_Stopped: { int iState = 0; m_pWindow-ControlIntValue(string("Play"), true, iState); m_bPlayShown = true; break; } case INFO_DoneOutputting: other: [from HandeControlMessage()] if (oControlName == string("Stop") eMesg == CM_Pressed) { int iState = 0; m_pWindow-ControlIntValue(oControlName, true, iState); m_pContext-target-AcceptEvent(new Event(CMD_Stop)); m_bPlayShown = true; return kError_NoErr; } what does code for Stop button do? My guess is disable it, but how do I know? I could not find where these transitons/states are defined/documented... aarrgh. -- Valters "WaTT" Vingolds
theme.ui: patch to accept drag-dropped mp3 files
I do Win98, as usually. Here's the patch, I find it very useful for now, that theme for now lacks other ways of specifying which mp3 to play (except commandline args - but those do not even support wildcards...) I diff'd with -c so one can apply it by hand, not trusting patch.exe to do job right (and then I don't know if it even would - I have never used PATCH - except for patching linux kernel, but scripts do that... hmm. The patch is attached. Probably one will need to update filenames there (or everything) if one wants this file work with PATCH.EXE. Teach me diff, anyone...? Anyway, this is one messy way to do it. I specify pContext member in Window class, then in FreeAmpTheme constructor I initialize it to context after (main) Theme window has been created. Works for me, but that's real wacky. One should have a better way of reaching FAContext from Win32Window but I can't think of any. Now, window procedure in Win32Window looks for WM_DROPFILE requests and calls DropFiles() then. The DropFiles() proceeds to load files into PLM. (strange, plm-AddItem(filename) does not work good, but plm-AddItem(filename,0) works fine. Haven't bothered to look that up yet. Actually the code for handling WM_DROPFILE is taken from FreeAmpUI. So there. diff -c -p -r -b -B -t ./include/Window.h C:\PROG\freeamp\freex\freeamp-dev\ui\theme\/include/Window.h *** ./include/Window.h Thu Oct 07 20:33:51 1999 --- C:\PROG\freeamp\freex\freeamp-dev\ui\theme\/include/Window.hFri Oct 08 23:38:07 1999 *** using namespace std; *** 43,48 --- 43,49 #include "thread.h" #include "semaphore.h" #include "mutex.h" + #include "facontext.h" typedef mapstring, Control * ControlMap; typedef mapstring, Control *::iterator ControlMapIterator; *** class Window *** 109,114 --- 110,117 virtual Error GetMousePos(Pos oMousePos) = 0; virtual Error SetWindowPosition(Rect oWindowRect) = 0; virtual Error GetWindowPosition(Rect oWindowRect) = 0; + + FAContext*m_pContext; protected: diff -c -p -r -b -B -t ./src/FreeAmpTheme.cpp C:\PROG\freeamp\freex\freeamp-dev\ui\theme\/src/FreeAmpTheme.cpp *** ./src/FreeAmpTheme.cpp Thu Oct 07 20:33:57 1999 --- C:\PROG\freeamp\freex\freeamp-dev\ui\theme\/src/FreeAmpTheme.cppSat Oct 09 01:30:27 1999 *** FreeAmpTheme::FreeAmpTheme(FAContext * c *** 82,87 --- 82,88 LoadFreeAmpTheme(); SelectWindow(m_oCurrentWindow); +m_pWindow-m_pContext=context; } FreeAmpTheme::~FreeAmpTheme() diff -c -p -r -b -B -t ./src/Window.cpp C:\PROG\freeamp\freex\freeamp-dev\ui\theme\/src/Window.cpp *** ./src/Window.cppThu Oct 07 20:34:11 1999 --- C:\PROG\freeamp\freex\freeamp-dev\ui\theme\/src/Window.cpp Fri Oct 08 23:42:07 1999 *** Window::Window(Theme *pTheme, string oN *** 41,46 --- 41,48 m_pCanvas = NULL; m_pMouseInControl = NULL; m_pCaptureControl = NULL; + + m_pContext = NULL; } Window::~Window(void) diff -c -p -r -b -B -t ./win32/include/Win32Window.h C:\PROG\freeamp\freex\freeamp-dev\ui\theme\/win32/include/Win32Window.h *** ./win32/include/Win32Window.h Thu Oct 07 20:34:43 1999 --- C:\PROG\freeamp\freex\freeamp-dev\ui\theme\/win32/include/Win32Window.h Fri Oct 08 23:26:09 1999 *** class Win32Window : public Window *** 61,66 --- 61,67 virtual HWND GetWindowHandle(void); void SaveWindowPos(Pos oPos); + void DropFiles(HDROP dropHandle); protected: diff -c -p -r -b -B -t ./win32/prj/theme.dsp C:\PROG\freeamp\freex\freeamp-dev\ui\theme\/win32/prj/theme.dsp diff -c -p -r -b -B -t ./win32/src/Win32Window.cpp C:\PROG\freeamp\freex\freeamp-dev\ui\theme\/win32/src/Win32Window.cpp *** ./win32/src/Win32Window.cpp Thu Oct 07 20:36:09 1999 --- C:\PROG\freeamp\freex\freeamp-dev\ui\theme\/win32/src/Win32Window.cpp Sat Oct 09 01:11:23 1999 *** *** 22,31 --- 22,35 */ #include stdio.h + #include sys/types.h + #include sys/stat.h #include "Theme.h" #include "Win32Window.h" #include "Win32Canvas.h" #include "debug.h" + #include "playlist.h" + #include "errors.h" #define DB Debug_v("%s:%d\n", __FILE__, __LINE__); *** static LRESULT WINAPI MainWndProc(HWND h *** 81,86 --- 85,94 SetTimer(hwnd, 0, 250, NULL); + // We want people to be able to drop files on the player + DragAcceptFiles(hwnd, TRUE); + + break; } *** static LRESULT WINAPI MainWndProc(HWND h *** 192,197 --- 200,212 break; } + case WM_DROPFILES: + if(ui-m_pContext) // only if context data are valid + ui-DropFiles((HDROP) wParam); + break; + + + default:
Re: spectrum analyser
Rainplay has it. Oh, but rainplay is kinda undersupported and obsolete... but still, look how it does that. You'll need to dig around quite a bit to understand how it works, but that's about the price you pay. At 16:06 10/8/99 -0300, you wrote: hi all, does freeamp support graphical spectrum analyser, VU-meter, or someting like that? if so, how can i implement it in my UI plugin? thanks, -- Rodolfo Borges [[EMAIL PROTECTED]] -- Valters "WaTT" Vingolds
Re: UI not showing up under 95/98 fixed!
Yeah, right on! It just looks so much better as non-rectangular piece... At 17:54 10/5/99 -0700, you wrote: Ok, I finally fixed the UI not showing bug under 95/98. It took me about 10 hours of installing windows and then 3 hours of actual debugging to find a ONE CHARACTER BUG. Grrr. NT liked it just fine. Sigh. WACKY. Ok, Valters you can keep playing now... I just added the seek-bar. Tell me - are vertical sliders supported yet? (gdr:) I think I'd like use one for volume changing - but not in the base window, I don't want to clutter that minimalistic look. --ruaok Freezerburn! All else is only icing. -- Soul Coughing Robert Kaye -- [EMAIL PROTECTED] http://moon.eorbit.net/~robert -- Valters "WaTT" Vingolds
theme.ui architecture
Robert... I was toying with UI other day, wanted to implement drag'n'drop functionality. I quickly cut'n'pasted code from freeampUI to Theme's Win32Window.h/cpp, so the window started to accept WM_DROPFILES. But then I even quicker got frustrated to death, could not figure out how to get the filenames to PLM. Spent time looking at class hierarchy and could not see a way (well, I'm not speaking inherited virtual functions and other wacky C++ encapsulation/data hiding stuff very fluently). Can you think of something? Else, I think theme.ui is too damn complex. I think I'll want to draw a hierarchy diagram. -- Valters "WaTT" Vingolds
volume gets lost
Well, it really looks like volume is always reset to zero! (When starting to play,changing song, etc). I do win98, as usually... I offer this here patch for io/soundcard/win32/soundcardpmo.cpp == cut == 163a164,165 if(!m_iLastVolume) m_iLastVolume=GetVolume(); 196,198c198 waveOutSetVolume(m_hwo, MAKELPARAM( 0x*m_iLastVolume/100, 0x*m_iLastVolume/100)); --- SetVolume(m_iLastVolume); == cut == This seems to fix the symptoms (well, I'm not entirely sure if I'm doing right thing, but this seems to do the trick...) Please, verify. But then there is another problem: void SoundCardPMO::SetVolume(int32 volume) { // When we begin playing the volume does not get set properly. // In order to work around that, we'll save the last volume // settting and then set the volume on the stream after we open // the stream in init. waveOutSetVolume( (HWAVEOUT)WAVE_MAPPER, MAKELPARAM( 0x*volume/100, 0x*volume/100)); m_iLastVolume = volume; } int32 SoundCardPMO::GetVolume() { int32 volume = 0; waveOutGetVolume((HWAVEOUT)WAVE_MAPPER, (DWORD*)volume); (!)volume = (int32)(100 * ((float)LOWORD(volume)/(float)0x)); return volume; } These volume (slowly) deteriorates when calling these two. I think it is because marked (!) line makes it lose precision and decrease. I can't think of a way how to stop that, currently - maybe you can do it better? -- Valters "WaTT" Vingolds
Re: Themes: features request
some comments At 16:32 9/21/99 -0700, Robert Kaye wrote: 3. textcontrol should have means of specifying font used That's not very easy to do. Consider that themes are cross platform -- how do you specify the fonts for all platforms? What if the font is not available on that machine? well, then use the default font. shouldn't really break things. I'd be glad if you just added the property of 'font' to textcontrol definition for now... implementation left to future, and besides, it probably is not hard to implement on Win32 only... I could do it. 9. should be able to supply tooltips for buttons (well, anything). I'm not planning on doing that initially. The planned freeamp skin will display some text explaining the function of a button in a status field in the player when the mouse is moved over that button. Once things stablize a bit more, feel free to implement the tooltips. ok, then, I'll be happy if you just add the property of 'tooltip string' to buttoncontrol definition... 11. should be able to specify multiple 'quit' buttons (other buttons too) (now that's flexibility ;) Eeek. is that a yes? :) currently, if one specifies multiple buttons with same name, only last of them gets used (others get thrown away) - probably exactly this will change when you fix the 'all controls must be present in theme.xml' limitation. other: I was thinking... if one makes button that should toggle 'windowshade mode' - how it would be implemented in the XML? Probably something like this: ButtonControl Name="ThemeChange" !-- to windowshade mode -- Position Rect="150, 7, 158, 15" ControlBitmap Rect="0, 0, 32, 8" Name="Buttons"/ ChangeTheme File="shade.xml" /ButtonControl if one clicks it ui transforms to one specified in shade.xml... preferably really fast, as if the shade.xml is pre-loaded and it's window already created. --ruaok Freezerburn! All else is only icing. -- Soul Coughing Robert Kaye -- [EMAIL PROTECTED] http://moon.eorbit.net/~robert -- Valters "WaTT" Vingolds
Re: gcc Themes
It wouldn't help you anyway - some places are Win32 specific (marked as notes 'to be crossplatform') so no fair running it under *nix. besides, bitmaps that got downloaded in CVS (ui/themes/default) are somewhat corrupted - won't load. anyone with similar results? also, GetErrorString() usually returns NULL. there should probably be another funtion, to get string for kError ret values to display in case no recent oLastError is defined, because GetErrorString usualy gets called when some ret value is !=NoErr. nevertheless... Themes look to be real cool one (i hope we get them to be flexible enough...). I'we been playing around with RainplayUI lately ('cause I don't exactly dig the FreeampUI and I lve Rainplay' with LiquifiedVisions skin), but Freeamp1.5 somehow breaks the .UI (it traps in MFC.DLL while doing LoadModule) so I call it quits (the code is quite messy, too) unless Bill Yuan comes around and fixes that... btw, while I'm at it, here's the patch to fix RainplayUI from trapping when loading the visions skin (it does not have spectrum analyser area, and that breaks the ui) - for visualview\visualview.cpp 103,104c103,114 waveview = new CWaveformView(m_pWnd, fps, scopemode, _x,_y,_width,_height, bkgBmp); specview = new CSpectrumView(m_pWnd, fps, analyzermode, _x,_y,_width,_height, bkgBmp); --- if(_width _height) { waveview = new CWaveformView(m_pWnd, fps, scopemode, _x,_y,_width,_height, bkgBmp); specview = new CSpectrumView(m_pWnd, fps, analyzermode, _x,_y,_width,_height, bkgBmp); } else { waveview = NULL; specview = NULL; } At 15:28 9/17/99 -0700, you wrote: gcc 2.95 doesn't like Theme.cpp: ui/theme/src/Theme.cpp: In method `enum Error Theme::BeginElement(string , mapbasic_stringchar,string_char_traitschar,__default_alloc_templatefals e,0 ,basic_stringchar,string_char_traitschar,__default_alloc_templatefalse, 0 ,lessbasic_stringchar,string_char_traitschar,__default_alloc_templatef alse,0 ,allocatorbasic_stringchar,string_char_traitschar,__default_alloc_templ atefalse,0)': ui/theme/src/Theme.cpp:150: cannot allocate an object of type `GTKWindow' ui/theme/src/Theme.cpp:150: since the following virtual functions are abstract: ui/theme/include/Window.h:89: enum Error Window::Run(Pos ) ui/theme/include/Window.h:90: enum Error Window::Close() ui/theme/include/Window.h:102: enum Error Window::SetWindowPosition(Rect ) ui/theme/include/Window.h:103: enum Error Window::GetWindowPosition(Rect ) ui/theme/src/Theme.cpp:196: warning: unused variable `struct Rect oRect' make[1]: *** [ui/theme/src/Theme.o] Error 1 (nice method line, eh?) -- Valters "WaTT" Vingolds