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 01:33 | IT novinky

    Microsoft se vyhnul pokutě od Evropské komise za zneužívání svého dominantního postavení na trhu v souvislosti s aplikací Teams. S komisí se dohodl na závazcích, které slíbil splnit. Unijní exekutivě se nelíbilo, že firma svazuje svůj nástroj pro chatování a videohovory Teams se sadou kancelářských programů Office. Microsoft nyní slíbil jasné oddělení aplikace od kancelářských nástrojů, jako jsou Word, Excel a Outlook. Na Microsoft si

    … více »
    Ladislav Hagara | Komentářů: 1
    včera 14:00 | Nová verze

    Samba (Wikipedie), svobodná implementace SMB a Active Directory, byla vydána ve verzi 4.23.0. Počínaje verzí Samba 4.23 jsou unixová rozšíření SMB3 ve výchozím nastavení povolena. Přidána byla podpora SMB3 přes QUIC. Nová utilita smb_prometheus_endpoint exportuje metriky ve formátu Prometheus.

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

    Správcovský tým repozitáře F-Droid pro Android sdílí doporučení, jak řešit žádosti o odstranění nelegálního obsahu. Základem je mít nastavené formální procesy, vyhrazenou e-mailovou adresu a být transparentní. Zdůrazňují také důležitost volby jurisdikce (F-Droid je v Nizozemsku).

    🇵🇸 | Komentářů: 12
    včera 05:33 | Bezpečnostní upozornění

    Byly publikovány informace o další zranitelnosti v procesorech. Nejnovější zranitelnost byla pojmenována VMScape (CVE-2025-40300, GitHub) a v upstream Linuxech je již opravena. Jedná se o variantu Spectre. KVM host může číst data z uživatelského prostoru hypervizoru, např. QEMU.

    Ladislav Hagara | Komentářů: 0
    11.9. 22:00 | Komunita

    V červenci loňského roku organizace Apache Software Foundation (ASF) oznámila, že se částečně přestane dopouštět kulturní apropriace a změní své logo. Dnes bylo nové logo představeno. "Indiánské pírko" bylo nahrazeno dubovým listem a text Apache Software Foundation zkratkou ASF. Slovo Apache se bude "zatím" dál používat. Oficiální název organizace zůstává Apache Software Foundation, stejně jako názvy projektů, například Apache HTTP Server.

    Ladislav Hagara | Komentářů: 11
    11.9. 17:33 | Nová verze

    Byla vydána (𝕏) srpnová aktualizace aneb nová verze 1.104 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a videi v poznámkách k vydání. Ve verzi 1.104 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.

    Ladislav Hagara | Komentářů: 0
    11.9. 15:33 | IT novinky

    Spotify spustilo přehrávání v bezztrátové kvalitě. V předplatném Spotify Premium.

    Ladislav Hagara | Komentářů: 0
    11.9. 15:00 | IT novinky

    Spoluzakladatel a předseda správní rady americké softwarové společnosti Oracle Larry Ellison vystřídal spoluzakladatele automobilky Tesla a dalších firem Elona Muska na postu nejbohatšího člověka světa. Hodnota Ellisonova majetku díky dnešnímu prudkému posílení ceny akcií Oraclu odpoledne vykazovala nárůst o více než 100 miliard dolarů a dosáhla 393 miliard USD (zhruba 8,2 bilionu Kč). Hodnota Muskova majetku činila zhruba 385 miliard dolarů.

    Ladislav Hagara | Komentářů: 5
    10.9. 21:22 | Nová verze

    Bylo vydáno Eclipse IDE 2025-09 aneb Eclipse 4.37. Představení novinek tohoto integrovaného vývojového prostředí také na YouTube.

    Ladislav Hagara | Komentářů: 0
    10.9. 18:22 | IT novinky

    T-Mobile od 15. září zpřístupňuje RCS (Rich Communication Services) zprávy i pro iPhone.

    Ladislav Hagara | Komentářů: 3
    Pro otevření více webových stránek ve webovém prohlížečí používám
     (83%)
     (7%)
     (2%)
     (2%)
     (4%)
     (2%)
    Celkem 167 hlasů
     Komentářů: 12, poslední 10.9. 13:00
    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.