Page 15 of 17 FirstFirst ... 51011121314151617 LastLast
Results 141 to 150 of 167

Thread: Cobra-matic : Retro Bakelite Phonograph

  1. #141
    Retrosmith Mach's Avatar
    Join Date
    Mar 2005
    Location
    Texas
    Posts
    910

    Default Cobra-matic Addendum & Upgrades

    Story summary - Badness happens, Modding occurs, Upgrades follow, Happiness ensues

    That's the gist of the story. The details include a failing motherboard that wouldn't post, an RMA to Gigabyte (no fuss, no muss, Gigabyte rocks!), another tussle with the open faced DVD-Rom, conclusion that DVD Sata boards from Hong Kong suck, a discovery of an easily moddable slim line DVD-Rom, the addition and modding of a ram cooler, and an upgrade from an E6600 to a Q6600.

    If you want to window a slim-line drive, find one of these:


    See the red wire in the lower right?


    That connects to a mini PCB that is simple to desolder the micro switch and solder in a set of wires. No need to solder to a tiny, tiny pins like before.


    It wouldn't be a tear down without an upgrade.


    Stock clock wasn't stable after several tries re-seating the CPU heatsink, upping the fan speeds, and finally, adding a ram cooler killed off the problem.


    with a little modding of course.




    With luck, I'll button it back up this weekend and shoot some video and photos next week.

  2. #142
    baaah. billygoat333's Avatar
    Join Date
    Aug 2007
    Location
    Idaho
    Posts
    3,331

    Default Re: Cobra-matic : Retro Bakelite Phonograph

    looking sexxy!
    Quote Originally Posted by Omega
    ber is id elicous
    Centurion 5 Mod <<--- ON HOLD FOR THE WINTER

  3. #143
    A big old Tease Apparently DonT-FeaR's Avatar
    Join Date
    Sep 2006
    Location
    Australia, south australia, Gawler
    Posts
    2,939

    Default Re: Cobra-matic : Retro Bakelite Phonograph

    that looks so cool
    love the ram cooler.
    Quote Originally Posted by Drum Thumper View Post
    you tease!

  4. #144
    Stupidity feeds my children blueonblack's Avatar
    Join Date
    Feb 2008
    Posts
    2,616

    Default Re: Cobra-matic : Retro Bakelite Phonograph

    Wow, man. You actually managed to make this thing better. I'm impressed.

    I have to say the brass on the RAM cooler is a beautiful touch. +rep
    “Do not trust people like me. I will take you to museums, and parks, and monuments, and kiss you in every beautiful place, so that you can never go back to them without tasting me like blood in your mouth. I will destroy you in the most beautiful way possible, and when I leave you will finally understand why storms are named after people.”

  5. #145
    Measure once, curse twice nevermind1534's Avatar
    Join Date
    Feb 2008
    Location
    Detroit, Michigan
    Posts
    3,245

    Default Re: Cobra-matic : Retro Bakelite Phonograph

    Nice. So the RAM cooler actually helped you with the OC? I'm seriously considering hooking mine up now.
    Help my mini city
    Population Industry Transport Security
    Quote Originally Posted by progbuddy View Post
    It's probably the extreme radiation from the nuclear core in your phone. Push the control rod all the way in.
    Quote Originally Posted by UrbanLegend_NY View Post
    I'm not selling it in hell I'm selling it on eBay.

  6. #146
    Retrosmith Mach's Avatar
    Join Date
    Mar 2005
    Location
    Texas
    Posts
    910

    Default Re: Cobra-matic : Retro Bakelite Phonograph

    Thanks guys! No, no overclock yet. The ram cooler helped with a stable burn in on the bench. I've either got a dodgy stick of ram or the Q6600 is dumping alot of heat into the ram stack. 4 attempts at stress test end before the 24 hours had finished. After the ram cooler, 2 more tries passed. Conclusion through the process of elimination was ram cooling was the problem.

    Temps on the CPU fluctuate between 38-42C loaded which is about where the E6600 was but I had to set the fan to max instead of the motherboard managing fan speed as before. I knew the extra speed would add to the heat but it seems it uncovered the tipping point on the XP90C heat sink and Arctic Cooling fan.

  7. #147
    ATX Mental Case
    Join Date
    Mar 2009
    Posts
    106

    Default Re: Cobra-matic : Retro Bakelite Phonograph

    wow. A whole lot of things to think about.

    Page 5 - Why don't I add a windowed dvd drive?
    Page 7 - Ahh. that's why.
    Page 15 - hmmm, actually.

    why do you tease me so?
    +rep

  8. #148
    Retrosmith Mach's Avatar
    Join Date
    Mar 2005
    Location
    Texas
    Posts
    910

    Default Re: Cobra-matic : Retro Bakelite Phonograph

    why do you tease me so?
    Its what I do man, its what I do.

    Seriously, I learned alot along the way so I can't complain too much. I'm sure it shortens the life of the drive but its the challenge, so go for it. I'll post up any details or pics if it helps.

  9. #149
    Retrosmith Mach's Avatar
    Join Date
    Mar 2005
    Location
    Texas
    Posts
    910

    Default Re: Cobra-matic : Retro Bakelite Phonograph

    Following up on a few loose ends. For future reference, here's the VB code that I used to interface with the phidgets board.

    Code:
    Option Explicit
    Dim WithEvents relay As PhidgetInterfaceKit
    Dim WithEvents kit As PhidgetInterfaceKit
    Dim WithEvents knob As PhidgetEncoder
    Dim dumpfirst
    
    Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
    Dim volR As Long
    Dim volL As Long
    Dim volume As Long
    Dim mymute As Long
    Dim mute As MIXERCONTROL
    Dim unmute As MIXERCONTROL
    Dim ONOFF As MIXERCONTROL
    Dim hmixer As Long             ' mixer handle
    Dim VolCtrl As MIXERCONTROL    ' master volume control
    Dim rc As Long                 ' return code
    Dim ok As Boolean              ' boolean return code
    
    
           
    
    
    Private Sub knob_OnInputChange(ByVal Index As Long, ByVal NewState As Boolean)
    
       If NewState <> False Then
            chkMute.Value = chkMute.Value * -1 + 1
       End If
    End Sub
    
    Private Sub Knob_OnPositionChange(ByVal Index As Long, ByVal Time As Long, ByVal EncoderDisplacement As Long)
        Dim myVol As Long
        myVol = VolumeControl(0).Value - EncoderDisplacement * 800
        If myVol >= 65535 Then
            VolumeControl(0).Value = 65535
        ElseIf myVol <= 0 Then
            VolumeControl(0).Value = 0
        Else
            VolumeControl(0).Value = myVol
        End If
        VolumeControl_Scroll (0)
        'Slider1.Value = Slider1.Value + EncoderDisplacement
        'Label1.Caption = phidgetEnc.EncoderPosition(0)
        
    End Sub
    
    Private Sub chkMute_Click()
        If chkMute.Value = 0 Then
            ok = GetMixerControl(hmixer, MIXERLINE_COMPONENTTYPE_DST_SPEAKERS, MIXERCONTROL_CONTROLTYPE_MUTE, mute)
            SetMuteControl hmixer, mute, 1
        ElseIf chkMute.Value = 1 Then
            ok = GetMixerControl(hmixer, MIXERLINE_COMPONENTTYPE_DST_SPEAKERS, MIXERCONTROL_CONTROLTYPE_MUTE, unmute)
            unSetMuteControl hmixer, unmute, 1
        End If
    
    End Sub
    
    
    Private Sub Form_Load()
    
        Set relay = New PhidgetInterfaceKit
        relay.Open (9106)
        Set kit = New PhidgetInterfaceKit
        kit.Open (6602)
        Set knob = New PhidgetEncoder
        knob.Open (13932)
        
        'Open the mixer with deviceID 0.
        rc = mixerOpen(hmixer, 0, 0, 0, 0)
        If ((MMSYSERR_NOERROR <> rc)) Then
            MsgBox "Couldn't open the mixer please check if a audio mixer is installed then retry."
            Exit Sub
        End If
        
        ok = GetMixerControl(hmixer, MIXERLINE_COMPONENTTYPE_DST_SPEAKERS, MIXERCONTROL_CONTROLTYPE_VOLUME, VolCtrl)
        volume = GetVolumeControlValue(hmixer, VolCtrl)
        ok = GetMixerControl(hmixer, MIXERLINE_COMPONENTTYPE_DST_SPEAKERS, MIXERCONTROL_CONTROLTYPE_MUTE, mute)
        mymute = GetVolumeControlValue(hmixer, mute)
            If volume <> -1 Then
                chkMute.Value = mymute
                'Debug.Print GetVolumeControlValue(hmixer, VolCtrl)
                VolumeControl(0) = 65535 - volume
            End If
        dumpfirst = 0
        Call add_system_tray_icon(Me)
    End Sub
    'Report the value of the input whenever it changes
    Private Sub kit_OnInputChange(ByVal Index As Long, ByVal NewState As Boolean)
        
        If Index = 0 Then
        If dumpfirst > 0 Then 'dumps the first input change - debounce?
            If NewState = False Then
                Call MoveRec(True)
                relay.OutputState(0) = True
                Sleep (300)
                relay.OutputState(0) = False
                Sleep (1000)
                relay.OutputState(1) = True
            ElseIf NewState = True Then
                Call MoveRec(False)
                relay.OutputState(0) = False
                relay.OutputState(1) = False
            End If
         End If
        ElseIf Index = 7 Then
            If NewState = True Then
                dlgShutdown.Show
                
    
            End If
        End If
        dumpfirst = 1
    End Sub
    
    
    'Report the value of the sensor whenever it changes
    Private Sub kit_OnSensorChange(ByVal Index As Long, ByVal SensorValue As Long)
        If Index = 0 Then
        lblTemp.Caption = CLng(9 / 5 * ((SensorValue / 1000) * 222.22 - 61.11) + 32.5) & "F/" & CLng(((SensorValue / 1000) * 222.22 - 61.11) + 0.5) & "C"
        End If
        
    End Sub
    Private Sub chkGlow_Click(Index As Integer)
        If chkGlow(Index).Value = 0 Then
            relay.OutputState(Index) = False
            chkGlow(Index).BackColor = &H8000000F
        Else
            relay.OutputState(Index) = True
            chkGlow(Index).BackColor = &H80C0FF
        End If
    End Sub
    
    
    
    Private Sub VolumeControl_Scroll(I As Integer)
        volume = 65535 - CLng(VolumeControl(I).Value)
        SetPANControl hmixer, VolCtrl, volume, volume ' Stereo Mixer Control
    End Sub
    
    Private Sub MoveRec(RecPos As Boolean)
       'On Error Resume Next
    
        If Me.WindowState <> vbNormal Then
            Me.WindowState = vbNormal
            LoadFormPosition
        End If
    
        Dim I As Integer
        If RecPos = True Then
            'For I = 1980 To 2745 Step 10
                Form1.Height = 3225
                'Sleep (10)
            'Next I
        ElseIf RecPos = False Then
            'For I = 2745 To 1980 Step -10
                'Debug.Print Image1.Top
                Form1.Height = 1980
                'Sleep (10)
            'Next I
            SaveFormPosition Me.Left, Me.Top, Me.Height, Me.Width, Me.WindowState
            Me.WindowState = vbMinimized
            Me.Hide
        End If
        
    End Sub
    
    
    Private Sub Form_Unload(Cancel As Integer)
     Call remove_system_tray_icon
    End Sub
    
    Private Sub Form_Resize()
     If Me.WindowState = vbMinimized Then
      Me.Hide
     Else
      SaveFormPosition Me.Left, Me.Top, Me.Height, Me.Width, Me.WindowState
     End If
    End Sub

  10. #150
    Retrosmith Mach's Avatar
    Join Date
    Mar 2005
    Location
    Texas
    Posts
    910

    Default Re: Cobra-matic : Retro Bakelite Phonograph

    Here's the code for the module that interface with the Windows volume controller
    Credit goes to micracom2 (i'm removing his email for spam purposes).
    Code:
    'This is an update from my cd/mixer I have taken the cd player away
    'and put the slider/mutes/balance controls into arrays.
    'this makes it alittle more harder to understand but it is better/faster coding.
    'If you wish to comment or get the VU meters working for me email me at
    '[deleted] and I shall see if I can help.
    
    Public Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
    
    Declare Function mciGetErrorString Lib "winmm.dll" Alias "mciGetErrorStringA" (ByVal dwError As Long, ByVal lpstrBuffer As String, ByVal uLength As Long) As Long
    Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long
    Public Const MMSYSERR_NOERROR = 0
    Public Const MAXPNAMELEN = 32
    Public Const MIXER_LONG_NAME_CHARS = 64
    Public Const MIXER_SHORT_NAME_CHARS = 16
    Public Const MIXER_GETLINEINFOF_COMPONENTTYPE = &H3&
    Public Const MIXER_GETCONTROLDETAILSF_VALUE = &H0&
    Public Const MIXER_GETLINECONTROLSF_ONEBYTYPE = &H2& ' separate left-right volume control
    Public Const MIXER_SETCONTROLDETAILSF_VALUE = &H0&
    Public Const MIXERCONTROL_CT_CLASS_FADER = &H50000000
    Public Const MIXERCONTROL_CT_CLASS_SWITCH = &H20000000
    Public Const MIXERCONTROL_CT_SC_SWITCH_BOOLEAN = &H0&
    Public Const MIXERCONTROL_CT_UNITS_BOOLEAN = &H10000
    Public Const MIXERCONTROL_CT_UNITS_UNSIGNED = &H30000
    Public Const MIXERCONTROL_CT_CLASS_CUSTOM = &H0&
    Public Const MIXERCONTROL_CT_CLASS_LIST = &H70000000
    Public Const MIXERCONTROL_CT_CLASS_MASK = &HF0000000
    Public Const MIXERCONTROL_CT_CLASS_METER = &H10000000
    Public Const MIXERCONTROL_CT_CLASS_NUMBER = &H30000000
    Public Const MIXERCONTROL_CT_CLASS_SLIDER = &H40000000
    Public Const MIXERCONTROL_CT_CLASS_TIME = &H60000000
    Public Const MIXERCONTROL_CT_SC_LIST_MULTIPLE = &H1000000
    Public Const MIXERCONTROL_CT_SC_LIST_SINGLE = &H0&
    Public Const MIXERCONTROL_CT_SC_METER_POLLED = &H0&
    Public Const MIXERCONTROL_CT_SC_SWITCH_BUTTON = &H1000000
    Public Const MIXERCONTROL_CT_SC_TIME_MICROSECS = &H0&
    Public Const MIXERCONTROL_CT_SC_TIME_MILLISECS = &H1000000
    Public Const MIXERCONTROL_CT_SUBCLASS_MASK = &HF000000
    Public Const MIXERCONTROL_CT_UNITS_CUSTOM = &H0&
    Public Const MIXERCONTROL_CT_UNITS_DECIBELS = &H40000
    Public Const MIXERCONTROL_CT_UNITS_MASK = &HFF0000
    Public Const MIXERCONTROL_CT_UNITS_PERCENT = &H50000
    Public Const MIXERCONTROL_CT_UNITS_SIGNED = &H20000
    Public Const MIXERLINE_COMPONENTTYPE_DST_FIRST = &H0&
    Public Const MIXERLINE_COMPONENTTYPE_SRC_FIRST = &H1000&
    Public Const MIXERLINE_COMPONENTTYPE_SRC_ANALOG = &H1000& + 10
    Public Const MIXERLINE_COMPONENTTYPE_SRC_AUXILIARY = &H1000& + 9
    Public Const MIXERLINE_COMPONENTTYPE_SRC_COMPACTDISC = &H1000& + 5
    Public Const MIXERLINE_COMPONENTTYPE_SRC_DIGITAL = &H1000& + 1
    Public Const MIXERLINE_COMPONENTTYPE_SRC_LAST = &H1000& + 10
    Public Const MIXERLINE_COMPONENTTYPE_SRC_LINE = &H1000& + 2
    Public Const MIXERLINE_COMPONENTTYPE_SRC_SYNTHESIZER = &H1000& + 4
    Public Const MIXERLINE_COMPONENTTYPE_SRC_UNDEFINED = &H1000& + 0
    Public Const MIXERLINE_COMPONENTTYPE_SRC_WAVEOUT = &H1000& + 8
    
    Public Const MIXERLINE_COMPONENTTYPE_SRC_I25InVol = (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 1)
    Public Const MIXERLINE_COMPONENTTYPE_SRC_LINEVol = (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 2)
    Public Const MIXERLINE_COMPONENTTYPE_SRC_MICROPHONE = (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 3)
    Public Const MIXERLINE_COMPONENTTYPE_SRC_MIDIVol = (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 4)
    Public Const MIXERLINE_COMPONENTTYPE_SRC_CDVol = (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 5)
    Public Const MIXERLINE_COMPONENTTYPE_SRC_TELEPHONE = (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 6)
    Public Const MIXERLINE_COMPONENTTYPE_SRC_PCSPEAKER = (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 7)
    Public Const MIXERLINE_COMPONENTTYPE_SRC_WAVEDSVol = (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 8)
    Public Const MIXERLINE_COMPONENTTYPE_SRC_AUXVol = (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 0)
    
    Public Const MIXERLINE_COMPONENTTYPE_DST_UNDEFINED = (MIXERLINE_COMPONENTTYPE_DST_FIRST + 0)
    Public Const MIXERLINE_COMPONENTTYPE_DST_DIGITAL = (MIXERLINE_COMPONENTTYPE_DST_FIRST + 1)
    Public Const MIXERLINE_COMPONENTTYPE_DST_LINE = (MIXERLINE_COMPONENTTYPE_DST_FIRST + 2)
    Public Const MIXERLINE_COMPONENTTYPE_DST_MONITOR = (MIXERLINE_COMPONENTTYPE_DST_FIRST + 3)
    Public Const MIXERLINE_COMPONENTTYPE_DST_SPEAKERS = (MIXERLINE_COMPONENTTYPE_DST_FIRST + 4)
    Public Const MIXERLINE_COMPONENTTYPE_DST_HEADPHONES = (MIXERLINE_COMPONENTTYPE_DST_FIRST + 5)
    Public Const MIXERLINE_COMPONENTTYPE_DST_TELEPHONE = (MIXERLINE_COMPONENTTYPE_DST_FIRST + 6)
    Public Const MIXERLINE_COMPONENTTYPE_DST_WAVEIN = (MIXERLINE_COMPONENTTYPE_DST_FIRST + 7)
    Public Const MIXERLINE_COMPONENTTYPE_DST_LAST = (MIXERLINE_COMPONENTTYPE_DST_FIRST + 8)
    Public Const MIXERLINE_COMPONENTTYPE_DST_VOICEIN = (MIXERLINE_COMPONENTTYPE_DST_FIRST + 8)
    
    Public Const MMIO_READ = &H0
    Public Const MMIO_FINDCHUNK = &H10
    Public Const MMIO_FINDRIFF = &H20
    ' Mixer control types
    
    Public Const MIXERCONTROL_CONTROLTYPE_FADER = (MIXERCONTROL_CT_CLASS_FADER Or MIXERCONTROL_CT_UNITS_UNSIGNED)
    Public Const MIXERCONTROL_CONTROLTYPE_BASS = (MIXERCONTROL_CONTROLTYPE_FADER + 2)
    Public Const MIXERCONTROL_CONTROLTYPE_BOOLEAN = (MIXERCONTROL_CT_CLASS_SWITCH Or MIXERCONTROL_CT_SC_SWITCH_BOOLEAN Or MIXERCONTROL_CT_UNITS_BOOLEAN)
    Public Const MIXERCONTROL_CONTROLTYPE_TREBLE = (MIXERCONTROL_CONTROLTYPE_FADER + 3)
    Public Const MIXERCONTROL_CONTROLTYPE_VOLUME = (MIXERCONTROL_CONTROLTYPE_FADER + 1)
    Public Const MIXERCONTROL_CONTROLTYPE_MUTE = (MIXERCONTROL_CONTROLTYPE_BOOLEAN + 2)
    Public Const MIXERCONTROL_CONTROLTYPE_EQUALIZER = (MIXERCONTROL_CONTROLTYPE_FADER + 4)
    Public Const MIXERCONTROL_CONTROLTYPE_LOUDNESS = (MIXERCONTROL_CONTROLTYPE_BOOLEAN + 4)
    Public Const MIXERCONTROL_CONTROLTYPE_SIGNEDMETER = (MIXERCONTROL_CT_CLASS_METER Or MIXERCONTROL_CT_SC_METER_POLLED Or MIXERCONTROL_CT_UNITS_SIGNED)
    Public Const MIXERCONTROL_CONTROLTYPE_PEAKMETER = (MIXERCONTROL_CONTROLTYPE_SIGNEDMETER + 1)
    Public Const MIXERCONTROL_CONTROLTYPE_BOOLEANMETER = (MIXERCONTROL_CT_CLASS_METER Or MIXERCONTROL_CT_SC_METER_POLLED Or MIXERCONTROL_CT_UNITS_BOOLEAN)
    Public Const MIXERCONTROL_CONTROLTYPE_BUTTON = (MIXERCONTROL_CT_CLASS_SWITCH Or MIXERCONTROL_CT_SC_SWITCH_BUTTON Or MIXERCONTROL_CT_UNITS_BOOLEAN)
    Public Const MIXERCONTROL_CONTROLTYPE_CUSTOM = (MIXERCONTROL_CT_CLASS_CUSTOM Or MIXERCONTROL_CT_UNITS_CUSTOM)
    Public Const MIXERCONTROL_CONTROLTYPE_DECIBELS = (MIXERCONTROL_CT_CLASS_NUMBER Or MIXERCONTROL_CT_UNITS_DECIBELS)
    Public Const MIXERCONTROL_CONTROLTYPE_MULTIPLESELECT = (MIXERCONTROL_CT_CLASS_LIST Or MIXERCONTROL_CT_SC_LIST_MULTIPLE Or MIXERCONTROL_CT_UNITS_BOOLEAN)
    Public Const MIXERCONTROL_CONTROLTYPE_MICROTIME = (MIXERCONTROL_CT_CLASS_TIME Or MIXERCONTROL_CT_SC_TIME_MICROSECS Or MIXERCONTROL_CT_UNITS_UNSIGNED)
    Public Const MIXERCONTROL_CONTROLTYPE_MILLITIME = (MIXERCONTROL_CT_CLASS_TIME Or MIXERCONTROL_CT_SC_TIME_MILLISECS Or MIXERCONTROL_CT_UNITS_UNSIGNED)
    Public Const MIXERCONTROL_CONTROLTYPE_MIXER = (MIXERCONTROL_CONTROLTYPE_MULTIPLESELECT + 1)
    Public Const MIXERCONTROL_CONTROLTYPE_MONO = (MIXERCONTROL_CONTROLTYPE_BOOLEAN + 3)
    Public Const MIXERCONTROL_CONTROLTYPE_SLIDER = (MIXERCONTROL_CT_CLASS_SLIDER Or MIXERCONTROL_CT_UNITS_SIGNED)
    Public Const MIXERCONTROL_CONTROLTYPE_STEREOENH = (MIXERCONTROL_CONTROLTYPE_BOOLEAN + 5)
    Public Const MIXERCONTROL_CONTROLTYPE_UNSIGNED = (MIXERCONTROL_CT_CLASS_NUMBER Or MIXERCONTROL_CT_UNITS_UNSIGNED)
    Public Const MIXERCONTROL_CONTROLTYPE_UNSIGNEDMETER = (MIXERCONTROL_CT_CLASS_METER Or MIXERCONTROL_CT_SC_METER_POLLED Or MIXERCONTROL_CT_UNITS_UNSIGNED)
    Public Const MIXERCONTROL_CONTROLTYPE_SINGLESELECT = (MIXERCONTROL_CT_CLASS_LIST Or MIXERCONTROL_CT_SC_LIST_SINGLE Or MIXERCONTROL_CT_UNITS_BOOLEAN)
    Public Const MIXERCONTROL_CONTROLTYPE_MUX = (MIXERCONTROL_CONTROLTYPE_SINGLESELECT + 1)
    Public Const MIXERCONTROL_CONTROLTYPE_PAN = (MIXERCONTROL_CONTROLTYPE_SLIDER + 1)
    Public Const MIXERCONTROL_CONTROLTYPE_PERCENT = (MIXERCONTROL_CT_CLASS_NUMBER Or MIXERCONTROL_CT_UNITS_PERCENT)
    Public Const MIXERCONTROL_CONTROLTYPE_QSOUNDPAN = (MIXERCONTROL_CONTROLTYPE_SLIDER + 2)
    Public Const MIXERCONTROL_CONTROLTYPE_SIGNED = (MIXERCONTROL_CT_CLASS_NUMBER Or MIXERCONTROL_CT_UNITS_SIGNED)
    ' Mixer line flags
    Public Const MIXERLINE_LINEF_ACTIVE = &H1&
    Public Const MIXERLINE_LINEF_DISCONNECTED = &H8000&
    Public Const MIXERLINE_LINEF_SOURCE = &H80000000
    ' Mixer line target types
    Public Const MIXERLINE_TARGETTYPE_AUX = 5
    Public Const MIXERLINE_TARGETTYPE_MIDIIN = 4
    Public Const MIXERLINE_TARGETTYPE_MIDIOUT = 3
    Public Const MIXERLINE_TARGETTYPE_UNDEFINED = 0
    Public Const MIXERLINE_TARGETTYPE_WAVEIN = 2
    Public Const MIXERLINE_TARGETTYPE_WAVEOUT = 1
    ' Error constants
    Public Const MIXERR_INVALLINE = 1024 + 0
    Public Const MIXERR_BASE = 1024
    Public Const MIXERR_INVALCONTROL = 1024 + 1
    Public Const MIXERR_INVALVALUE = 1024 + 2
    Public Const MIXERR_LASTERROR = 1024 + 2
    Type MIXERCAPS
         wMid As Integer                   '  manufacturer id
         wPid As Integer                   '  product id
         vDriverVersion As Long            '  version of the driver
         szPname As String * MAXPNAMELEN   '  product name
         fdwSupport As Long             '  misc. support bits
         cDestinations As Long          '  count of destinations
    End Type
    
    ' Mixer line types
    Type Target
         dwType As Long                 '  MIXERLINE_TARGETTYPE_xxxx
         dwDeviceID As Long             '  target device ID of device type
         wMid As Integer                   '  of target device
         wPid As Integer                   '       "
         vDriverVersion As Long            '       "
         szPname As String * MAXPNAMELEN
    End Type
    
    Type MIXERLINE
         cbStruct As Long               '  size of MIXERLINE structure
         dwDestination As Long          '  zero based destination index
         dwSource As Long               '  zero based source index (if source)
         dwLineID As Long               '  unique line id for mixer device
         fdwLine As Long                '  state/information about line
         dwUser As Long                 '  driver specific information
         dwComponentType As Long        '  component type line connects to
         cChannels As Long              '  number of channels line supports
         cConnections As Long           '  number of connections (possible)
         cControls As Long              '  number of controls at this line
         szShortName As String * MIXER_SHORT_NAME_CHARS
         szName As String * MIXER_LONG_NAME_CHARS
         lpTarget As Target
    End Type
    
    ' MM Control types
    Type MIXERLINECONTROLS
         cbStruct As Long         '  size in Byte of MIXERLINECONTROLS
         dwLineID As Long         '  line id (from MIXERLINE.dwLineID)
         dwControl As Long        '  used with MIXER_GETLINECONTROLSF_ONEBYTYPE or MIXER_GETLINECONTROLSF_ONEBYID
         cControls As Long        '  count of controls pmxctrl points to
         cbmxctrl As Long         '  size in Byte of _one_ MIXERCONTROL
         pamxctrl As Long         '  pointer to first MIXERCONTROL array
    End Type
    
    Type MIXERCONTROL
         cbStruct As Long           '  size in Byte of MIXERCONTROL
         dwControlID As Long        '  unique control id for mixer device
         dwControlType As Long      '  MIXERCONTROL_CONTROLTYPE_xxx
         fdwControl As Long         '  MIXERCONTROL_CONTROLF_xxx
         cMultipleItems As Long     '  if MIXERCONTROL_CONTROLF_MULTIPLE set
         szShortName(1 To MIXER_SHORT_NAME_CHARS) As Byte
         szName(1 To MIXER_LONG_NAME_CHARS) As Byte
         Bounds(1 To 6) As Long
         Metrics(1 To 6) As Long
    End Type
    
    Type MIXERCONTROLDETAILS
         cbStruct As Long       '  size in Byte of MIXERCONTROLDETAILS
         dwControlID As Long    '  control id to get/set details on
         cChannels As Long      '  number of channels in paDetails array
         item As Long                           ' hwndOwner or cMultipleItems
         cbDetails As Long      '  size of _one_ details_XX struct
         paDetails As Long      '  pointer to array of details_XX structs
    End Type
    
    Type MIXERCONTROLDETAILS_BOOLEAN
         fValue As Long
    End Type
    
    Type MIXERCONTROLDETAILS_LISTTEXT
         dwParam1 As Long
         dwParam2 As Long
         szName As String * MIXER_LONG_NAME_CHARS
    End Type
    
    Type MIXERCONTROLDETAILS_SIGNED
         lValue As Long
    End Type
    
    Type MIXERCONTROLDETAILS_UNSIGNED
         dwValue As Long
    End Type
    
    Declare Function mixerClose Lib "winmm.dll" (ByVal hmx As Long) As Long
    Declare Function mixerGetControlDetails Lib "winmm.dll" Alias "mixerGetControlDetailsA" (ByVal hmxobj As Long, pmxcd As MIXERCONTROLDETAILS, ByVal fdwDetails As Long) As Long
    Declare Function mixerGetDevCaps Lib "winmm.dll" Alias "mixerGetDevCapsA" (ByVal uMxId As Long, pmxcaps As MIXERCAPS, ByVal cbmxcaps As Long) As Long
    Declare Function mixerGetID Lib "winmm.dll" (ByVal hmxobj As Long, pumxID As Long, ByVal fdwId As Long) As Long
    Declare Function mixerGetLineControls Lib "winmm.dll" Alias "mixerGetLineControlsA" (ByVal hmxobj As Long, pmxlc As MIXERLINECONTROLS, ByVal fdwControls As Long) As Long
    Declare Function mixerGetLineInfo Lib "winmm.dll" Alias "mixerGetLineInfoA" (ByVal hmxobj As Long, pmxl As MIXERLINE, ByVal fdwInfo As Long) As Long
    Declare Function mixerGetNumDevs Lib "winmm.dll" () As Long
    Declare Function mixerMessage Lib "winmm.dll" (ByVal hmx As Long, ByVal uMsg As Long, ByVal dwParam1 As Long, ByVal dwParam2 As Long) As Long
    Declare Function mixerOpen Lib "winmm.dll" (phmx As Long, ByVal uMxId As Long, ByVal dwCallback As Long, ByVal dwInstance As Long, ByVal fdwOpen As Long) As Long
    Declare Function mixerSetControlDetails Lib "winmm.dll" (ByVal hmxobj As Long, pmxcd As MIXERCONTROLDETAILS, ByVal fdwDetails As Long) As Long
    Public Declare Function RegisterDLL Lib "Regist10.dll" Alias "REGISTERDLL" (ByVal DllPath As String, bRegister As Boolean) As Boolean
    Declare Function mmioClose Lib "winmm.dll" (ByVal hmmio As Long, ByVal uFlags As Long) As Long
    Declare Function mmioDescend Lib "winmm.dll" (ByVal hmmio As Long, lpck As MMCKINFO, lpckParent As MMCKINFO, ByVal uFlags As Long) As Long
    Declare Function mmioDescendParent Lib "winmm.dll" Alias "mmioDescend" (ByVal hmmio As Long, lpck As MMCKINFO, ByVal X As Long, ByVal uFlags As Long) As Long
    Declare Function mmioOpen Lib "winmm.dll" Alias "mmioOpenA" (ByVal szFileName As String, lpmmioinfo As mmioinfo, ByVal dwOpenFlags As Long) As Long
    Declare Function mmioRead Lib "winmm.dll" (ByVal hmmio As Long, ByVal pch As Long, ByVal cch As Long) As Long
    Declare Function mmioReadFormat Lib "winmm.dll" Alias "mmioRead" (ByVal hmmio As Long, ByRef pch As waveFormat, ByVal cch As Long) As Long
    Declare Function mmioStringToFOURCC Lib "winmm.dll" Alias "mmioStringToFOURCCA" (ByVal sz As String, ByVal uFlags As Long) As Long
    Declare Function mmioAscend Lib "winmm.dll" (ByVal hmmio As Long, lpck As MMCKINFO, ByVal uFlags As Long) As Long
    Private Declare Function GetFileVersionInfo Lib "Version.dll" Alias "GetFileVersionInfoA" (ByVal lptstrFilename As String, ByVal dwHandle As Long, ByVal dwLen As Long, lpData As Any) As Long
    Private Declare Function GetFileVersionInfoSize Lib "Version.dll" Alias "GetFileVersionInfoSizeA" (ByVal lptstrFilename As String, lpdwHandle As Long) As Long
    Private Declare Function VerQueryValue Lib "Version.dll" Alias "VerQueryValueA" (pBlock As Any, ByVal lpSubBlock As String, lplpBuffer As Any, puLen As Long) As Long
    Private Declare Sub MoveMemory Lib "kernel32" Alias "RtlMoveMemory" (dest As Any, ByVal Source As Long, ByVal length As Long)

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •