apps-gnustep
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: MusicBox-0.2.9


From: Yen-Ju Chen
Subject: Re: MusicBox-0.2.9
Date: Wed, 09 Oct 2002 11:16:11 -0400

 Yes. service is easy.
 But you have to launch MusicBox first
 in order to have service (I may be wrong).
 And Encod will depend on MusicBox for cddb support.
 In this case, you need to install cdparanoia, libvorbis for Encod,
 and SDL/SDL_sound for MusicBox.
 That's redundant for general user.
 And one cddb id may return multiple exact matches for level 4 or up.
 User should be able to choose the entry they like.
 So the flowchart will be:
 Encod: send cddb server and path of cdrom => MusicBox
 MusicBox: ask freedb, send the multiple matches => Encod
 Encod: let user pick up their choice => MusicBox
 MusicBox: ask freedb for this entry, get the information => Encod

 This interaction may not be suitable for service.
 So still, I prefer a shared library then service in this case
 because you have full control on what you want.
 But I think it's not hard to support service in MusicBox.
 I can try to do that.

 Yen-Ju

From: "Peron, Stéphane" <address@hidden>
To: address@hidden
Subject: RE : MusicBox-0.2.9
Date: Wed, 9 Oct 2002 16:28:26 +0200


Wouldn't be a service better than a bundle in a such case ?
Imagine that you create the service named "GSCddb" .
You send to this service :
        - The path of the cdrom
        - The cddb server adress

And you get in return from the pasteboard all the information providen by a
cddb server.

So, we only save the cddb server name in each application settings and thats
all ...

What do you think about ?

-----Message d'origine-----
De : Yen-Ju Chen [mailto:address@hidden
Envoyé : mercredi 9 octobre 2002 15:53
À : address@hidden
Objet : Re: MusicBox-0.2.9



  Yes, I would like to do that very much.

  There is a preference bundle in musicbox/MusicBox/PrefModule/FreeDB,
  which let the user set up the freedb site they want to use.
  The interface of this preference bundle is the same as GNUMail,
  and as far as I know, GSburn use the same interface for preference.
  The only problem I can see is that all the settings in bundle
  will be save in the application's domain.
  Therefore, even we use the same bundle,
  the saved setting will be in different domain.
  If we use the service, everytime GSburn and Encod
  want to use the freedb, the MusicBox will be launched first,
  which might not be good because MusicBox is not a small application,
  or GSburn and Encod will depend on MusicBox for freedb support.
  So my suggestion is put this preference into Preference.app
  as the global setting for all the GNUstep application.
  But I don't know whether freedb should be in Preference.app.
  And even the freedb preference is in Preference.app,
  we still need a place for freedb classes.

  I have also a volume control (mixer), which can be shared by
  all the sound applications to control the sound volume.
  But again, I don't know it should be an independent application offering
service,
  or a preference bundle in Preference.app ?
  What does the volume control do in *step ?

The fundamental thing is that all these stuff are in a ShengGuang library,
  which is independent from MusicBox user interface.
  I don't know whether you would like to use the same library,
  or would like to use a shared bundle which I can create.
  But as I said above, bundles can only save setting under application's
domain.
  Therefore, even we use the same bundle,
  MusicBox can't read the setting of Encod or GSburn. (I may be wrong).

  The ShengGuang library also use bundle to access external libraries.
  Therefore, even I use SDL/SDL_sound as external libraries,
  it is not hard for you to use your favor tool/libraries,
  as long as your bundle conform the protocol.
  Actually I would like to write a bundle
which use cdda2wav or cdparanoia (I will try it later) instead SDL for CD
control,
  if you are interested in using ShengGuang library.

  To make a summary:
  1. All the basic freedb and CD related stuff are in ShengGuang library,
     which use bundle to access external libraries.
  2. We have to decide whether we would like to use service, bundle,
     or library to shared these function ?
  3. For the preference (freedb and volume control),
     where would you like to put it ?
     Globally in Preference.app or in each application ?

  The final thing is that I would like to offer a high-level method
  in freedb support.
  Right now, instead of give it the cddb id,
  you can simply give it the information of CD.
  It will calculate the cddb id itself locally or through freedb site.
  The information of CD is in CDTrack classes of ShengGuang library.
  It is designed for SDL, but I think not too far from other libraries
  and I can change that to meet your need.
  It needs the length, offset, and frames of each track for now
  to calculate the cddb id.
  The returned information from freedb is in SongInfo classes,
  which use NSDictionary internally.
  So it can be changed easily for you.

  My personal idea is that we can have a multimedia library/framework for
GNUstep.
  ShengGuang library can be a start, or we can design a new one.
  All the MusicBox, Encod and GSburn are based on this multimedia
library/framework.
  Due to the choice of external tool/libraries,
  this library/framework should be like gnustep-back
  so that you can decide which external libraries you want to use.

  Yen-Ju


_________________________________________________________________
Send and receive Hotmail on your mobile device: http://mobile.msn.com





reply via email to

[Prev in Thread] Current Thread [Next in Thread]