ALSA音效卡12_從零編寫之新增音量控制_學習筆記
* 獲得當前音量值
*/
int uda1341_get_vol(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_value *ucontrol)
{
struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol);
ucontrol->value.integer.value[1] = \ //這裡 \ 表示ucontrol->value.integer.value[0] 等於ucontrol->value.integer.value[1] ,因為是雙聲道
ucontrol->value.integer.value[0] = 63 - snd_soc_read(codec, UDA1341_DATA00);//讀暫存器DAT00的值,因為驅動程式的值和應用程式的值大小是相反的,uda1341不支援暫存器的讀操作,要想得到一個暫存器的值,是去讀某個cache(這個cache儲存的是設定暫存器的值)
return 0;
}
(4) 設定當前音量值
相關推薦
ALSA音效卡12_從零編寫之新增音量控制_學習筆記
/* * 獲得當前音量值 */ int uda1341_get_vol(struct snd_kcontrol *kcontrol,struct snd_ctl_elem_value *ucontrol) {struct snd_soc_codec *codec = snd_kcontrol_chip(k
ALSA音效卡09_從零編寫之引數設定_學習筆記
1、引數設定分析 (1)open: soc_pcm_open 依次呼叫cpu_dai, dma, codec_dai, machine的open或startup函式只在dma的open函式裡新增引數相關的程式碼 (2)SNDRV_PCM_IOCTL_HW_PARAMS: s
【江哥帶你從“零”玩轉Html5 + 跨平臺開發】學習筆記
最近一段時間都沒有寫部落格,一是因為有新的專案要做,而是最近在學習有關H5移動開發相關方面的內容,以下是看了“【江哥帶你從“零”玩轉Html5 + 跨平臺開發】”總結的學習筆記,目前只是更新到了H5+CSS3,相關視訊網站地址:http://bbs.520it.com/fo
小白學python之獲取物件資訊_學習筆記
本文以廖雪峰的官方網站為參考來學習python的。其學習連結為廖雪峰小白學python教程。 本文是學習到python的獲取物件資訊。參考連結廖雪峰python獲取物件資訊。 使用type() print(type(123)) print(type('str')) print(type(
Java基礎部分_Java基礎入門階段(零基礎java入門教程)_學習筆記
本文學習內容來自騰訊課堂提供的學習視訊。進入騰訊課堂官網,搜尋 Java基礎入門階段 就可以看到這門免費培訓視訊。 培訓視訊詳細類別為:IT 網際網路> 程式語言>Java>Java基礎入門階段(javase教程,零基礎java入門教程)(階段一)。
小白學python之使用列舉類_學習筆記
本文以廖雪峰的官方網站為參考來學習python的。其學習連結為廖雪峰小白學python教程。 本文是學習到python的多重繼承。參考連結廖雪峰python使用列舉類。 本學習筆記僅供參考。 >>> from enum import Enum >>>
Linux ALSA音效卡驅動之六:ASoC架構中的Machine
前面一節的內容我們提到,ASoC被分為Machine、Platform和Codec三大部分,其中的Machine驅動負責Platform和Codec之間的耦合以及部分和裝置或板子特定的程式碼,再次引用上一節的內容:Machine驅動負責處理機器特有的一些控制元件和音訊
ALSA音效卡驅動中的DAPM詳解之二:widget-具備路徑和電源管理資訊的kcontrol
上一篇文章中,我們介紹了音訊驅動中對基本控制單元的封裝:kcontrol。利用kcontrol,我們可以完成對音訊系統中的mixer,mux,音量控制,音效控制,以及各種開關量的控制,通過對各種kcontrol的控制,使得音訊硬體能夠按照我們預想的結果進行工作。同時我
ALSA音效卡驅動中的DAPM詳解之七:dapm事件機制(dapm event)
前面的六篇文章,我們已經討論了dapm關於動態電源管理的有關知識,包括widget的建立和初始化,widget之間的連線以及widget的上下電順序等等。本章我們準備討論dapm框架中的另一個機制:事件機制。通過dapm事件機制,widget可以對它所關心的dapm事
Linux ALSA音效卡驅動之八:ASoC架構中的Platform
1. Platform驅動在ASoC中的作用 前面幾章內容已經說過,ASoC被分為Machine,Platform和Codec三大部件,Platform驅動的主要作用是完成音訊資料的管理,最終通過CPU的數字音訊介面(DAI)把音訊資料傳送給Codec進行處理,最終由Co
ALSA音效卡驅動中的DAPM詳解之五:建立widget之間的連線關係
前面我們主要著重於codec、platform、machine驅動程式中如何使用和建立dapm所需要的widget,route,這些是音訊驅動開發人員必須要了解的內容,經過前幾章的介紹,我們應該知道如何在alsa音訊驅動的3大部分(codec、platform、machin
Linux ALSA音效卡驅動之三:PCM裝置的建立
1. PCM是什麼 PCM是英文Pulse-code modulation的縮寫,中文譯名是脈衝編碼調製。我們知道在現實生活中,人耳聽到的聲音是模擬訊號,PCM就是要把聲音從模擬轉換成數字訊號的一種技術,他的原理簡單地說就是利用一個固定的頻率對模擬訊號進行取
Linux ALSA音效卡驅動之五:移動裝置中的ALSA
1. ASoC的由來 ASoC--ALSA System on Chip ,是建立在標準ALSA驅動層上,為了更好地支援嵌入式處理器和移動裝置中的音訊Codec的一套軟體體系。在ASoc出現之前,核心對於SoC中的音訊已經有部分的支援,不過會有一些侷限性:
Linux ALSA音效卡驅動之五:移動裝置中的ALSA(ASoC)
1. ASoC的由來 ASoC--ALSA System on Chip ,是建立在標準ALSA驅動層上,為了更好地支援嵌入式處理器和移動裝置中的音訊Codec的一套軟體體系。在ASoc出現之前,核心對於SoC中的音訊已經有部分的支援,不過會有一些侷限性: C
Linux ALSA音效卡驅動之二:音效卡的建立
1. struct snd_card 1.1. snd_card是什麼 snd_card可以說是整個ALSA音訊驅動最頂層的一個結構,整個音效卡的軟體邏輯結構開始於該結構,幾乎所有與聲音相關的邏輯裝置都是在snd_card的管理之下,音效卡驅動的第一個動作通常就是建立一
Linux ALSA音效卡驅動之七:ASoC架構中的Codec
1. Codec簡介 在移動裝置中,Codec的作用可以歸結為4種,分別是: 對PCM等訊號進行D/A轉換,把數字的音訊訊號轉換為模擬訊號對Mic、Linein或者其他輸入源的模擬訊號進行A/D轉換,把模擬的聲音訊號轉變CPU能夠處理的數字訊號對音訊通路進行控制,比如
從零編寫c++之http伺服器(3)-http服務
http全稱超文字傳輸協議,可除錯性高,擴充套件性也強。上兩個篇章我們已經擁有了epoll事件驅動框架和執行緒池處理網路事件,接下來我們要先寫一個基礎網路套接字,然後在此基礎上擴展出http的套接字。獻上類圖如下
Linux ALSA音效卡驅動之四:Control裝置的建立
Control介面 Control介面主要讓使用者空間的應用程式(alsa-lib)可以訪問和控制音訊codec晶片中的多路開關,滑動控制元件等。對於Mixer(混音)來說,Control介面顯得尤為重要,從ALSA 0.9.x版本開始,所有的mixer工作都是通過co
從零編寫日誌分析系統之logstash
概述 logstash是負責採集和解析日誌的,將日誌解析成需要的格式儲存在elasticsearch或者其他地方。logstash提供了很多非常強大的外掛,這些外掛可以有效的把日誌資訊轉換成需要的格式。 一:安裝 二:配置 logstash提供了
ALSA音效卡驅動中的DAPM詳解之四:在驅動程式中初始化並註冊widget和route
前幾篇文章我們從dapm的資料結構入手,瞭解了代表音訊控制元件的widget,代表連線路徑的route以及用於連線兩個widget的path。之前都是一些概念的講解以及對資料結構中各個欄位的說明,從本章開始,我們要從程式碼入手,分析dapm的詳細工作原理: 如何註冊widg