By Popular Demand . the JUCE thread
- 72 réponses
- 7 participants
- 1 644 vues
- 3 followers
piaz
Bienvenue à tous ;)
Et pour les ceusses qui ne savent pas ce qu'est JUCE ... http://www.rawmaterialsoftware.com/juce/
Piaz
miles1981
Faire des delete à tout va ne va faire qu'une seule chose : planter ton programme si tu delete qqch qui n'existe pas.
Audio Toolkit: http://www.audio-tk.com/
miles1981
Ah oui, sans rien faire, juste en changeant les tabs, ça plante à la sortie.
Audio Toolkit: http://www.audio-tk.com/
Wolfen
Développeur de Musical Entropy | Nouveau plug-in freeware, The Great Escape | Soundcloud
miles1981
A moins que tu m'expliques vite fait comment tu fais pour les tabs, parce que j'arrive pas à ne pas faire planter le truc...
Ah oui, plus tu charges l'interface graphique, plus tu as de puissance CPU consommée, surtout quand tu fais ça pas trop proprement !
Audio Toolkit: http://www.audio-tk.com/
Wolfen
En fait je crois que t'as le même problème que moi avec les tabs (donc tu t'es lancé
Si ton problème c'est pas ça, je te filerai une partie de mon code
Développeur de Musical Entropy | Nouveau plug-in freeware, The Great Escape | Soundcloud
miles1981
En fait, le pb que j'ai, c'est à l'initialisation du TabbedComponent, si je lui ajoutes un tab basique - il est vrai que je fais l'inclusion dans le dialogwindow du tabbed directement à sa déclaration, mais ça devrait marcher pourtant. -
Je testerai demain.
T'es au courant que ton code est sous GPL, au fait ?
Audio Toolkit: http://www.audio-tk.com/
Wolfen
Citation : T'es au courant que ton code est sous GPL, au fait ?
Oui plus ou moins, étant donné que je dois acheter une license de Juce pour pouvoir en faire ce que je veux... Mais en même temps, quand ça sera fini, moi je veux juste mettre mon soft en freeware, je veux pas lâcher mon code source
Développeur de Musical Entropy | Nouveau plug-in freeware, The Great Escape | Soundcloud
miles1981
Je ne vois pas où est le problème du source. Je suis en train de créer un spectrogramme depuis des mois, mais ça ne me dérange pas que les gens aient le code source qui va avec. De même pour mon futur plug-in qui interfacera les plug-ins de Winamp ou mon programme permettant d'enregistrer audio et vidéo en même temps et de générer un flux vidéo. Je pourrai même faire payer ces plug-ins tout en respectant la GPL.
Et d'après les termes de la GPL, n'importe qui peut te demander le source de la version que tu as mise en téléchargement dans ce topic... Tu peux aussi faire payer le plug-in, mais si un acheteur veut voir le code source, tu dois le lui donner... Le code source peut aussi être vendu, mais à un prix inférieur ou égal à celui du binaire - sauf si le gars a déjà le binaire, naturellement -.
J'ai regardé ce que je fait, et je ne comprend pas ce qui ce passe :
- je crée un DialogWindow - d'ailleurs, il n'y a pas l'air d'exister une fenêtre qui peut être maximisée ??? -
- je crée un TabbedComponent hérité - si je prend la version de base, il me sort qu'il manque une fonction qui est en virtual
- je crée un Tabbed machinchoseBasicTruc, et dès que je l'ajoute au TabbedComponent - avec un addTab -, ça plante - j'ai débuggé le code, ça plante sur un dynamic_cast vers le component parent... -
J'ai dû zapper un truc...
Audio Toolkit: http://www.audio-tk.com/
Wolfen
Citation : //==============================================================================
// Classe des onglets
//==============================================================================
class TabbedComponentWindow : public TabbedComponent
{
public:
MainPanel* mainPanelTab ;
SettingsPanel* settingsPanelTab;
BlocPanel* blocPanelTab;
SkinPanel* skinPanelTab;
PatternsPanel* patternsPanelTab;
TabbedComponentWindow()
:TabbedComponent(String::empty)
{
SettingsFiles::loadSettings();
// Ajout des onglets
TabbedComponentBasicTab *t;
t = new TabbedComponentBasicTab(Lang::msg(language, 8));
t->setSize(100,t->getHeight());
addTab (0, t);
t = new TabbedComponentBasicTab(Lang::msg(language, 9));
t->setSize(100,t->getHeight());
addTab (1, t);
t = new TabbedComponentBasicTab(Lang::msg(language, 10));
t->setSize(100,t->getHeight());
addTab (2, t);
t = new TabbedComponentBasicTab(Lang::msg(language, 11));
t->setSize(100,t->getHeight());
addTab (3, t);
t = new TabbedComponentBasicTab(Lang::msg(language, 12));
t->setSize(100,t->getHeight());
addTab (4, t);
//setColours (Colours::blanchedalmond, Colours::black,
// Colours::grey, Colours::grey, Colours::blanchedalmond);
setColours (Colours::transparentWhite, Colours::black,
Colours::grey, Colours::grey, Colours::transparentWhite);
setVisible(true);
setTabOrientation (TabbedComponent::TabsAtTop, 15, 5, 5 );
setCurrentlySelectedTab(0);
// Initialisation des panels
mainPanelTab = new MainPanel();
settingsPanelTab = new SettingsPanel();
blocPanelTab = new BlocPanel();
skinPanelTab = new SkinPanel();
patternsPanelTab = new PatternsPanel();
setContentComponent(mainPanelTab);
}
~TabbedComponentWindow()
{
delete mainPanelTab;
delete settingsPanelTab;
delete patternsPanelTab;
delete blocPanelTab;
delete skinPanelTab;
}
void tabWasClicked (int newSelectedIndex,
bool clickedTabWasAlreadySelected, const ModifierKeys ¤tModifiers)
{
if (newSelectedIndex == 0)
setContentComponent(mainPanelTab);
if (newSelectedIndex == 1)
{ setContentComponent(settingsPanelTab);
if ( ! settingsPanelTab->isInit)
settingsPanelTab->startTimer(100);
}
if (newSelectedIndex == 2)
setContentComponent(patternsPanelTab);
if (newSelectedIndex == 3)
setContentComponent(blocPanelTab);
if (newSelectedIndex == 4)
{ setContentComponent(skinPanelTab);
skinPanelTab->comboAnim->setSelectedId (colourAlpha);
skinPanelTab->comboSelection->setSelectedId (colourSel);
}
}
};
//==============================================================================
// Classe de la fenêtre principale
//==============================================================================
ApplicationMainWindow::ApplicationMainWindow()
:DialogWindow ("Groove Generator for Tracktion", Colours::white, false)
{
setVisible (true);
setResizeable (false);
language = 0;
setContentComponent (new TabbedComponentWindow() , false);
}
ApplicationMainWindow::~ApplicationMainWindow()
{
JUCEApplication::quit();
}
void ApplicationMainWindow::paint (Graphics& g)
{
DialogWindow::paint(g);
}
Ben après pour le partage de la source, c'est juste une question de principe, j'aurai l'impression qu'on ne respecte pas mon travail si on peut y mettre les doigts ou qu'on pourrait le pirater, même si j'en rajoute un peu, sachant que de toutes façons je mettrai mon soft en freeware quand il sera fini...
J'arrive pas à accepter qu'on puisse me le demander obligatoirement... C'est quand même un truc sur lequel j'aurai passé du temps...Développeur de Musical Entropy | Nouveau plug-in freeware, The Great Escape | Soundcloud
miles1981
Citation : Ben après pour le partage de la source, c'est juste une question de principe, j'aurai l'impression qu'on ne respecte pas mon travail si on peut y mettre les doigts ou qu'on pourrait le pirater, même si j'en rajoute un peu, sachant que de toutes façons je mettrai mon soft en freeware quand il sera fini... J'arrive pas à accepter qu'on puisse me le demander obligatoirement... C'est quand même un truc sur lequel j'aurai passé du temps...
C'est la même chose pour ceux qui ont fait la librairie que tu utilises...
Mais il ne faut pas voir la GPL comme une cession de tes droits. J'ai écrit du code GPL, mais je n'ai jamais eu de problème par rapport aux gens. Certains vont vouloir en abuser, mais ils sont rares.
Bon, n'empêche que je ne comprend pas pourquoi ça ne marche pas... Je soupçonne de plus en plus un problème de compilo
Audio Toolkit: http://www.audio-tk.com/
miles1981
Audio Toolkit: http://www.audio-tk.com/
Wolfen
Citation : très très mal documentée, d'ailleurs...
Ca c'est clair
Citation : je ne veut pas compiler JUCE en entier...
Ca c'est faisable, en compilant juste les librairies qui t'intéressent, en bidouillant le juce.h
Citation : Mais il ne faut pas voir la GPL comme une cession de tes droits. J'ai écrit du code GPL, mais je n'ai jamais eu de problème par rapport aux gens. Certains vont vouloir en abuser, mais ils sont rares.
Ca je sais de toutes façons, donc je me prends pas la tête avec tout ça
Citation : Bon, n'empêche que je ne comprend pas pourquoi ça ne marche pas... Je soupçonne de plus en plus un problème de compilo
Ca c'est que je me disais à chaque fois que j'avais un gros problème... environ 400 fois depuis que je me suis lancé
Développeur de Musical Entropy | Nouveau plug-in freeware, The Great Escape | Soundcloud
miles1981
Audio Toolkit: http://www.audio-tk.com/
Wolfen
Développeur de Musical Entropy | Nouveau plug-in freeware, The Great Escape | Soundcloud
miles1981
Audio Toolkit: http://www.audio-tk.com/
miles1981
MAis comme dit, dès que Qt sort, je passe sous Qt et je ne garde que la partie audio de JUCE...
Audio Toolkit: http://www.audio-tk.com/
sylfeline
Je vais essayé de mon coté pour voir si je voit queque chose
@+
miles1981
Tu utilises aussi .NET2003 ?
Audio Toolkit: http://www.audio-tk.com/
sylfeline
J'ai été dans les options de propriété de compilation et il faut mettre à "oui" au paramètre "Activation des informations de type au moment de l'éxécution" (option "/GR" de la compil) qui se trouve dans "Propriété de configuration" -> "C/C++" -> "Langue", c'est le dernier
dit moi si ca marche chez toi
miles1981
Mais quand on débute avec les RTTI et la STL, ça fait très mal !!
Merci !!!!!
Audio Toolkit: http://www.audio-tk.com/
sylfeline
Wolfen
Développeur de Musical Entropy | Nouveau plug-in freeware, The Great Escape | Soundcloud
plutonak
- < Liste des sujets
- Charte

