HomeProductsDownloadOrderSupportSearch
  
 
 Myriad Blog 1.3.0 Tuesday, Mar 19th, 2024 at 10:21am 

Dev News Tuesday, Jan 6th, 2015 at 05:11pm
Acam Winter étape 27

 
 
La version alpha pour Linux approche à grand pas. Une version du programme suffisamment fonctionnelle a été générée.
Une archive installable a été créée, et nous sommes en train de la tester sur un maximum de distributions.
 
Pour l'instant, elle s'installe sur Ubuntu 32 bits 12.04 et Mint 64 bits Cinnamon 17.1. Il y a quelques problèmes dans la recopie des thèmes graphiques, mais qui sont en passe d'être résolus.
 
Sur Ubuntu 14.04 64 bits, l'application ne fonctionne que si elle est lancée en mode super-utilisateur, par un sudo depuis la console. Apparemment, un problème de permission sur certains fichiers.
 
Dès que nous aurons quelque chose qui fonctionne sur suffisamment de distributions, nous le mettrons à disposition des utilisateurs désireux de le tester. Cela devrait être fait sous quelques jours.
by Olivier Guillion

Dev News Thursday, Jan 8th, 2015 at 05:01pm
Acam Winter étape 28

 
Ce coup-ci, c'est enfin parti. Nous avons installé pas moins de 7 distributions Linux différentes, puis rédigé les instructions d'installation de la version alpha d'Harmony Assistant.  
 
Celle-ci devrait donc être disponible sous quelques minutes et nous permettra de savoir si Acam-Winter fonctionne sur les différentes distributions du système. Elle sera annoncée sur le forum, ainsi que par e-mail aux utilisateurs qui en ont fait la demande.
 
Un fichier Lisez-moi au format HTML est fourni dans l'archive, et doit être lu et appliqué pour installer correctement cette version. N'oublions pas qu'on est sur Linux, ou la ligne de commande et le clavier remplacent (trop) souvent les icônes et les double-clics.
by Olivier Guillion

Dev News Monday, Jan 12th, 2015 at 05:01pm
Acam Winter étape 29

 
Nous corrigeons les problèmes signalés, ou déjà connus, de la version Linux, afin d'obtenir rapidement une version assez stable pour contenter les utilisateurs qui rencontrent des problèmes en attendant la version publique.
 
