abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 06:00 | Nová verze

    Byla vydána nová verze 9.15 z Debianu vycházející linuxové distribuce DietPi pro (nejenom) jednodeskové počítače. Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    včera 21:22 | Zajímavý software

    Společnost CORSAIR podporuje svůj systém iCUE LINK pouze ve Windows a macOS. Jak jej ovládat v Linuxu? OpenLinkHub (GitHub) je open source linuxové rozhraní k iCUE LINK. Z webového rozhraní na adrese http://localhost:27003 lze ovládat RGB osvětlení, rychlost ventilátorů, nastavovat klávesnice, myši, headsety…

    Ladislav Hagara | Komentářů: 0
    včera 15:11 | Zajímavý článek

    Ve funkci koordinátora k bitcoinové kauze skončil bývalý ústavní soudce David Uhlíř. Informaci, kterou zveřejnil Deník N, potvrdila Radiožurnálu ministryně spravedlnosti Eva Decriox (ODS). Uvedla, že odchod byl po vzájemné dohodě. „Jeho mise je ukončená, auditní procesy se už povedlo nastavit,“ řekla. Teď má podle ministryně další kroky podniknout policie a státní zastupitelství. Koordinátorem jmenovala ministryně Uhlíře 19. června.

    Ladislav Hagara | Komentářů: 5
    včera 13:00 | Nová verze

    Byla vydána nová verze 25.07.26 svobodného multiplatformního video editoru Shotcut (Wikipedie) postaveného nad multimediálním frameworkem MLT. Nejnovější Shotcut je již vedle zdrojových kódů k dispozici také ve formátech AppImage, Flatpak a Snap.

    Ladislav Hagara | Komentářů: 0
    včera 00:11 | Nová verze

    Po 9 týdnech vývoje od vydání Linuxu 6.15 oznámil Linus Torvalds vydání Linuxu 6.16. Přehled novinek a vylepšení na LWN.net: první a druhá polovina začleňovacího okna a Linux Kernel Newbies.

    Ladislav Hagara | Komentářů: 5
    25.7. 19:55 | IT novinky

    Americký výrobce čipů Intel propustí 15 procent zaměstnanců (en), do konce roku by jich v podniku mělo pracovat zhruba 75.000. Firma se potýká s výrobními problémy a opouští také miliardový plán na výstavbu továrny v Německu a Polsku.

    Ladislav Hagara | Komentářů: 34
    25.7. 17:33 | Komunita

    MDN (Wikipedie), dnes MDN Web Docs, původně Mozilla Developer Network, slaví 20 let. V říjnu 2004 byl ukončen provoz serveru Netscape DevEdge, který byl hlavním zdrojem dokumentace k webovým prohlížečům Netscape a k webovým technologiím obecně. Mozille se po jednáních s AOL povedlo dokumenty z Netscape DevEdge zachránit a 23. července 2005 byl spuštěn MDC (Mozilla Developer Center). Ten byl v roce 2010 přejmenován na MDN.

    Ladislav Hagara | Komentářů: 0
    25.7. 14:55 | Nová verze

    Wayback byl vydán ve verzi 0.1. Wayback je "tak akorát Waylandu, aby fungoval Xwayland". Jedná se o kompatibilní vrstvu umožňující běh plnohodnotných X11 desktopových prostředí s využitím komponent z Waylandu. Cílem je nakonec nahradit klasický server X.Org, a tím snížit zátěž údržby aplikací X11.

    Ladislav Hagara | Komentářů: 0
    25.7. 13:33 | Nová verze

    Byla vydána nová verze 6.18 živé linuxové distribuce Tails (The Amnesic Incognito Live System), jež klade důraz na ochranu soukromí uživatelů a anonymitu. Nově se lze k síti Tor připojit pomocí mostu WebTunnel. Tor Browser byl povýšen na verzi 14.5.5. Thunderbird na verzi 128.12.0. Další změny v příslušném seznamu.

    Ladislav Hagara | Komentářů: 0
    24.7. 14:33 | IT novinky

    Meta představila prototyp náramku, který snímá elektrickou aktivity svalů (povrchová elektromyografie, EMG) a umožňuje jemnými gesty ruky a prstů ovládat počítač nebo různá zařízení. Získané datové sady emg2qwerty a emg2pose jsou open source.

    Ladislav Hagara | Komentářů: 1
    Kolik tabů máte standardně otevřeno ve web prohlížeči?
     (28%)
     (28%)
     (6%)
     (6%)
     (4%)
     (1%)
     (3%)
     (25%)
    Celkem 155 hlasů
     Komentářů: 17, poslední 26.7. 20:08
    Rozcestník

    Administrace komentářů

    Jste na stránce určené pro řešení chyb a problémů týkajících se diskusí a komentářů. Můžete zde našim administrátorům reportovat špatně zařazenou či duplicitní diskusi, vulgární či osočující příspěvek a podobně. Děkujeme vám za vaši pomoc, více očí více vidí, společně můžeme udržet vysokou kvalitu AbcLinuxu.cz.

    Příspěvek
    14.9.2016 10:52 Petr Šobáň | skóre: 80 | blog: soban | Olomouc
    Rozbalit Rozbalit vše Re: Jak nejlépe spouštět a ukočit externí programy z C
    Tak jsem to trochu učesal..... ir ovládání jsem nechal na irexec který spustím jako démona kde v konfiguraci mám:
    begin
       remote = *
       button = KEY_VOLUMEUP
       prog   = irexec
       config = amixer set PCM 300+ unmute
       repeat = 1
    end
    begin
       remote = *
       button = KEY_VOLUMEDOWN
       prog   = irexec
       config = amixer set PCM 300- unmute
       repeat = 1
    end
    begin
       remote = *
       button = KEY_MUTE
       prog   = irexec
       config = amixer set PCM mute
       repeat = 0
    end
    
    begin
      remote = *
      button = KEY_PLAY
      prog = irexec 
      config = echo "ok" > /tmp/radio.txt
    end
    
    begin
      remote = *
      button = KEY_LEFT
      prog = irexec
      config = echo "vlevo" > /tmp/radio.txt
    end
    
    begin
      remote = *
      button = KEY_RIGHT
      prog = irexec
      config = echo "vpravo" > /tmp/radio.txt
    end
    
    begin
      remote = *
      button = KEY_POWER
      prog = irexec
      config = echo "vypnout" > /tmp/radio.txt
    end
    
    A vlastní program:
    #include <stdlib.h>
    #include <stdio.h>
    #include <unistd.h>
    #include <string.h>
    #include <errno.h>
    #include <time.h>
    #include "pifacecad.h"
    
    #define VERZE		"0"
    #define PODVERZE	"4"
    #define MAX_RETEZEC	255
    #define MAX_RETEZEC_S   " %255s"
    #define CEKANI		5
    #define KONFIGURACE	"/etc/radio/config.txt"
    #define STANICE		"/etc/radio/stanice.txt"
    #define TLACITKO_1	0
    #define TLACITKO_2	1
    #define TLACITKO_3	2
    #define TLACITKO_4	3
    #define TLACITKO_MENU	4
    #define JOISTICK_LEFT	6
    #define JOISTICK_RIGHT	7
    #define JOISTICK_OK	5
    #define PREHRAVAC_PRIKAZY ovladani_prehravace
    #define PREHRAVAC	"mplayer -slave --really-quiet "
    
    #define ZAKMIT_MS	50
    #define SLEEP_TLACITKA	300
    
    // nazvy uzivatelskych znaků lcd
    # define ZNAK_PLAY 0
    # define ZNAK_PAUSE 1
    # define ZNAK_INFO 2
    # define ZNAK_MUSIC 3
    
    
    char stanice_stream[MAX_RETEZEC];
    char stanice_popis[MAX_RETEZEC];
    int p_play=1;
    FILE *PREHRAVAC_PRIKAZY;
    
    void sleep_ms(int milliseconds) 
    {
        struct timespec ts;
        ts.tv_sec = milliseconds / 1000;
        ts.tv_nsec = (milliseconds % 1000) * 1000000;
        nanosleep(&ts, NULL);
    }
    
    void play(char *adresa, char *text)
    {
    fprintf(PREHRAVAC_PRIKAZY, "loadfile %s\n", adresa);
    fflush(PREHRAVAC_PRIKAZY);
    pifacecad_lcd_clear();
    if(p_play==1) 
    {
      pifacecad_lcd_write_custom_bitmap(ZNAK_PLAY);
      pifacecad_lcd_write(" Play ");
      pifacecad_lcd_write_custom_bitmap(ZNAK_MUSIC);
      pifacecad_lcd_write("\n");
    }
    else 
    {
     pifacecad_lcd_write_custom_bitmap(ZNAK_PAUSE);
     pifacecad_lcd_write(" Pause \n");
    }
    pifacecad_lcd_write_custom_bitmap(ZNAK_INFO);
    pifacecad_lcd_write(" ");
    pifacecad_lcd_write(text);
    }
    
    
    void pauza(void)
    {
    if (p_play==1)
     {
      fprintf(PREHRAVAC_PRIKAZY, "pause\n");
      fflush(PREHRAVAC_PRIKAZY);
      pifacecad_lcd_home();
      pifacecad_lcd_write_custom_bitmap(ZNAK_PAUSE);
      pifacecad_lcd_write(" Pause \n");
      p_play=0;
     }
    else 
     {
      fprintf(PREHRAVAC_PRIKAZY, "pause\n");
      fflush(PREHRAVAC_PRIKAZY);
      pifacecad_lcd_home();
      pifacecad_lcd_write_custom_bitmap(ZNAK_PLAY);
      pifacecad_lcd_write(" Play ");
      pifacecad_lcd_write_custom_bitmap(ZNAK_MUSIC);
      pifacecad_lcd_write("\n");
      p_play=1;
     }
    
    }
    
    
    void error_lcd(char *error_text)
    {
    pifacecad_lcd_clear();
    pifacecad_lcd_write("ERROR: ");
    pifacecad_lcd_write(error_text);
    sleep(CEKANI);
    pifacecad_lcd_clear();
    }
    
    
    void nacti_stanici(int stanice)
    {
    FILE *stanice_soubor;
    int i;
    
    if ((stanice_soubor = fopen(STANICE,"rt")) == NULL) {
        error_lcd("Nelze otevrit soubor se stanicemi!");
        pifacecad_close();
        exit(1);
    }
    
    for (i=0; i<=stanice; i++)
    {
    stanice_popis[MAX_RETEZEC - 1]='\0';
    stanice_stream[MAX_RETEZEC - 1]='\0';
    
    fgets(stanice_popis, MAX_RETEZEC - 1, stanice_soubor);
    fgets(stanice_stream, MAX_RETEZEC - 1, stanice_soubor);
    }
    
    if (feof(stanice_soubor))
     {
       stanice_popis[0]='\n';
       stanice_stream[0]='\n';
     }
    
    fclose(stanice_soubor);
    }
    
    int main ()
    {
    
    int stanice;
    int i;
    int c;
    int tlacitko;
    FILE *soubor;
    char buffer[MAX_RETEZEC];
    
    // uživatelské znaky do LCD
    uint8_t play_symbol[] = {0x10, 0x18, 0x1c, 0x1e, 0x1c, 0x18, 0x10, 0x0};
    uint8_t pause_symbol[] = {0x0, 0x1b, 0x1b, 0x1b, 0x1b, 0x1b, 0x0, 0x0};
    uint8_t info_symbol[] = {0x6, 0x6, 0x0, 0x1e, 0xe, 0xe, 0xe, 0x1f};
    uint8_t music_symbol[] = {0x2, 0x3, 0x2, 0x2, 0xe, 0x1e, 0xc, 0x0};
    
    
    // inicializace LCD
    	pifacecad_open();
    	pifacecad_lcd_clear();
    	pifacecad_lcd_blink_off();
    	pifacecad_lcd_cursor_off();
    	pifacecad_lcd_left_to_right();
    	pifacecad_lcd_backlight_on();
    
    
    // nahrání uživatelských symbolů....
            pifacecad_lcd_store_custom_bitmap(ZNAK_PLAY, play_symbol);
            pifacecad_lcd_store_custom_bitmap(ZNAK_PAUSE, pause_symbol);
            pifacecad_lcd_store_custom_bitmap(ZNAK_INFO, info_symbol);
            pifacecad_lcd_store_custom_bitmap(ZNAK_MUSIC, music_symbol);
    
    // test znaků....
    /*
            pifacecad_lcd_write_custom_bitmap(ZNAK_PLAY);
            pifacecad_lcd_write_custom_bitmap(ZNAK_PAUSE);
            pifacecad_lcd_write_custom_bitmap(ZNAK_INFO);
            pifacecad_lcd_write_custom_bitmap(ZNAK_MUSIC);
            sleep(10);
    */
    
    
    // zobrazení programu
    //        pifacecad_lcd_write_custom_bitmap(ZNAK_MUSIC);
    	pifacecad_lcd_write(" Program radio");
    //        pifacecad_lcd_write_custom_bitmap(ZNAK_MUSIC);
    	pifacecad_lcd_write("\n v ");
    	pifacecad_lcd_write(VERZE);
    	pifacecad_lcd_write(".");
    	pifacecad_lcd_write(PODVERZE);
    	sleep(CEKANI);
    
    // vlastní menu - play
    
    nacti_stanici(0);
    strncpy(buffer, PREHRAVAC, MAX_RETEZEC - 1 );
    buffer[MAX_RETEZEC - 1]='\0';
    strncat(buffer, stanice_stream, MAX_RETEZEC - strlen(buffer) -1);
    
    if ((PREHRAVAC_PRIKAZY=popen(buffer, "w")) == NULL)
     {
      perror("popen");
      exit(1);
     }
    
    play(stanice_stream, stanice_popis);
    
    while (1) 
       {
         sleep_ms(SLEEP_TLACITKA);
         tlacitko=0;
         if ((soubor = fopen("/tmp/radio.txt","rt")) != NULL)
           { 
             fscanf(soubor, MAX_RETEZEC_S, buffer);
             fclose(soubor);
             unlink("/tmp/radio.txt");
             if(strcmp(buffer, "vlevo")==0) tlacitko=JOISTICK_LEFT;
    	 if(strcmp(buffer, "vpravo")==0) tlacitko=JOISTICK_RIGHT;
             if(strcmp(buffer, "ok")==0) tlacitko=JOISTICK_OK;
             if(strcmp(buffer, "vypnout")==0) tlacitko=TLACITKO_MENU;
    
    //printf("tlacitko je %i \n", tlacitko);
           
    }
    
    // zatím se to zde vypne (ukončí nekonečná smyčka) - později bude přidáno menu.....
         if (pifacecad_read_switch(TLACITKO_MENU)==0 || tlacitko==TLACITKO_MENU) break;
    
    // hlavní ovládání přehrávání
         if (pifacecad_read_switch(JOISTICK_OK)==0 || tlacitko==JOISTICK_OK)
    	 {
              pauza();
              while (pifacecad_read_switch(JOISTICK_OK)==0) sleep_ms(ZAKMIT_MS);
    	 }
    
         if (pifacecad_read_switch(JOISTICK_LEFT)==0 || tlacitko==JOISTICK_LEFT)
             {
    	 stanice--;
             if (stanice < 0) stanice=0;
             nacti_stanici(stanice);
             play(stanice_stream, stanice_popis);
             while (pifacecad_read_switch(JOISTICK_LEFT)==0) sleep_ms(ZAKMIT_MS);
             }
    
         if (pifacecad_read_switch(JOISTICK_RIGHT)==0 || tlacitko==JOISTICK_RIGHT)
             {
             stanice++;
             nacti_stanici(stanice);
             if (stanice_stream[0]=='\n')
               {
                 stanice--;
                 nacti_stanici(stanice);
               }
             play(stanice_stream, stanice_popis);
             while (pifacecad_read_switch(JOISTICK_RIGHT)==0) sleep_ms(ZAKMIT_MS);
             }
          }
    
    // konec programu uklid
    	pifacecad_lcd_clear();
    	pifacecad_lcd_write("Ukoncuji program");
    // ukončení prehrávače
            fprintf(PREHRAVAC_PRIKAZY, "stop\n");
            fflush(PREHRAVAC_PRIKAZY);
            pclose(PREHRAVAC_PRIKAZY);
    
    	sleep(CEKANI);
    	pifacecad_lcd_backlight_off();
            pifacecad_lcd_clear();
    	pifacecad_close();
    return 0;
    }
    
    
    a v souboru /etc/radio/stanice.txt jsou popsané stanice vždy na dvou řádcích

    popis
    stream
    popis
    stream
    .....

    V tomto formuláři můžete formulovat svou stížnost ohledně příspěvku. Nejprve vyberte typ akce, kterou navrhujete provést s diskusí či příspěvkem. Potom do textového pole napište důvody, proč by měli admini provést vaši žádost, problém nemusí být patrný na první pohled. Odkaz na příspěvek bude přidán automaticky.

    Vaše jméno
    Váš email
    Typ požadavku
    Slovní popis
    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.