Nous avons donc corrigé :
  • Un  problème de rendu sonore (notes qui vibrent et crachotent) en base GMSE
  • L'activation de l'instance de l'application déjà en fonction lorsqu'on tente de démarrer le programme deux fois
  • Les droits sur les fichiers et dossiers de préférences sont maintenant automatiquement fixés. Sinon, un lancement de l'application en mode "sudo" lui faisait créer des fichiers impossibles à modifier ultérieurement
  • La hauteur de la barre de menu était prise en compte deux fois dans le calcul de magnétisme des palettes
  • La boîte signalant que la session précédente n'avait pas été terminée convenablement s'affichait à tort
  • Une erreur de mémoire dans la gestion des chaînes Unicode pouvait faire planter l'application au lancement. Ceci pouvait également impacter la version Windows
  • by Olivier Guillion

    Dev News Wednesday, Jan 14th, 2015 at 05:06pm
    Acam Winter étape 30

     
    Encore un lot de corrections sur Acam-Winter Linux:
     
  • Saisie d'accentués dans les noms de fichiers (boîte de sélection)
  • Gestion de l'affichage des caractères Unicode grecs, cyrilliques, hébreux, arabes, etc avec des polices ne les possédant pas
  • Correction d'un problème de téléchargement de fichiers depuis Harmony. Cela affecte et simplifie la version Windows également
  • Dans le sélecteur de fichier, les alertes et la saisie de nom de dossier apparaissaient derrière la boîte de sélection
  • L'ouverture d'un script par "Scripts > Ouvrir ..." plantait
  • L'entrée de caractères spéciaux avec Alt+chiffre ne fonctionnait pas. Maintenant on peut utiliser Alt+<décimal unicode> ou Alt+0+<hexadécimal unicode>
  • by Olivier Guillion

    Technical Friday, Jan 16th, 2015 at 05:15pm
    Pointeur souris en couleur sous X11

     
    Les fonctions X11 de gestion de la forme du pointeur souris nous ont posé pas mal de problèmes.
     
    Notre objectif était le suivant :  
     
    A partir d'une image de dimension donnée, chaque pixel de l'image étant connu et constitué de 32 bits (8 bits de rouge, 8 bits de vert, 8 bits de bleu et 8 bits de transparence), nous voulions obtenir un pointeur souris correspondant.
    Très rapidement, on s'aperçoit qu'on quitte le champ de la documentation pour entrer dans celui de l'expérimentation.
     
     
    Les pointeurs monochromes
     
    La fonction XCreatePixmapCursor notamment, reçoit en entrée un Pixmap, qui théoriquement peut être monochrome ou RVB.
    Mais pour une raison indéterminée, seuls les Pixmap monochromes sont acceptés par cette fonction. Cette fonction reçoit donc une image bitmap (1 bit par pixel) correspondant au masque du pointeur, ainsi qu'une autre image bitmap correspondant au dessin du pointeur.
     
    Les deux couleurs (fond et dessin) du deuxième bitmap étant réglables, chaque pixel du pointeur peut donc soit être transparent, soit de la couleur de fond, soit de la couleur de tracé.
     
    Ceci permet de dessiner des pointeurs en deux couleurs.
    Pour simplifier, nous passerons sur les fonctions qui réduisent le nombre de couleurs de dessin à deux et créent une zone de données monochromes (1 bit par pixel) pour le masque (dataMask) et pour le dessin (dataImg).
     
    Les opérations sont donc les suivantes, avec width et height étant les dimensions en pixel de l'image - et du masque - source :
    Code:
    //Création du "pixmap" (en fait, bitmap) du masque
    Pixmap pixmapMask=XCreateBitmapFromData(display,window,dataMask,width,height);
    //Création du "pixmap" (en fait, bitmap) de l'image
    Pixmap pixmapImg = XCreateBitmapFromData(display,window,dataImg,img->width,img->height);
    // Creation du XCursor
    // foreground et background sont les couleurs de dessin et de fond (XColor) calculées précédemment lors de la réduction de profondeur de l'image
    // hotX et hotY sont la position du "point chaud" du pointeur, c'est-à-dire l'endroit dans le dessin qui correspond à la position de clic
    XCursor cursor = XCreatePixmapCursor(display,pixmapImg,pixmapMask,&foreground,&background ,hotX,hotY);
    // Liberations
    XFreePixmap(display, pixmapImg);
    free(dataImg);
    XFreePixmap(display,pixmapMask);
    free(dataMask);

    On peur ensuite utiliser "cursor" avec  
    Code:
    XDefineCursor(display, window, cursor);

     
    Les pointeurs couleur

    On aurait pu se dire qu'il suffisait aux développeurs de X11 de faire en sorte que la fonction XCreatePixmapCursor accepte, comme son nom semble l'indiquer, des Pixmap (couleur) au lieu de Bitmap (monochrome) pour instantanément permettre les pointeurs en couleur, mais ç'eût été trop simple.
     
    Il faut donc installer une autre bibliothèque, Xrender, qui gère également les polices de caractères antialiasées, les tracés de forme graphiques et la température des frites pour que cela puisse fonctionner.
     
    Cette bibliothèque est extrêmement mal documentée, et les exemples rares. Après plusieurs journées de recherche, voici à quoi nous en sommes arrivé.
    Notons que pour obtenir un object utilisable pour un pointeur X11 (XCursor), on doit passer par un empilage de concepts inutiles et redondants tels que Picture, Image, Pixmap ou GC.
     
     
    Solution la plus simple:
     
    Dans "data", nous avons déjà les données graphiques au format RGBA
    ATTENTION, c'est là que le bât blesse ! Ce n'est pas expliqué, mais les données graphiques doivent être PRÉMULTIPLIÉES ! Cela signifie que la couleur d'image des parties transparentes du pointeur doivent impérativement être noires (RVB 0,0,0).
    A défaut, on obtient un carré blanc autour du pointeur.
    Code:
    // Cree le pixmap 32 bits  
    Pixmap pixmap=XCreatePixmap(display,window,width,height,32);  
    // Crée le graphic context (gc) pour pouvoir y tracer dessus
    gc = XCreateGC(display,pixmap,0,NULL);
    // Cree l'XImage contenant les donnees RGBA du curseur
    XImage image=XCreateImage(display,DefaultVisual(display,DefaultScreen(display)) ,32,ZPixmap,0,data,width,height,32,width*4);  
    // Met l'image dans le pixmap
    XPutImage(display, pixmap, gc, image, 0, 0, 0, 0,width,height);
    // Convertit le pixmap en picture
    XRenderPictFormat *fmt=XRenderFindStandardFormat(display,PictStandardARGB32);
    Picture pict = XRenderCreatePicture(display,pixmap, fmt, 0, NULL);
    // Cree le pointeur
    XCursor = XRenderCreateCursor(display, pict, hotX, hotY);
    // Liberations
    XRenderFreePicture(display,pict);
    XFreeGC(display,gc);
    XFreePixmap(display,pixmap);
    image->data=0;
    XDestroyImage(image);
    free(data);

     
    Autre solution:
     
    Elle consiste a créer un masque monochrome comme dans le premier paragraphe converti en "Picture", ainsi qu'un Pixmap 24 bits (RVB, sans masque).
     
    L'expérience montre que cette image 24 bits doit tout de même être stockée avec 32 bits par pixel (8 bits ne servent à rien) pour des raisons plus qu'obscures. Cela nous a également fait perdre une bonne demi-journée.
     
    Ensuite, on construit une "Image" en spécifiant que les données graphiques viennent du Pixmap, et le masque de la Picture monochrome, par:
    Code:
    XRenderPictureAttributes attr;
    attr.alpha_map = pictMask;
    Picture pict = XRenderCreatePicture(display,pixmapImg, fmt, CPAlphaMap, &attr);

    Puis cette "picture" est utilisée pour créer le pointeur.
     
    Mais ceci est seulement de la théorie. En pratique, cela ne fonctionne pas toujours. Même avec une même version de Xrender (1.3.0), cela va fonctionner sur certains systèmes, et pas d'autres. Sur certains, la transparence ne fonctionne pas et le pointeur apparaît dans un cadre blanc.
    Il est très probable qu'il s'agisse d'un bug quelque part dans la bibliothèque. Un masque monochrome devrait être suffisant pour gérer la transparence, quelles que soient les données graphiques.
     
    Mais il est probable que la bibliothèque considère que les pixels de l'image qui se trouvent dans une zone transparente du pointeur doivent être noires.
    Nous n'avons cependant pas testé cela, c'est juste une supposition qui se base sur les résultats de la méthode précédente.
     
    Voila, c'est tout pour aujourd'hui.
    Bon week-end !
    by Olivier Guillion

    Dev News Tuesday, Jan 20th, 2015 at 04:58pm
    Acam Winter étape 31

     
    Les points suivants ont été corrigés ou améliorés, sur Acam Winter Linux:
     
  • Une icône réseau est apparue dans la barre de raccourcis du sélecteur de fichier. Elle permet d'accéder aux dossiers partagés qui ont été montés dans le système.
    Cependant, l'emplacement de ces dossiers partagés semble changer selon la distribution (et parfois sa version). Il se peut donc que cela ne fonctionne pas partout.
     

     
  • La case de fermeture dans la barre de titre du sélecteur de fichiers est maintenant opérationnelle
     
  • Les effets d'apparition/disparition progrssives des fenêtres (glissement/fondu, etc) ont été remis en place. Cependant cela semble assez lent et nécessiterait un calibrage, mais peut-être est-ce dû au fait que nous faisons tourner Linux sur des machines virtuelles?
     
  • Les options de la boîte d'impression sont maintenant sélectionnables
     
  • La boîte de sélection de police a été mise en place, et est totalement fonctionnelle. Il nous faut maintenant la tester en profondeur
     

     
    Il ne nous reste que très peu de points à corriger/améliorer. Une nouvelle version alpha devrait donc arriver bientôt, même si nous n'avons eu que très peu de retours sur celle-ci.
  • by Olivier Guillion

    Dev News Thursday, Jan 22nd, 2015 at 04:53pm
    Acam Winter étape 32

     
    Une jolie petite boîte a été créée sur Acam Winter. Elle permettra à nos applications de proposer un sélecteur de couleur standard, sur tous les systèmes.
     
    En voici un aperçu :
     

     
    Elle présente la palette de couleur au format HSL pour Hue (teinte) - Saturation - Luminance.
    En haut de la boîte, la double flèche permet de choisir la représentation :
     
    Teinte et saturation dans le grand cadre, luminance dans la barre de droite

     
    Teinte et luminance dans le grand cadre, saturation dans la barre de droite

     
    Saturation et luminance dans le grand cadre, teinte dans la barre de droite

     
    Au-dessous, des palettes de couleur permettent de choisir rapidement une couleur :
    - Soit dans une palette spécifique à l'application
    - Soit dans une liste des couleurs précédemment sélectionnées
    - Soit dans une palette de 256 couleurs
    - Soit dans une palette de 256 gris.
     
    Enfin, il est possible d'entrer les valeurs numériques, en RVB, HSL ou en code couleur HTML.
     
    Un cadre de prévisualisation, en bas à droite, permet de comparer la couleur actuellement choisie avec la précédente.
     
    Cette boîte pourra être testée dans la prochaine version Alpha pour Linux, dans le choix de la couleur du thème graphique.
    by Olivier Guillion

    Dev News Monday, Jan 26th, 2015 at 04:55pm
    Acam Winter étape 33

     
    Une nouvelle version alpha pour Linux (9.6.4 alpha-4) a été mise à disposition. Elle intègre toutes les améliorations décrites sur ce blog, et devrait donc être plus stable et plus fonctionnelle.
     
    En attendant les retours des alpha-testeurs, nous essayons d'automatiser la procédure d'installation en peaufinant un ensemble de scripts shell. L'utilisation d'un système de paquetage nous paraît assez compromise étant donné le manque d'uniformisation de ces derniers.
    Nous voudrions ne conserver qu'une seule archive de l'application, qui s'installe sur toutes les distributions, au lieu des 3 versions (.deb 32, .deb 64, .rpm) que nous avions précédemment et qui nous apportaient principalement des ennuis plutôt que des avantages.
    by Olivier Guillion

    Dev News Wednesday, Jan 28th, 2015 at 05:08pm
    Acam Winter étape 34

     
    L'installation manuelle d'Harmony Assistant sur Linux s'avérant un peu trop compliquée, nous tentons de proposer un système d'installation automatique multi-architecture (32 ou 64 bits) et multi-distribution.
     
    Voici à quoi nous en sommes arrivés, après avoir bûché et trébuché sur le langage de script shell Linux :
     
    - L'archive installable serait un seul fichier .run ou .sh (donc sous la forme d'un script shell)
     
    - Après téléchargement, elle devrait être copiée par l'utilisateur dans un dossier facilement accessible (p.ex. le dossier "Documents")
     
    - Par défaut, les fichiers téléchargés n'ont pas la permission "Exécuter". Cela signifie qu'il n'est pas possible de lancer par double-clic un fichier qui vient d'être téléchargé, que ce soit un exécutable (ELF), un script shell (.sh ou .run), un script perl (.pl), ou tout autre format qui correspond à un programme.
    Ceci est apparemment mis en place pour des raisons de "sécurité" (vous savez, le truc qui vous pourrit la vie "pour votre bien")
     
    - Il faut donc que l'utilisateur force la permission "exécuter" du fichier .run qu'il a téléchargé. Ceci peut se faire généralement par "clic droit > Propriétés >Permissions" ou sous terminal par sudo (ou su) chmod 777 <nom du fichier.run>
     
    - Ensuite, l'utilisateur devrait pouvoir double-cliquer sur le fichier pour le lancer. Mais ce serait trop simple, ceci n'est pas autorisé avec certaines distributions (fedora par exemple), qui à la place le charge dans un éditeur de texte, toujours pour des raisons de "sécutité" (pour votre bien et toussa)
    Sur ces systèmes, il faut alors ouvrir un terminal, se positionner dans "Documents", et entrer le nom du fichier .run pour le lancer  
     
    Et alors là, roulement de tambours, on obtient cette magnifique interface digne des plus fameux programmes des années 70 :
     

     
    Mais les scripts qui tournent derrière sont plus compliqués que ça en a l'air, car ils doivent mettre en place tout ce qui est nécessaire pour qu'Harmony Assistant puisse fonctionner correctement, et en particulier les bibliothèques 32 bits.
     
    Nous sommes en train de tester tout ça sur un maximum de systèmes Linux.
     
    En voici la liste jusqu'ici :
     
  • PCLinuxOS 32 bits Aucun problème rencontré
     
  • PCLinuxOS 64 bits Impossible d'installer les bibliothèques 32 bits nécessaires. Si quelqu'un connait un bon "repository", qu'il se signale.
     
  • OpenSuse 64 bits Aucun problème rencontré
     
  • Fedora 32 bits Aucun problème rencontré (pas possible de lancer l'archive par double-clic, on doit lancer un terminal)
     
  • Fedora 64 bits Aucun problème rencontré (pas possible de lancer l'archive par double-clic, on doit lancer un terminal)
     
  • Mageia 64 bits Fonctionne, mais le système est assez pourri, empêchant l'installation de bibliothèques lorsqu'un process de mise à jour des repository (urpmi.update) tourne en tâche de fond
     
    et on continue, il y en reste beaucoup...
  • by Olivier Guillion

    Dev News Friday, Jan 30th, 2015 at 05:10pm
    Acam Winter étape 35

     
    Nous avons installé 10 autres distributions de Linux, et testé notre procédure d'installation sur chacune d'elles, ce qui porte à 16 le nombre de systèmes Linux différents sur lesquels l'installation a été validée.
     
    En plus des 6 validées avant-hier (pour PCLinuxOS 64 bits, un test spécifique dans l'installateur a permis de tout installer proprement), nous avons ajouté OpenSuse 13.2 32 bits (gnome), Mageia 4.1 32 bits (gnome), Ubuntu 14.04/14.10 en 32 et 64 bits, Mint 17.1 Cinnamon en 32 et 64 bits, Debian 7.8.0 en 32 et 64 bits, et enfin Puppy / Slacko 5.7 32 bits et Puppy / Lighthouse 5.15 64 bits.
     
    Seuls Gentoo et Arch ont eu raison de notre patience, une installation de ces systèmes avec un environnement graphique relevant de l'exploit.
     
    Maintenant que l'installateur est plutôt bien au point, nous avons commencé les corrections du programme lui-même :
     
  • Correction d'une erreur dans l'export MusicXML pouvant conduire à des crashs ou instabilités (toutes plateformes)
     
  • Correction d'une erreur dans la détermination de l'espace libre sur le disque lorsque celui-ci a plus de 2 To de libre (toutes plateformes)
     
  • Correction d'un problème d'affichage des accentués dans la boîte de crash sous Linux
     
    Nous continuons à traiter les retours des alpha-testeurs Linux, dans l'ordre de réception.
     
    Bon week-end !
  • by Olivier Guillion


    Full view
    Reduced view
    Most recent first
    Oldest first
    All
    Didier Guillion
    Olivier Guillion
    Sylvie Ricard
    All
    Dev News
    Technical
    Myriad Life
    To be seen
    Mood
    Memories
    30 previous days
    Apr 2006
    May 2006
    Jun 2006
    Jul 2006
    Aug 2006
    Sep 2006
    Oct 2006
    Nov 2006
    Dec 2006
    Jan 2007
    Feb 2007
    Mar 2007
    Apr 2007
    May 2007
    Jun 2007
    Jul 2007
    Aug 2007
    Sep 2007
    Oct 2007
    Nov 2007
    Dec 2007
    Jan 2008
    Feb 2008
    Mar 2008
    Apr 2008
    May 2008
    Jun 2008
    Jul 2008
    Aug 2008
    Sep 2008
    Oct 2008
    Nov 2008
    Dec 2008
    Jan 2009
    Feb 2009
    Mar 2009
    Apr 2009
    May 2009
    Jun 2009
    Jul 2009
    Aug 2009
    Sep 2009
    Oct 2009
    Nov 2009
    Dec 2009
    Jan 2010
    Feb 2010
    Mar 2010
    Apr 2010
    May 2010
    Jun 2010
    Jul 2010
    Aug 2010
    Sep 2010
    Oct 2010
    Nov 2010
    Dec 2010
    Jan 2011
    Feb 2011
    Mar 2011
    Apr 2011
    May 2011
    Jun 2011
    Jul 2011
    Aug 2011
    Sep 2011
    Oct 2011
    Nov 2011
    Dec 2011
    Jan 2012
    Feb 2012
    Mar 2012
    Apr 2012
    May 2012
    Jun 2012
    Jul 2012
    Aug 2012
    Sep 2012
    Oct 2012
    Nov 2012
    Dec 2012
    Jan 2013
    Feb 2013
    Mar 2013
    Apr 2013
    May 2013
    Jun 2013
    Jul 2013
    Aug 2013
    Sep 2013
    Oct 2013
    Nov 2013
    Dec 2013
    Jan 2014
    Feb 2014
    Mar 2014
    Apr 2014
    May 2014
    Jun 2014
    Jul 2014
    Aug 2014
    Sep 2014
    Oct 2014
    Nov 2014
    Dec 2014
    Jan 2015
    Feb 2015
    Mar 2015
    Apr 2015
    May 2015
    Jun 2015
    Jul 2015
    Aug 2015
    Sep 2015
    Oct 2015
    Nov 2015
    Dec 2015
    Jan 2016
    Feb 2016
    Mar 2016
    Apr 2016
    May 2016
    Jun 2016
    Jul 2016
    Aug 2016
    Sep 2016
    Oct 2016
    Nov 2016
    Dec 2016
    Jan 2017
    Feb 2017
    Mar 2017
    Apr 2017
    May 2017
    Jun 2017
    Jul 2017
    Aug 2017
    Sep 2017
    Oct 2017
    Nov 2017
    Dec 2017
    Jan 2018
    Feb 2018
    Mar 2018
    Apr 2018
    May 2018
    Jun 2018
    Jul 2018
    Aug 2018
    Sep 2018
    Oct 2018
    Nov 2018
    Dec 2018
    Jan 2019
    Feb 2019
    Mar 2019
    Apr 2019
    May 2019
    Jun 2019
    Jul 2019
    Aug 2019
    Sep 2019
    Oct 2019
    Nov 2019
    Dec 2019
    Jan 2020
    Feb 2020
    Mar 2020
    Apr 2020
    May 2020
    Jun 2020
    Jul 2020
    Aug 2020
    Sep 2020
    Oct 2020
    Nov 2020
    Dec 2020
    Jan 2021
    Feb 2021
    Mar 2021
    Apr 2021
    May 2021
    Jun 2021
    Jul 2021
    Aug 2021
    Sep 2021
    Oct 2021
    Nov 2021
    Dec 2021
    Jan 2022
    Feb 2022
    Mar 2022
    Apr 2022
    May 2022
    Jun 2022
    Jul 2022
    Aug 2022
    Sep 2022
    Oct 2022
    Nov 2022
    Dec 2022
    Jan 2023
    Feb 2023
    Mar 2023
    Apr 2023
    May 2023
    Jun 2023
    Jul 2023
    Aug 2023
    Sep 2023
    Oct 2023
    Nov 2023
    Dec 2023
    Jan 2024
    Feb 2024
    Mar 2024
    Mar 18th, 2024 at 08:14pm 
    Comment from Sylvain
    Mar 18th, 2024 at 08:13pm 
    Comment from Sylvain
    @André
    Mar 18th, 2024 at 07:28pm 
    Comment from Antoine Bautista
    Build 82....
    Mar 18th, 2024 at 05:02pm 
    Article from Didier Guillion
    Harmony Assistant 9.9.8  étape 198
    Mar 18th, 2024 at 05:02pm 
    Article from Didier Guillion
    Harmony Assistant 9.9.8  étape 198
    Mar 17th, 2024 at 11:40am 
    Comment from Antoine Bautista
    Frite....
    Mar 17th, 2024 at 11:40am 
    Comment from Antoine Bautista
    Frite....
    Mar 16th, 2024 at 09:16am 
    Comment from André Baeck
    Mar 16th, 2024 at 09:16am 
    Comment from André Baeck
    Mar 16th, 2024 at 09:13am 
    Comment from André Baeck

    Top of page
    Legal information Cookies Last update:  (c) Myriad